Tuqo + Sanity
Sanity — headless CMS: контент редактируется в удобной студии, а сайт получает его по API. Со статик-сайтом на Tuqo есть два пути: тянуть контент на этапе сборки (build) и получать полностью статичные страницы, либо запрашивать его в браузере по публичному projectId. Tuqo раздаёт готовую статику по HTTPS — серверного кода не требуется.
Что даёт связка Tuqo + Sanity
- Удобная студия редактирования контента (Sanity Studio)
- Контент по API (GROQ) — на этапе сборки или в браузере
- Структурированный контент и медиа в одном месте
- Чистая статика на выходе — быстро и без бэкенда
Создайте проект Sanity
Заведите проект и схемы контента в Sanity, возьмите projectId и dataset (обычно production).
Откройте доступ на чтение
Для публичного контента сделайте dataset публичным (read) или используйте read-токен только на этапе сборки, не в браузере.
Получите контент
На сборке (Astro/Vite/SSG) запросите данные через GROQ и сгенерируйте страницы; либо тяните контент в браузере по публичному projectId.
Задеплойте на Tuqo
Соберите сайт и выложите статику — для сборочного проекта Tuqo соберёт его на Node, для готовой статики деплой мгновенный.
import { createClient } from '@sanity/client'
// projectId и dataset публичны; read-токен (если нужен) — ТОЛЬКО на этапе сборки
const client = createClient({
projectId: 'xxxx',
dataset: 'production',
apiVersion: '2024-01-01',
useCdn: true,
})
const posts = await client.fetch('*[_type == "post"]{ title, slug }') Безопасность
projectId и dataset публичны по дизайну — их можно держать в коде. Если читаете контент в браузере, dataset должен быть публичным на чтение. Write-токены и приватные read-токены — секреты: их используют ТОЛЬКО на этапе сборки (build) или на сервере, в статик-сайт класть нельзя. Самый безопасный путь — тянуть контент на сборке и отдавать готовую статику.
Tuqo раздаёт фронт по HTTPS и не касается ваших данных и секретов сервиса.
Tuqo + Sanity — частые вопросы
Контент тянется на сборке или в браузере? +
Можно и так, и так. На сборке — полностью статичные страницы (быстрее и приватнее токены). В браузере — динамичнее, но dataset должен быть публичным на чтение.
Нужен ли свой бэкенд? +
Нет. Sanity — это и есть бэкенд для контента. Tuqo раздаёт собранную статику; сборочный проект соберёт сам, готовую статику опубликует мгновенно.
Где хранить токены Sanity? +
Write- и приватные read-токены — только на этапе сборки или на сервере, никогда в статик-сайте. Для публичного контента токен не нужен вовсе.