One attribute.Any element.Editable.
Adding a CMS shouldn't mean building a second app. With CaretCMS, the Astro site you already shipped is editable in place.
<h1 data-caret="pages::home::headline">
Welcome to my site
</h1>Welcome to my site
click to edit
01 · The shape of it
Your site stays the source.The page becomes the editor.
- 01
Use the content you have.
Bind existing markup with one attribute, or edit supported prose rendered from an Astro Markdown collection automatically.
- 02
Just one attribute.
One HTML attribute binds an element to a field. Click on the live page, type, click away. Saved.
- 03
Your content, your infra.
MIT licensed and self-hosted. Keep content in JSON, Markdown, Cloudflare KV, or your own adapter — never locked in a vendor database.
02 · New in 0.3
Edit where you can see it.Keep source control in charge.
- 01
Markdown, without migration.
Edit rendered paragraphs, headings, lists, and quotes. Publish writes only verified source ranges back to the original .md file.
- 02
Studio and page stay in sync.
Click a field on either side to find its match. Preview text and images while typing, even across separate tabs.
- 03
Typed controls, enforced rules.
Nested repeaters, image controls, validation, singletons, collection capabilities, Spanish chrome, and external identity support.
02 · Live demo
Try the editoron a real page.

03 · Against the field
Other CMSs ask you to model first.
We let you ship first.
| Sanity, Contentful | Define the schema, then build the page. |
|---|---|
| Tina, Decap | Write a config, then expose fields. |
| Strapi, Payload | Run a server, set up a database. |
| CaretCMS | Add one attribute to your existing markup. |
Tina and Decap push edits from the browser. CaretCMS renders published content into HTML — baked at build for static sites, or rewritten per request on server delivery — so visitors get fast pages search engines can read.
04 · Who it's for
Build it once.Hand it off without a training call.
You add the attributes — or runcaretize on an existing site. After that, whoever owns the words edits on the real page: a client, a teammate, or you. On server delivery, fixes show up immediately; on static delivery, publish and rebuild.
Add one attribute.
Ship what you have.
$ npx @caretcms/caretize init
# astro.config.mjs — static sites
integrations: [ caret({ delivery: 'static' }) ]MIT licensed · Astro 6 + 7 · Self-host anywhere