Compare
Mica next to other Git-backed editors.
Mica is a small content editor for static Astro websites. It keeps structured content in Git, uses Astro's Content Collections, and needs no database and no CMS on the published website. Here is how it compares with six other editors, and when one of them is the better choice.
Mica is experimental and not ready for production. It has no roles, no approval steps and no page builder.
Which approach fits you?
Choose Mica
You build with Astro and want content as plain files in Git, single-language or multilingual, a local or self-hosted editor, a live preview of the real page, and agents through MCP, with no database.
Choose a hosted CMS
Managed infrastructure, support, roles or approval steps matter more to you than an editor that you run yourself.
Choose another Git editor
Its Git hosts, localization, editing experience or way to integrate fit your project better.
Product by product
Mica vs. Keystatic
Both are Git-backed, database-free editors with a TypeScript model and an Astro integration. Keystatic saves each edit as a commit on GitHub and offers an optional cloud. Mica uses plain Git with no host API, saves drafts and publishes them as one commit. Keystatic suits teams that live on GitHub.
Mica vs. KeystaticMica vs. TinaCMS
Both keep content as files in Git and have an official Astro package. TinaCMS edits on the page itself and adds a content index, a hosted service and search. Mica edits in forms beside the real page, and Astro reads the files. Tina suits teams that want on-page editing.
Mica vs. TinaCMSMica vs. Decap CMS
Both edit Git content for static websites. Decap CMS is a static admin app with an editorial workflow, languages and many Git providers. Mica is a local editor or a container you run, on a Git working tree, for Astro. Decap suits teams that want a static app and no service of their own.
Mica vs. Decap CMSMica vs. Sveltia CMS
Both are database-free, Git-backed editors with a preview. Sveltia CMS is a static, Decap-compatible app with first-class languages and many media providers. Mica is for Astro, with a preview of the real page. Sveltia suits multilingual sites that want machine translation, and a static app with no server of your own.
Mica vs. Sveltia CMSMica vs. Pages CMS
Both edit content that stays in Git files, and neither stores content in a database. Pages CMS gives hosted convenience: a free app with no install, and email invites for editors without GitHub. Mica gives developer control for Astro: a typed model and an editor that you run.
Mica vs. Pages CMSMica vs. CloudCannon
CloudCannon is a commercial managed CMS with visual editing, roles, support and DAM integrations. Mica is a free, experimental tool that you run yourself. The trade-off is control and simplicity against managed workflows; CloudCannon suits teams that want a supported service for their editors.
Mica vs. CloudCannon
Side by side
| Feature | Mica | Keystatic | TinaCMS | Decap CMS | Sveltia CMS | Pages CMS | CloudCannon |
|---|---|---|---|---|---|---|---|
| Content in Git, and which hosts | Yes. Plain Git, no host API. Tested in CI: Forgejo. In use with github.com and gitlab.com. The self-hosted editor pushes over HTTPS. | Yes. GitHub only; GitLab support is an open request. Local mode edits files on disk. | Yes. GitHub only, with TinaCloud and with the self-hosted provider. Custom providers are possible. | Yes. GitHub, GitLab, Bitbucket, Gitea, Forgejo, Azure and Git Gateway. A local proxy edits local files. | Yes. GitHub, GitLab, Gitea, Forgejo and Codeberg. Bitbucket and Azure are not documented. Local mode uses the File System Access API of the browser (Chromium only). | GitHub only. Reads and writes files through the GitHub API. | Yes. GitHub, GitLab, Bitbucket, GitHub Enterprise Server, and self-hosted GitLab (Enterprise). Direct upload also works. |
| Hosted service, self-hosting | No hosted service. A local editor, or a container that you run. | Hosted service available: Keystatic Cloud, optional. Self-hosting possible: local mode, or GitHub mode with your own GitHub App and API routes on a Node or SSR host. | Hosted service available: TinaCloud. Self-hosting possible: a backend function, a database adapter, a Git provider and an auth provider. The local dev server works without the cloud. | Self-hosting: a static app under /admin. GitHub needs an OAuth server: Netlify, your own proxy, or Decap Turbo. GitLab and Gitea can use PKCE without a server. Hosted service: Decap Turbo. | Self-hosting: a static app. GitHub OAuth needs a server. GitLab and Gitea use PKCE without a server. Personal access tokens also work. A hosted service is not documented. | Yes. A free hosted app at app.pagescms.org. Self-hosting is possible: Node, PostgreSQL, a GitHub App, a public HTTPS URL and email through Resend or SMTP. | Yes. It is a hosted SaaS product. Self-hosting is not documented. |
| Database or index | None, for the editor and for the website. | No. | Yes. The Data Layer indexes your content in a database; the files stay the source of truth. TinaCloud hosts it. Self-hosted needs MongoDB or Redis/Vercel KV. | None in the core. Decap Turbo, the hosted service, mirrors the repository into its own database. | No. It caches in the IndexedDB of the browser. | PostgreSQL in self-hosting, for collaboration and caching (sessions, collaborators, cache). It holds no content. | None for the customer. CloudCannon runs the infrastructure. |
| Licence and price | MIT. Free. | MIT. Keystatic Cloud is free up to 3 users; Pro costs from $10 a month plus $5 for each extra user. | Apache-2.0. The Data Layer packages have a separate licence. Free for 2 users. Team $24 a month for each project. Team Plus $41. Business $249. Enterprise on request. | MIT. Turbo on 21 October 2026: Free €0 (1 site, 1 seat), Pro €19 a month (1 site, 5 seats), Enterprise. | MIT. No paid offering documented. | MIT. Free. No paid plans are listed. | Proprietary. On 21 October 2026: 21-day trial, no free plan listed. Standard $55 a month (3 users), Team $350 a month (15 users), Enterprise on request. Extra users $10 a month. |
| Model written in | TypeScript | TypeScript | TypeScript | YAML (config.yml) or JavaScript. | config.yml, TOML, JSON or JavaScript. It is compatible with Decap CMS. | YAML (.pages.yml) | cloudcannon.config.yml or JSON, or a configuration UI |
| Astro support | Official package. Content reaches Astro as Content Collections, with types. | Yes. Official @keystatic/astro. It needs React, Markdoc and an SSR adapter. Content comes through Content Collections or the Reader API. | Yes. Official @tinacms/astro; Astro is the default starter. Content comes through a generated GraphQL client, not Content Collections. The setup adds an SSR adapter. | No official integration. The Astro documentation has a Decap guide. Content Collections read the files. | A framework guide and community starters. Content Collections read the files. | Listed as supported. It works on plain files. There is no Astro package. | A featured partner in the Astro documentation. @cloudcannon/editable-regions gives visual editing. .astro schemas. |
| Sign-in for editors | Local: none, only on your machine. Self-hosted: any OpenID Connect provider. | GitHub App OAuth. Editors need write access on GitHub, or a fork path. | TinaCloud: GitHub or email. SSO on Enterprise. Self-hosted: Auth.js, Clerk, TinaCloud or custom. OIDC is not documented. | GitHub OAuth through a proxy, GitLab and Gitea PKCE, Bitbucket, Netlify Identity, Turbo accounts. Direct OIDC is not documented. | GitHub OAuth, GitLab and Gitea/Forgejo PKCE, tokens. OIDC and SSO are not documented. | GitHub, or an email one-time code for invited collaborators. SSO and OIDC are not documented. | Email and password, or GitHub, GitLab or Bitbucket. On 21 October 2026, the pricing page lists SAML SSO on Enterprise only. |
| Save and publish | A save writes a draft. Publish makes one commit of the changes the editor chooses. | Each save is one commit to the current branch. Editors can create branches. A protected branch leads to a new branch. No batch publish is documented. | Each save is a commit. The Editorial Workflow (Business and up) uses a branch and a draft pull request. No batch publish is documented. | simple: each save commits. editorial_workflow: one branch and one pull request for each entry. It does not work with the local proxy. No batch publish documented. | simple: each save commits. preview: changes go to a pull request. editorial_workflow: one pull request for each entry, with statuses. No batch publish documented. | Each save is one commit to the branch. No pull request or publish step is documented. Action buttons can start GitHub Actions. | Edits build up in an editing session. One Save commits the chosen files. Publishing a branch merges it at once or opens a pull request. |
| Preview and visual editing | The real Astro page beside the form, with the drafts. A click moves the cursor to the field. Self-hosted: with an optional preview container. No editing on the page. | No preview pane. A previewUrl link opens a Next.js draft-mode page after a save to a branch; the documented recipe is for the Next.js App Router. Issues #1071 and #1447 are open. | Yes. Site and editor side by side, in real time in React (useTina); a click on an element opens its form. On Astro, each page is wired by hand with TinaIsland, tinaField() and requestWithMetadata(). | A preview pane from a React template (registerPreviewTemplate), not the real site, updated as you type. Deploy preview links need the editorial workflow and a CI build per save. Click to edit on the page is not documented. | A two-pane live preview with scroll sync, from custom React templates in a sandboxed iframe. Deploy previews of unpublished entries through CI. On 21 October 2026 the roadmap lists an out-of-the-box live site preview as a non-goal. | Not documented. On 21 October 2026, issue #190 is open, and pull request #336 (live previews, work in progress) is open. | Yes. A Visual Editor with inline editing of text and images, and in-browser re-rendering of components. The site needs data-editable attributes or @cloudcannon/editable-regions. Pull request deploy previews are listed; their plan limits are not confirmed. |
| Git LFS for large files | Yes, local and self-hosted. | Not supported. Pull request #1514 is open. | Not documented. The documentation names limits of the GitHub API. | Not on GitHub (issue #1206 is open on 21 October 2026) and not on Gitea. GitLab reads LFS media since version 3.14.0. | Documented on GitLab and on Gitea/Forgejo (large files stay outside the normal history). Not documented on GitHub. | No. On 21 October 2026, issue #407 (broken images with Git LFS) is open. Pull request #451, a fix for images, is open since 17 October 2026. | Yes. The documentation lists Git LFS on Standard, Team and Enterprise. |
| Content in a Git submodule | Yes. | Not documented. | Not documented. localContentPath points local development to a separate content repository. | Not supported. Issue #4056 is open on 21 October 2026. | Not supported. Local commits are refused in a submodule. | Not documented. | Not documented. Site Mounting is an alternative. |
| External data (products, places, codes) | Yes. Entries link to items of a JSON or CSV file that Mica does not edit. | Not documented. The relationship field links to entries by slug. | Not documented. The reference field links to collections. Large collections can time out. | Not documented. Relations point to collections or to a file. | Not documented. Relations point to collections or to list items in a file. | Not documented for external data. Select options are local. A reference field points to a configured collection. | Select inputs can use collections or data files. A typed relation field is not documented. |
| Map field | Yes. It stores latitude, longitude and zoom. | No map field is documented. | No map field is documented. | The map widget stores a GeoJSON string. A stored zoom is not documented. | Stores a GeoJSON string. The center and the zoom only set the first view and are not stored. Address search with Nominatim. | Not documented. | Not documented. |
| Localization (i18n) | Yes. A field has a value for each language in one entry, with fallbacks. The editor shows one language at a time, and the preview follows it. No machine translation. | Not documented as a feature. Issues #1553 and #1080 are open. | Documented patterns, by directory or by field. No locale switcher is documented. | Yes, with three structures. | Yes, first-class, with machine translation through your own API key. | Not documented. | Through Rosey, a separate tool. The built-in i18n is deprecated. |
| Roles and review | No roles. Review with a staging branch and a second Mica. | No roles of its own. GitHub permissions apply. Review goes through GitHub pull requests. | TinaCloud has Admin and Editor. More roles on paid plans. Review is the Editorial Workflow with pull requests (Business). | Not in the core (issue #2 is open on 21 October 2026). Turbo has roles as a paid add-on. Review goes through the editorial workflow. | None documented. An add-on is planned on the roadmap (21 October 2026). Review goes through the editorial workflow. | GitHub users and email collaborators. Granular permissions are listed as Soon. No review workflow is documented. | Permission groups. On 21 October 2026: custom groups on Team (10) and Enterprise (unlimited). Approval through pull request publishing. |
| AI agents | MCP server built in, local and self-hosted. Agents save drafts. Publishing by an agent is off by default. | Not documented. The documentation mentions no MCP server and no agent support. | Planned. An MCP server and AI features are listed as Coming Soon on the roadmap. | Experimental. An MCP server and editor bridge in @decap/cli work with the paid Decap Turbo only. | MCP server: not documented as of 21 October 2026. It has an Agent Skill, llms.txt and AI translation. | Not documented. The documentation mentions no MCP server and no agent support. | Yes, by another route: agent skills for coding agents, a CLI and an API. An MCP server is not documented. |
Checked on . These products change often. Read their documentation before you decide.