jtakeit
Try for free

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
// 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 },
  ],
}
Declare a field and the owner can edit it. Leave it out and it is part of the design.

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.

src/pages/index.astro
---
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>
Every editable field is marked where it is rendered.
jtk/content/index.json
{
  "path": "/",
  "seo": { "title": "…", "description": "…" },
  "blocks": [
    { "type": "hero", "v": 1,
      "title": "Fresh bread from six",
      "lead": "Order by noon, collect tomorrow." }
  ]
}
The words live in the repository, one document per page.
  • 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.

Where content lives: a typical headless CMS compared with jtakeit
A typical headless CMSjtakeit
Published contentIn the CMS’s database, fetched over its APIJSON files in your repo
DraftsIn the CMSIn the platform’s database
A saveA record updateA commit
Where the owner editsA separate admin formOn the page itself, by tapping text
The site as it was in MarchDepends on the CMS’s historyOne 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.

See how to build client sites with Claude Code →

zsh — client-site
$ npx @jtakeit/astro catalogue
# writes jtk/catalogue.json, builds the site,
# and checks the catalogue against every page

05/ 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