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
The template is the schema. The page is the editor.
- 01
Your markup is the schema.
Existing elements are the default content. The first edit creates the collection — no config to write.
- 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. Your content is plain JSON stored on infrastructure you own — never locked in a vendor's database.
02 · Live demo
Try the editor on 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 run caretize 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 5 + 6 · Self-host anywhere