👉 Visit the DatoCMS homepage or see What is DatoCMS?
This example showcases a TypeScript Next.js 16 website with App Router (app) — using DatoCMS as the data source.
It uses the official @datocms/cda-client for content fetching, which provides TypeScript support, auto-retry on rate limits, and better error handling.
It also uses GraphQL CodeGen to type all of the requests coming from Dato automatically: See how it works here
Have a look at the end result live:
Make sure that you have set up the Github integration on Vercel.
Let DatoCMS set everything up for you clicking this button below:
Once the setup of the project and repo is done, clone the repo locally.
In your DatoCMS' project, go to the Settings menu at the top and click API tokens.
Create three DatoCMS API tokens: CDA Only (Published), CDA Only (Draft), and CMA Only (Read).
Next, copy the .env.example file in this directory to .env (which will be ignored by Git):
cp .env.example .envand set DATOCMS_PUBLISHED_CONTENT_CDA_TOKEN, DATOCMS_DRAFT_CONTENT_CDA_TOKEN, and DATOCMS_CMA_TOKEN with the matching token values.
Also then set a secret token that is being used for WebPreviews, SEO Previews and Cache invalidation:
URL=http://localhost:3000SEO_SECRET_TOKEN=superSecretTokenDRAFT_SECRET_TOKEN=superSecretTokenCACHE_INVALIDATION_SECRET_TOKEN=superSecretTokennpm installnpm run devYour blog should be up and running on http://localhost:3000!
It's strongly suggested to install the GraphQL: Language Feature Support extension, to get autocomplete suggestions, validation against schema, and many more niceties when working with your GraphQL queries.
DatoCMS is Headless CMS for the modern web. Trusted by 25,000+ businesses, agencies, and individuals, it gives your team one place to manage content and ship it to any website, app, or device via API.
New here? Start with Create free account and the Documentation. Stuck? Ask the Community. Curious what's new? Product Updates.
Building with AI: Agent Skills turn coding assistants (Claude Code, Cursor) into expert DatoCMS developers, with full read/write via the auto-installed CLI. No local terminal? Use the MCP Server instead.
Talking to DatoCMS from code:
Framework guides: end-to-end recipes for fetching content, rendering Structured Text, optimizing images/video, handling SEO, and setting up live preview with visual editing in Next.js, Nuxt, Svelte, and Astro.
Want a head start? Browse our starter projects — ready-to-deploy example sites for popular frameworks.