Sanity to chmurowy headless CMS z Oslo, uruchomiony w 2017 r., który w kilka lat stał się punktem odniesienia dla zespołów technicznych chcących mieć nowoczesny back-office bez kompromisów. Cecha wyróżniająca: schemat treści definiuje się w kodzie TypeScript/JavaScript (wersjonowany w Git), a interfejs edycji (tzw. „Studio”) to aplikacja React open-source, którą dostosowuje się do woli — własne widoki, walidacje biznesowe, podglądy live z Państwa frontu. To przeciwieństwo WordPressa, gdzie wszystko przechodzi przez wtyczki i administrację bazy danych.
Od strony technicznej: dane są przechowywane w datastore Sanity (Content Lake), odpytywane przez GROQ (ich własny DSL, bardziej ekspresyjny niż GraphQL dla danych strukturalnych) lub klasycznym REST API. Workflow oparty na webhookach uruchamia rewalidacje ISR na Next.js w kilka sekund. Plan darmowy jest hojny (3 użytkowników, 10 tys. dokumentów, 100 tys. zapytań/miesiąc) — wystarczy do pełnej strony marketingowej. Powyżej, plan Growth zaczyna się od ok. 99 $/mies.
Kiedy wybieramy Sanity vs Strapi lub Contentful: Sanity wygrywa elastycznością Studio (nigdy nie blokuje Państwa interfejs), jakością danych strukturalnych i współpracą wieloosobową w czasie rzeczywistym. Strapi wygrywa self-hostingiem i suwerennością. Contentful wygrywa w enterprise/SLA. Dla 80 % naszych stron na zamówienie z potrzebą obsługi treści (marketing, e-commerce, media SEO programmatic) wybieramy Sanity. Typowo wdrażamy go z Next.js w trybie ISR z workflowem podglądu live — czy to ma sens u Państwa, sprawdzimy w bezpłatnym audycie.
Dlaczego wybieramy Sanity w 80 % przypadków
- Schema-as-code: wersjonowane w Git, bezpieczny refactor, generowane typy TypeScript.
- Konfigurowalne Studio: to aplikacja React, dodaje się do niej wszystko, co potrzebne (widoki, wtyczki, walidacje).
- GROQ + GraphQL + REST: trzy sposoby odpytywania tych samych danych, wybiera się to, co pasuje do przypadku.
- Webhook → rewalidacja [ISR](/glossaire/isr/): edytor publikuje, Vercel/Cloudflare regeneruje stronę w 2-3 s, na całym świecie.
