CMS Comparison

TinaCMS vs Keystatic

Compare TinaCMS and Keystatic side-by-side. Explore setup, editing experience, non-technical usability, collaboration, Git workflow, and pricing.

TinaCMS

TinaCMS

Git-Based CMS

TinaCMS is an open-source, Git-backed headless CMS originally developed by Forestry.io and acquired by SSW (Superior Software for Windows). It provides a visual editing interface on top of Markdown, MDX, and JSON files stored in Git, giving developers full control over the content model while abstracting Git complexity for content editors.

Get Started with TinaCMS
VS
Keystatic

Keystatic

Git-Based CMS

Keystatic is a free, open-source, Git-based CMS built by Thinkmill. It stores content as Markdown, Markdoc, MDX, JSON, or YAML files directly in your Git repository. The admin UI is bundled inside your application and reads from and writes to those files with no separate CMS server or database. Keystatic is code-first and TypeScript-native.

Visit Keystatic

Overview

FeatureTinaCMSKeystatic
CMS typeGit-Based (open-source, TinaCloud optional)Git-Based (open-source, MIT-licensed)
SSG supportAstro, Next.js, Hugo, Jekyll, Gatsby, Remix, 11ty, SvelteKit + other frameworksAstro, Next.js, Remix (first-party integrations). SvelteKit via community setup. Hugo, Jekyll, and 11ty not officially supported.
Pricing entry point$24/mo (monthly) or $290/yr (annual) β€” Team plan. No lifetime option.Free forever (core CMS). Keystatic Cloud Pro starts at $10/mo per team (3 users included, $5/mo per additional user).
Free plan⚠️ Yes but β€” Free forever, limited to 2 users and 1 project.βœ… Yes β€” Core CMS is free forever with no cap. Keystatic Cloud Free allows up to 3 users per team.
Free trial (without credit card)❌ No β€” No time-limited trial. The permanent free plan (2 users, 1 project) serves this role.βœ… Not needed β€” the core CMS is permanently free.
Content securityβœ… Yes β€” Highly secured. No database; files in Git. SOC 2 framework alignment, AWS-hosted infrastructure, encryption at rest and in transit.βœ… Yes β€” Highly secured. No database, no CMS server. Content stored as static files in your own Git repository.
Native language support❌ No β€” English only for the CMS interface.❌ No β€” Admin UI is English only. No native language switcher, and i18n for content requires manual workarounds.
Mobile friendlyβœ… Yes β€” Mobile and tablet optimized as of TinaCMS v2.0 (iOS and Android supported).⚠️ Yes but β€” Mobile-first editing is listed as a feature, but multiple user reports note the interface isn’t fully optimized and can be complex on smaller screens.

Setup & Configuration

FeatureTinaCMSKeystatic
Non-technical setup❌ No β€” A developer must configure the /tina folder and schema before editors can use the CMS.❌ No β€” A developer must install the package, create a keystatic.config.ts file, and configure storage and authentication first.
Starter templates⚠️ Yes but β€” A small set of official CLI starters (Next.js, Astro). Some community starters, no large library.⚠️ Yes but β€” Official CLI starters exist for Astro and Next.js. A small number of community starters, no large library.
Edit schema modifier❌ No β€” Schema is defined in code via TypeScript/JavaScript config files. No visual schema editor.❌ No β€” Schema is defined entirely in code via keystatic.config.ts (TypeScript). No visual schema editor.

Editing Experience

FeatureTinaCMSKeystatic
EditorVisual (contextual/inline) editor + Rich Text (Plate-based) + Markdown + Code.Rich text (WYSIWYG) + Markdoc + MDX + JSON/YAML. Auto-generated from your TypeScript schema.
Live preview system⚠️ Yes but β€” Contextual, on-page visual editing with real-time inline preview. Requires developer setup to wire to the frontend.⚠️ Yes but β€” Real-time previews via Next.js Draft Mode integration. Requires developer setup and is tied to that specific integration.
AI assistant integration❌ No β€” Listed as β€œComing Soon” on paid plans. TinaGPT is a support chatbot only.❌ No β€” No built-in AI assistant or content generation tool in the core CMS or Keystatic Cloud.
Collaborative editing❌ No β€” TinaCMS is single-user per document. Simultaneous multi-user editing is not supported.⚠️ Yes but β€” Multi-player editing is an experimental feature on Keystatic Cloud Pro. The core CMS has none, and simultaneous saves create unresolved Git merge conflicts.
iFrame embed preview⚠️ Yes but β€” Not native. iFrame/embed support depends on custom MDX component configuration by a developer.❌ No β€” Not a built-in or documented feature.
Shortcode supportβœ… Yes β€” Custom Markdown shortcodes via the rich-text field’s custom MDX syntax configuration.βœ… Yes β€” Content components (custom blocks) are supported within Markdoc and MDX fields.
SEO tools⚠️ Yes but β€” SEO fields are developer-configurable. No built-in SEO analysis, SERP preview, or content scoring.⚠️ Yes but β€” Slug generation via the slug field type. No built-in SEO analysis, SERP preview, or scoring.
Dark mode❌ No β€” Not confirmed as a switchable CMS setting (dark mode exists in the separate TinaDocs product only).❌ No β€” No dark mode documented for the Keystatic admin UI.

Non-Technical User Experience

FeatureTinaCMSKeystatic
Designed for non-technicals⚠️ Yes but β€” Editors can use it once set up, but initial configuration and schema changes always require a developer.⚠️ Yes but β€” Editors can use the visual admin UI once set up, but Keystatic is developer-first: all schema config and setup require a developer.
Version rollback⚠️ Yes but β€” Content is Git-backed so rollback is possible. No dedicated non-technical rollback UI.⚠️ Yes but β€” Every save is a Git commit, giving full history. No dedicated non-technical rollback UI.
Initial setup by non-dev❌ No β€” A developer must install the package, configure the schema, and deploy the admin route first.❌ No β€” A developer must install the package, define the TypeScript schema, and configure storage and authentication first.

Media Management

FeatureTinaCMSKeystatic
Media management⚠️ Yes but β€” Upload, view, and delete via the Media Manager. External providers (Cloudinary, S3, Digital Ocean Spaces). No file renaming.⚠️ Yes but β€” Images upload and store in the Git repo via the image field. Keystatic Cloud Pro adds managed Cloud Images. No folder organization or renaming in the CMS UI.
External image URL support⚠️ Yes but β€” Handled via external media provider plugins. No direct inline external URL support.⚠️ Yes but β€” External URLs can be referenced in content fields. Keystatic Cloud Images serves via Cloudflare CDN with transform params.

Collaboration & Teams

FeatureTinaCMSKeystatic
User accessβœ… Yes β€” Invite via TinaCloud. Editors need only a TinaCloud account, no GitHub account required.⚠️ Yes but β€” Keystatic Cloud allows login without a GitHub account. Without Cloud, editors must authenticate directly via GitHub OAuth.
Custom roles⚠️ Yes but β€” Two roles (Admin, Editor) on Free, Team, and Team Plus. Three roles on Business (beta). Custom roles on Enterprise only.❌ No β€” No role-based access control at all, in the core CMS or Keystatic Cloud Free/Pro. All team members can access all projects in a team.
Organization managementβœ… Yes β€” Organizations are supported in TinaCloud to manage multiple projects.⚠️ Yes but β€” Keystatic Cloud organizes projects into teams. Requires the paid Cloud tier for anything beyond a single project.
Branch workflows⚠️ Yes but β€” Branch creation, protected branches, PR review, and preview links β€” available on the Team Plus plan and above only.⚠️ Yes but β€” Branch creation and switching happen inside the admin UI via GitHub mode. No built-in PR creation, review, or merge β€” that’s done directly in GitHub.

Git & Deployment

FeatureTinaCMSKeystatic
Git providersGitHub only via TinaCloud, including GitHub Enterprise on the Enterprise plan. GitLab not supported natively.GitHub only via Keystatic Cloud. GitHub and local filesystem in self-hosted mode. No GitLab or Bitbucket.
Vendor lock-inβœ… No β€” No vendor lock-in. Content stored as Markdown/MDX/JSON in your own GitHub repository. TinaCloud is optional; self-hosting is available.βœ… No β€” No vendor lock-in. Content is stored as static files (Markdown, YAML, JSON) in your own GitHub repository. Keystatic Cloud is optional.
DeploymentPushes content changes to your Git repo, triggering builds on Vercel, Netlify, GitHub Pages, Cloudflare Pages, Cloudflare Workers, and Alibaba Cloud.Works with any Git-connected CI/CD platform. No built-in one-click deployment.

Accessibilities

FeatureTinaCMSKeystatic
Global search⚠️ Yes but β€” Built-in via TinaCloud with indexer token configuration. Not available in self-hosted mode.❌ No β€” Only a per-collection filter by title or slug. No global cross-collection search.
Edit configs as codeβœ… Yes β€” All configuration is done in code via /tina/config.ts.βœ… Yes β€” All configuration is done in code via keystatic.config.ts.
Mermaid diagram previewβœ… Yes β€” Mermaid diagram rendering is supported in the rich-text editor using the Mermaid npm package.❌ No β€” Not a built-in or documented feature.
Worth Knowing

There's a third option: Sitepins

Both TinaCMS and Keystatic need a developer to write a config file and set up a schema before editors can log in, and neither one gives you real-time collaborative editing on the same document. Sitepins connects to your repo with zero config and includes a visual editor, AI writing assistant, true multi-user collaboration, and custom roles β€” free forever, or a $199 one-time lifetime deal. It is open source as well (AGPL-3.0, on GitHub), so self-hosting stays an option.

Note: If you found any wrong information here, please contact us and we will fix it.

Which one is right for you?

A quick summary to help you choose the right Git-based CMS.

TinaCMS

Choose TinaCMS if:

  • You want editors to log in without a GitHub account, via a managed TinaCloud account
  • You need Mermaid diagram rendering directly in the content editor
  • You want a mobile-optimized editing experience for your team
  • You're building across a wider range of SSGs (Hugo, Jekyll, Gatsby included) with one CMS
  • You want built-in content search without waiting on a self-hosted workaround
Keystatic

Choose Keystatic if:

  • You want a completely free, self-hosted CMS with no required subscription for small teams
  • Your team wants a code-first, TypeScript-native schema with a Reader API for type-safe content queries
  • You're building specifically with Astro, Next.js, or Remix and want a first-party integration
  • Content should live entirely inside your codebase with zero separate CMS server or database
  • You want a cheaper managed-cloud upgrade path ($10/mo for a 3-user team) if you outgrow self-hosting
Migration Support

Already using another CMS?

Whether you are coming from WordPress, Contentful, Sanity, or any other platform, our team is ready to help you migrate your content, structure, and workflows with zero downtime. Migration support is available for all users on the Team plan or the Lifetime deal. We handle the boring, tedious tasks so you can focus on launching as soon as possible.

Get Started with Sitepins