Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A production-ready starter pairing an Astro 5 frontend with a headless Craft CMS backend, connected via GraphQL.

A full-stack Next.js TypeScript template focused on functionality over UI, featuring Zustand, TanStack Query, and ESLint 9 support.
Craft CMS + Astro Starter is a boilerplate project that combines an Astro 5 frontend with a headless Craft CMS backend, using Craft's built-in GraphQL API as the communication layer between them.
It is a starter template maintained by the Craft CMS team, hosted on GitHub as craftcms/starter-astro. The project takes a standard Craft CMS installation configured in headless mode and an Astro 5 static site generator, and connects the two through GraphQL queries and mutations. The repository is split into a backend/ directory containing the Craft CMS application and a frontend/ directory containing the Astro project. It is designed to run locally with DDEV, which provides the required PHP, MySQL, and Node.js environments plus pre-configured nginx virtual hosts for both the front end and the API.
frontend/queries/ directory.backend/ and frontend/ each maintain their own .gitignore and .env files, making the boundary between Craft and Astro explicit.ddev fe command runs npm tasks inside the frontend/ directory, and nginx configuration files for both sites are included.After cloning the repository, you run ddev composer install and ddev craft install to set up the Craft backend, then generate a GraphQL token for the Posts schema using ddev craft graphql/create-token. You copy frontend/.env.example to frontend/.env, fill in the token and host URLs, and run ddev fe npm install and ddev fe npm run dev to start the Astro development server.
DDEV is the recommended and assumed environment. The starter includes DDEV configuration files that provision the web server, nginx virtual hosts, and environment variables for both the front end and the Craft API.
By default, the control panel is at https://api.starter-astro.ddev.site/admin. You log in with the username and password created during ddev craft install.
Yes. Craft's live preview works as expected on the Astro frontend, and you can generate secure, shareable URLs to any draft so collaborators can view it without logging in.
You need to update the DDEV project name and hostnames in .ddev/config.yaml, change the server_name directives in the two nginx files, and adjust BASE_URL in frontend/.env and CRAFT_BASE_CP_URL in backend/.env.