The claim, in full
Sanity-compatible, and specific about it
A compatibility claim is only useful if it can be falsified. Everything below is stated per surface, with the limits named rather than left to be discovered in production.
Clients and libraries
| Feature | Status | Notes |
|---|---|---|
| @sanity/client | supported | Unmodified. Queries, mutations, actions, listeners, uploads and the management-plane calls the Studio makes on boot. |
| next-sanity | supported | It is a wrapper over @sanity/client plus Next helpers; the transport is what matters and it is the same. |
| @portabletext/react and the Portable Text toolkit | supported | Portable Text is stored in its standard shape, so any renderer works. |
| Sanity CLI | unsupported | It manages hosted projects and datasets. This platform ships its own small CLI for init and login instead. |
| Pinned API versions | supported | Any well-formed pinned version is accepted, not just the baseline — the Studio pins several different ones internally. |
The data API
| Feature | Status | Notes |
|---|---|---|
| GROQ evaluation | supported | Full semantics via groq-js. The SQL planner only narrows the candidate set; it never decides the answer. |
| Mutations and patch operations | supported | create, createIfNotExists, createOrReplace, patch (set, setIfMissing, unset, inc, dec, insert, diffMatchPatch) and delete, including delete by query. |
| Document actions | supported | document.create, edit, publish, discard, delete and unpublish, each applied as one transaction. |
| Optimistic concurrency | supported | ifRevisionID and ifPublishedRevisionId compared against the stored revision. |
| History: revisions, events and the transaction log | supported | Including deletions in the event list, which a history derived from current documents cannot report. |
| resultSourceMap | partial | Emitted, but not yet a complete source map for every projection shape. |
| text::match ranking | partial | Pushed down to a Postgres tsquery; ranking is Postgres’ rather than Sanity’s. |
Assets
| Feature | Status | Notes |
|---|---|---|
| Uploads, metadata documents and content-addressed ids | supported | Including browser-direct upload for files above the serverless request limit. |
| Transform parameters w, h, fit, q, fm, auto=format, dpr | supported | Served through Vercel Image Optimization. |
| Hotspot and crop rectangles, blur, sharpen, flip, rect, palette, LQIP | unsupported | Ignored rather than approximated. Hotspot data is stored on the image field and can be used by a frontend. |
| The ?dl= download flag | planned | The delivery route does not yet set Content-Disposition from it. |
Collaboration and hosted services
| Feature | Status | Notes |
|---|---|---|
| Real-time listen | supported | A real SSE stream over Supabase Realtime, with keepalives, reconnection and a polling fallback. |
| Presence, comments and tasks | partial | Stored and served, Studio surfaces enabled, not yet at parity with the hosted product. |
| Content Lake, scheduled publishing, releases, Canvas, Media Library SaaS | unsupported | Out of scope by design. This platform replaces the backend rather than proxying a hosted one. |
| Sanity’s hosted authentication and SSO | unsupported | Identity is Supabase Auth in your own project, with a custom Studio auth provider. |
If something you depend on is missing from this page, treat it as unsupported rather than as an omission — and say so, because the list is meant to be complete.
Check it yourself
The playground runs GROQ against this deployment with no session, which is the same anonymous, published-only access your own frontend would have.
