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 their edits from the browser. CaretCMS renders every change on the server, so the page you publish stays fast and search engines see the final words.
04 · Who it's for
Build it once. Hand it off without a training call.
You add the attributes. After that, whoever owns the words edits the live page themselves, be it a client, a teammate, or you. They work on the real site, so a typo fix goes live the second they click away, and nothing gets redeployed.
Add one attribute.
Edit it live.
$ npm i @caretcms/core
# astro.config.mjs
integrations: [ caret() ] // output: 'server' MIT licensed · Astro 5 + 6 · Self-host anywhere