Sanity · Next.js · Cloudflare · i18n

A starter for Sanity, Next.js, Cloudflare.
Now speaking every language.

A scalable, multi-language starter that pairs Sanity CMS, Next.js, Cloudflare, and i18n with locale routing and translated content out of the box. Ship global sites in every language your users speak.

// what's included

One template. Four pillars. Ready for every language.

Sanity CMS

Manage all your content in Sanity Studio. Localized documents, fieldsets per locale, and a schema you own.

Next.js App Router

React Server Components, TypeScript, and Tailwind. Native locale segments keep URLs clean.

Cloudflare Workers

Deploy globally with a single command Powered by OpenNext — no custom server configuration needed.

i18n built-in

Locale routing, translated Sanity content, and per-locale fallbacks. Launch in any language on day one.

// how to use it

From first clone to every language, live.

Four steps is all it takes. Clone, translate your content in Sanity Studio, build, and deploy with a single command.

01

Clone & configure

Clone the repo and set your Sanity project ID, dataset, and the list of locales you want to support.

~git clone … && cp .env.example .env.local
02

Translate & localize

Write content per locale in Sanity Studio. Route segments like /en, /pt, /pl map automatically to translated documents. Add as many locales as you need.

en · pt · pl
03

Build your pages

Open Sanity Studio and compose pages from reusable blocks. Editorial changes need zero code. Create components that fit your needs.

~pnpm dev
04

Deploy to Cloudflare

Run pnpm run deploy and every locale goes live globally in seconds. No platform dashboard required.

~pnpm run deploy

// features

Built to be extended.

Everything you need to grow a real product — including proper internationalization — without rewriting the starter.

Page builder

Compose pages from reusable blocks defined in Sanity. Add new section types without touching layout code.

next-intl

App Router locale segments, typed message catalogues, pluralisation, date and number formatting, and first-class Server Components support.

@tinloof/sanity-document-i18n

The Sanity translation plugin used by this starter — a community fork of @sanity/document-internationalization — with field-level document translations, fallback locale logic, and per-locale preview in Studio.

Live preview & draft mode

Edit in Sanity Studio and see changes reflected instantly in a preview of your live site before publishing.

One-command deploy

Run pnpm run deploy and every locale goes live globally. Wrangler CLI handles everything — no platform dashboard.

TypeScript end-to-end

Types generated from your Sanity schema flow through every locale and component. No mismatches between content and UI.

// latest posts

From the blog

These blog posts are populated from your Sanity Studio.

All posts