CaretCMS began with a small idea: the page should be the editor. That worked well for fields marked withdata-caret, but most Astro writing lives in content collections. Until now, Caret could edit the frontmatter while the article itself stayed read-only.

Version 0.3 closes that gap. On a site using the Markdown storage adapter, an editor can click a paragraph, heading, list, or quote on the live page. Caret keeps the change in a private draft. Publish writes only the matching part of the .md file, leaving the rest of the source alone.

The source file stays in charge

There is no second copy of the article in a vendor database. Astro still reads the same files insrc/content, and Git still records the resulting change. If somebody edits the source after a draft begins, Caret stops the publish and reports a conflict instead of replacing newer work.

Studio and the page now find each other

The release also carries over the field-linking work proven in the artist portfolio. Click a field in Studio and the live page scrolls to its match. Click the page and Studio opens the right entry and field. It works in the embedded sidebar and between separate Studio and preview tabs.

Repeatable fields now use their real schema controls, image rows get upload and preview tools, and collection rules for singletons, creation, ordering, and deletion are enforced by the server. Studio has clearer save messages, better mobile actions, English and Spanish text, and improved screen-reader labels.

Why build this into the Astro integration?

TinaCMS and Keystatic are strong choices when you want a larger content platform or a Git-focused admin app. CaretCMS takes a narrower path: add editing to the Astro site you already have, keep deployment and storage under your control, and let the rendered page remain the main editing surface.

CaretCMS 0.3 supports Astro 6 and 7 and requires Node.js 22.12 or newer. It is MIT licensed and available from npm under the @caretcms scope.