Sanity
SaaS · 3 free seats
Polished hosted studio. Notion-feel block editor. Magic-link login. Currently the production deploy at ai-academy-zbo.pages.dev.
AI Academy · CMS & aesthetic evaluation
Same brand. Same content. Same Luma checkout. Three sources of variation: which CMS holds the content, which visual language carries the front-end, and how each handoff to Gio works in practice.
npm run tina:devevt-GDra7ZyFAGVJ78N. The /events/ route on every variant embeds the AI Academy Luma calendar (cal-4IYvRHXmHNYKq7B) as a live iframe.
Same content, same Luma checkout, same hero, same brand. Choose based on the editor experience and cost model alone.
Polished hosted studio. Notion-feel block editor. Magic-link login. Currently the production deploy at ai-academy-zbo.pages.dev.
Minimal sidebar, plain form fields. Edits commit to git. Zero ongoing cost. Auth via Netlify Identity or GitHub OAuth (~2-3h setup).
Killer feature: click any text on the rendered page to edit in place. Closest to "Bolt-feel". Run `npm run tina:dev` to demo locally.
Sanity-like form editor in dark mode. Most generous free tier (10 editor seats). GraphQL-first programmatic API.
The exact tokens from Andrea's design-system.html, ported to our production stack. Reference for what every variant aims to look like.
The CMS choice is the editor choice. Below: each editor's first-impression character, with a link to open the real thing (or sign up). The screenshots show login or loading states for the SaaS options — the live editor is one click away.
Notion-feel sidebar with content types. Click a type → table view → form editor opens.
Open studio →Minimal sidebar, simple form fields, markdown body. Plain. The simplicity is the feature.
Open admin →Form mode plus the killer feature: click on text on the rendered page to edit inline.
Open editor (local) →Sanity-similar form editor in dark mode. Generous free tier (10 seats) is its big draw.
Sign up →For Gio writing daily, for Tom doing copy review, for Justine managing access. Sixteen things that matter to the editor — not to the developer.
| Feature | Sanity | Decap | Tina | Hygraph |
|---|---|---|---|---|
| Login method | Magic-link email or Google | GitHub OAuth or Netlify Identity | Magic-link (Cloud) or self-host auth | Email / Google / GitHub |
| Free editor seats | 3 | Unlimited | 2 (Cloud) · ∞ (self-host) | 10 |
| Writing surface | Notion-style block editor | Form + markdown editor | Visual inline + form | Form + rich text editor |
| Image upload | Drag → Sanity CDN | Drag → git repo (bloats over time) | Drag → repo or external CDN | Drag → Hygraph CDN |
| Live preview of real site | $99/mo tier only | Markdown preview only | Built-in (visual mode) | Doc-by-doc only |
| Version history | Self-service in UI | Git only — needs dev | Git only — needs dev | Self-service in UI |
| Autosave | Yes | No — manual save | Yes | Yes |
| Mobile-friendly editor | Yes | OK | OK | Yes |
| Where content lives | Sanity cloud (theirs) | Git repo (yours) | Git repo (yours) | Hygraph cloud (theirs) |
| Self-hostable | No | Yes | Yes (backend) | No |
| Open source | Studio frontend only | Fully OSS (MIT) | Fully OSS (Apache 2) | No |
| Programmatic API (read) | GROQ + REST | Read .md files | GraphQL | GraphQL |
| Programmatic API (write) | REST + token | GitHub API | GraphQL mutations | GraphQL mutations |
| Migration cost away from | NDJSON export | Zero — files are yours | Zero — files are yours | GraphQL export |
| Yearly cost at current scale | $0 (shared seat) | $0 forever | $0 self-host / $348 Cloud Starter | $0 (Hobby tier) |
| PSM ongoing maintenance | None | None (CMS) + 2-3h auth setup | ~2-3h/mo if self-hosted backend | None |