👉 Visit the DatoCMS homepage or see What is DatoCMS?
This example showcases an Astro Blog using DatoCMS as the data source. The purpose of this repo is to have a quick start reference that can be set up with the "one-click" button below.
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:
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 two DatoCMS API tokens: CDA Only (Published) for published content and CDA Only (Draft) for preview content.
Next, copy the .env.example file in this directory to .env (which will be ignored by Git):
cp .env.example .envThen set DATOCMS_PUBLISHED_CONTENT_CDA_TOKEN and DATOCMS_DRAFT_CONTENT_CDA_TOKEN in .env.
npm install
npm run devYour blog should be up and running on http://localhost:3000!
Astro is "Zero JS, by default: No JavaScript runtime overhead to slow you down". That means that by default Astro generates static files server-side and no JS is sent to the client, unless strictly needed.
When using the <Image /> component, or any other component that requires some client-side orchestration, you must instruct Astro to send the component bundle to the client, so that the interactive features can be made available to the user. Astro uses directives: client:visible loads and hydrates the component once the component has entered the user’s viewport.
In this demo, we use the client:visible directive to enable the lazy load of images, that are actually loaded only when they enter the viewport.
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:
- Content Delivery API (CDA) — the fast, read-only GraphQL API your website/app uses to fetch published content.
- Content Management API (CMA) — the REST API for creating and updating content, models, and project settings (think scripts, migrations, integrations).
- CLI — terminal tool for schema migrations and importing from Contentful/WordPress.
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.