Astro CMS · for client sites
The Astro CMS made for client sites
jtakeit is an Astro CMS for developers: your client edits their site by tapping the text on it, the code stays in your git repository, and enquiry forms and bookings come included.
// src/content/blocks.ts — what the owner may edit
{
type: 'hero',
v: 1,
label: 'Opening screen',
fields: [
{ key: 'title', label: 'Heading', kind: 'text',
max: 80, client_editable: true },
{ key: 'lead', label: 'Subheading', kind: 'textarea',
max: 240, client_editable: true },
],
}01/ the catalogue
A CMS for Astro that reads a catalogue, not your components
Your components can look like anything. The panel never needs to understand them: it reads the site’s catalogue — the list of what the owner may edit — which is generated from the project and checked against the built pages in both directions.
---
import { readPage } from '../lib/page';
const page = readPage('/');
const { at, of } = page.block('hero');
---
<h1 data-jtk-path={page.pathAt(at, 'title')}>
{page.str(of, 'title')}
</h1>{
"path": "/",
"seo": { "title": "…", "description": "…" },
"blocks": [
{ "type": "hero", "v": 1,
"title": "Fresh bread from six",
"lead": "Order by noon, collect tomorrow." }
]
}- Declared, not rendered — a control that edits nothing. The check refuses it.
- Rendered, not declared — text the owner can see and cannot touch. The check refuses that too.
02/ git, not an API
Git-based, not an Astro headless CMS bolted on
A headless CMS keeps content in its own database and serves it over an API — a good fit when a content team publishes to many channels. A client site has one owner and one site, and jtakeit keeps it in the repository you already hold.
| A typical headless CMS | jtakeit | |
|---|---|---|
| Published content | In the CMS’s database, fetched over its API | JSON files in your repo |
| Drafts | In the CMS | In the platform’s database |
| A save | A record update | A commit |
| Where the owner edits | A separate admin form | On the page itself, by tapping text |
| The site as it was in March | Depends on the CMS’s history | One command in git |
03/ what a client site needs
What the best CMS for Astro client sites has to include
Editing is half of a client site. The other half is what happens after a visitor reads it — and what happens when the client wants to leave.
Edit without breaking
The owner taps text on the page and fills only what the catalogue declares. No add-page or add-block button, by design.
Preview, then pay
The client gets a preview of the real site to sign off on before they pay.
Enquiry forms
Forms are protected against spam, and enquiries arrive in Telegram, email or the admin inbox.
Bookings
The diary module takes paid bookings straight into the business’s own Stripe.
A way out
Enquiries and bookings export as CSV and JSON, with no live subscription required. Nothing is deleted when one lapses.
SEO guardrails
A build with noindex, a robots.txt that blocks crawlers, an empty sitemap or a canonical on another host is refused.
04/ written by your agent
An Astro JS CMS your AI agent can write
Every part of it is a file: the pages, the declaration of what the owner may edit, the content. So the agent that writes the site also writes what the owner may edit, and jtakeit’s MCP server lets it validate the catalogue, build, preview and preflight before a person looks. Astro is the scaffold jtakeit ships, not the only option: Next.js as a static export, Nuxt, SvelteKit, Eleventy or Vite work too.
$ npx @jtakeit/astro catalogue
# writes jtk/catalogue.json, builds the site,
# and checks the catalogue against every page05/ from wordpress
WordPress to Astro, with the client still editing
Moving a client from WordPress to Astro usually costs them the dashboard they were used to. With jtakeit they keep editing — on the page itself — while the site becomes static output with no plugins to update.
Read more on jtakeit as a WordPress alternative for developers, or see how the whole CMS for developers fits together.
06/ questions
Astro CMS questions
- Does Astro have a CMS?
- Astro does not ship a CMS of its own. It reads content from files or from any source you connect. jtakeit adds one shaped for client sites: the owner edits text on the live page, and what they may edit is declared in the repository.
- Which CMS is best for Astro client sites?
- For a site you hand to a client, look for three things: the owner can edit without being able to break the design, the code stays in a repository you hold, and forms and bookings work without extra services. jtakeit is built around exactly those three.
- Is jtakeit git-based or API-based?
- Git-based. Published content is JSON in the site’s own repository, and every save is a commit. The platform’s database holds drafts only. The pages read the content at build time, with no content API to call.
- Can clients break the design?
- No. The owner can only fill in the fields the catalogue declares, by tapping them on the page. There is no button to add a page or a block, so structure, layout and styling stay in your code and change only with a commit.
- Does it work with an existing Astro project?
- Astro sites on jtakeit start from jtakeit’s Astro scaffold, which holds the contract the platform builds against; existing components and pages can be brought into it, and each field the owner may edit is declared in the project. Another static generator works too, laid out to the same contract.
07/ try it free
Try the Astro CMS on a client site
Sign up in the panel and build your first client site. Building and previewing cost nothing — you pay a wholesale price only when a site goes live.
Try for freeadmin.jtakeit.com
- Free until a site goes live
- Then a wholesale price per live site, from €5 a month
- The code stays in your git repository