Saves, branches and publishing
In GitHub mode, each Keystatic save is one commit to the current branch. Editors can create branches, and a protected branch leads to a new branch. Review goes through GitHub pull requests. This suits teams that want every save in the history and a pull request for each change.
In Mica, a save writes a draft file. Publish makes one commit of the changes the editor chooses, with a summary. When an entry changed in the meantime, Mica shows both versions side by side, with Keep mine and Use theirs. Mica has no review step in the editor: a team can review with a staging branch and a second Mica.
Git host, hosting and working together
Keystatic GitHub mode works with GitHub only, through a GitHub App and API routes in your site. Editors sign in with GitHub. Keystatic Cloud is optional: with it, editors need no server that you run, and Pro adds an experimental real-time multiplayer mode.
Mica reads and writes a Git clone, so it makes no host API call for content. Forgejo is tested in CI. github.com and gitlab.com are in use, but not tested automatically yet. Other hosts are expected to work, but are not tested. Mica has no hosted offering: it runs as a local editor, or as a container that you run, with OpenID Connect sign-in.
Preview
Keystatic has no preview pane. A previewUrl link opens a Next.js draft-mode page after a save to a branch. Mica shows the real Astro page beside the form, with the drafts in it, about 1-2 seconds after the editor stops typing. A click on the page moves the cursor to the field, and unpublished changes get an outline. Mica edits no text on the page itself. The templates need one integration, micaPreview(), and no other change.
Localization
On 21 October 2026, the Keystatic documentation does not describe localization, and issues #1553 and #1080 are open. In Mica, a field can have a value for each language in one entry, with a fallback to another language. The editor shows one language at a time and counts the missing translations, and the preview shows the page in that language.
Equal, or not documented
- Both keep content in Git, use a TypeScript model and have an official Astro package.
- Neither needs a database.
- Both are MIT-licensed.
- Content in a Git submodule: the Keystatic documentation does not say.
- Entries that link to a JSON or CSV file of reference data: the Keystatic documentation does not say.