
PUMA moves fast and gets global teams in sync with Sanity
Remix is opinionated about data fetching. Your CMS should be too. Sanity gives you structured content, a query language built for precision, and a developer experience that works the way your loaders expect.
GROQ lets you describe the exact shape of data your Remix loader needs and get back precisely that — no overfetching, no client-side reshaping. Query nested references, filter by any field, and get a clean response in a single request.
Content models live in your Studio config files and evolve the same way your Remix code does: through pull requests and your existing CI/CD pipeline. No database migrations. Add a field, commit it, deploy.
Sanity TypeGen reads your schema and GROQ queries and generates TypeScript types for both. If you rename a field in the schema, TypeScript catches it before runtime.
Sanity's Live Content API pairs with Remix's streaming patterns so pages update the moment editors publish — no webhook-triggered rebuild cycle required.
When your content is data, stored as JSON, you can power web, mobile, storefronts, internal tools, and agentic applications from the same backend.
Find everything you need for Remix and Sanity—from official plugins to community-built starters.

Integration guide for React Router (formerly Remix) with Sanity, including Loaders and Visual Editing.

The results are in
G2.com, the world's largest marketplace for software, has rated Sanity as the #1 leader in the Headless CMS category, as measured by customer review ratings and market presence

CMS INTEGRATIONS
Sanity can be integrated with any major framework, providing the flexibility need to have full control of your project.
The best CMS for Remix is one that fits route-based data loading, server-side rendering, and custom application workflows. Sanity is a strong fit because you can define schemas in code, fetch content directly in Remix loader functions with @sanity/client, and add Visual Editing for React Router/Remix when your team needs preview workflows.
Yes. Sanity works well with Remix because it gives you structured content, schema as code, and a JavaScript client that works across browsers, Node.js, Bun, Deno, and edge runtimes. That makes it a flexible content backend for Remix apps, websites, docs, and custom editorial workflows. See @sanity/client and Visual Editing with React Router/Remix.
Most teams connect Remix to Sanity by defining content in Sanity Studio and fetching it in Remix loader functions with @sanity/client. If your editors need previews, you can add Presentation and Visual Editing for React Router/Remix on top of that setup.
Yes. GROQ is Sanity's primary query language, and you can use it directly with client.fetch() in @sanity/client. That works well in Remix because each route can fetch exactly the content it needs instead of working around a generic page API.
Yes. Sanity has an official guide for Visual Editing with React Router/Remix. It covers embedded preview in Presentation, click-to-edit overlays, and optional live updates for draft content.
Yes. Sanity's React Router/Remix Visual Editing setup supports optional instant updates and switching between draft and published content. That gives Remix teams a stronger preview workflow than static preview links alone.
Yes. Sanity TypeGen can generate TypeScript definitions from your schema and GROQ queries, which can help type route-level content fetching in Remix. Sanity currently documents TypeGen as experimental, so that is worth keeping in mind.
Yes. Sanity supports deployed GraphQL APIs generated from your schema. Sanity still recommends trying GROQ first, but GraphQL is available if your Remix app or team prefers that API shape.
No. You can start with a Remix site or app and reuse the same structured content across other frontends and services later. The official @sanity/client is designed to work across browsers, Node.js, Bun, Deno, and edge runtimes, which makes Sanity a good long-term content backend beyond one frontend.
Traditional CMSes are usually built around page editing. Remix is built around routes, loaders, actions, and web-native forms. Sanity is a better fit because it gives you structured content, flexible queries, and a customizable Studio instead of forcing your app into page-shaped fields. Learn more in the @sanity/client docs and the React Router/Remix Visual Editing guide.