Mica is the content editor for Astro, the web framework for content-driven websites. Your editors get forms. Your repository gets plain files and one tidy commit for each publish. Nobody gets a database.
The content editor for Astro
Astro reaches for the stars. Mica keeps your content down to earth.
How it works
One model. Forms for editors. Files for your build.
The content model connects the editor and the website. Git connects everything else.
Describe your content
Write the content model in TypeScript, next to your pages. Fields, labels, help texts and rules live in one file.
src/mica.ts export const site = defineSite({ root: "./content", collections: { news: collection({ label: "News", fields: { title: text({ label: "Title", required: true }), slug: slug({ from: "title" }), image: media({ label: "Image", alt: "required" }), body: richText({ label: "Text" }), }, }), },});Editors fill in forms
Mica turns the model into forms. Editors save as often as they like. Nothing goes on the website until someone publishes.
Publish makes one commit
Publish commits the saved JSON, Markdoc and images to your repository, as one commit. Your build reads the files. The website never calls Mica.
content/news/opening-hours/index.json - "title": "Opening hours",+ "title": "New opening hours", "slug": "opening-hours", commit 3f07610 New opening hours Published-with: Mica
Two sides, one repository
Calm for editors. Plain for developers.
For editors
Clear forms with the labels and help that your developer wrote. Rich text, images, relations and lists that you can reorder. No Git words, no YAML.
- Save as often as you like
- See each change before you publish
- Choose what goes on the website
- Keep mine or use theirs when two people edit
For developers
The model is TypeScript. The content is JSON, Markdoc and images in your repository. Astro reads it at build time, with types.
- No database, no content API, no webhook
- Types without code generation
- mica check in your CI
- One reviewable commit for each publish
Agents
Your agent edits too. It saves drafts, like everybody else.
Claude Code, Cursor, VS Code or any other MCP client can read your content model and change your content. It follows the rules of the editor. A person publishes the drafts.
- Reads the content model, and Mica checks every value
- Saves drafts. Publishing by an agent is off, unless you turn it on
- Sends the revision it read, so it never overwrites a newer save
- Local: npx mica start serves the tools. Self-hosted: you opt in, and each person allows each agent
{ "mcpServers": { "mica": { "type": "http", "url": "http://localhost:6422/mcp" } }}Run it your way
On your laptop, or on your server.
Both edit the same files in the same repository. Start with one, and add the other when you need it.
Local editor
Runs on your machine, next to astro dev. Publish commits and pushes with your own Git credentials.
npx @micacms/editor startWhat you need
- Node.js 24 and an Astro 7 project
- A Git repository
- No sign-in, no account, no database
Self-hosted editor
One container on your server. Editors sign in through your identity provider, for example Google. Mica keeps its own Git clone.
ghcr.io/micacms/micaWhat you need
- A server with Docker Compose and one volume
- HTTPS in front of it
- An OpenID Connect client
- A token that can push to the repository
Is Mica for you?
Small on purpose.
Mica does a few things well. Here is what it does not do yet, so that you can choose well.
A good fit
- A content-driven Astro website: a company site, a blog, documentation
- One developer, and two to five people who write
- Content in Git, as files that people can read
- A static website with no CMS code in it
Not a good fit today
- A preview of drafts in the self-hosted editor
- Roles or approval steps inside the editor
- A page builder, or editing on the page
- Many websites from one editor
Start in five minutes.
Give one prompt to your coding agent. It reads the setup guide, asks you about your content, and shows you a plan before it changes anything. Or install Mica by hand.
Read https://micacms.com/setup.md and extend this existing Astro project to work with Mica.
Read https://micacms.com/setup.md and create a new website with Astro and Mica in this folder.
Coming soon.
# 1) Install the Mica packagesnpm install @micacms/astro @micacms/core # 2) Set up your content model; see https://micacms.com/docs/content-model/ # 3) Start the local Mica editornpx @micacms/editor start