TiloBox
Back to directory
TinaCMS project preview

TinaCMS

Open-source, Git-backed headless CMS with visual editing directly on your site.

LicenseApache-2.0
GitHub stars13.7k
Last commit1 weeks ago
Tags6 topics
GitReactVisual EditingSelf HostedHeadless CmsNextjs
Overview

Why consider TinaCMS?

TinaCMS is an open-source headless CMS with Git-backed content and a visual, in-context editing experience. Editors see and click elements on the live page to modify content.

Guided learning

Learn TinaCMS by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

3 min read 10 sections
In this guide10 sections

What is TinaCMS?

TinaCMS is an open-source, Git-backed headless CMS with a distinctive in-context visual editing experience, developed with TypeScript and React. It operates as a developer-friendly, self-hostable alternative to proprietary visual CMS platforms like Contentful and Sanity.

TinaCMS stores all content as Markdown, MDX, and JSON files in your Git repository. Its standout feature is visual editing: editors click directly on live site elements—headlines, body paragraphs, images—to modify them in real time, with changes immediately reflected on the page. All edits are committed as readable Git changes.

Who Is It For?

  • Next.js & React Developers: Building content-driven websites where non-technical clients need a visually intuitive way to update content.
  • Marketing Teams: Editing website copy, hero banners, and call-to-action sections directly on the live page without navigating a separate CMS dashboard.
  • JAMstack Teams: Maintaining Git-based content pipelines with version history, pull request workflows, and CI/CD site deployments.

Key Features

  • In-context visual editing: Click any page element to edit it inline with an adjacent editing panel.
  • Git-backed content storage: All content lives as Markdown/MDX/JSON files committed to your repository.
  • GraphQL content API: Strongly-typed queries for content with auto-generated TypeScript types.
  • Block-based page builder: Compose pages from reusable component blocks via a drag-and-drop interface.
  • Self-hostable TinaCMS backend or Tina Cloud managed service.

Setting Up TinaCMS in a Next.js Project

bash
1# Add TinaCMS to an existing Next.js project
2npx @tinacms/cli@latest init

Define your content schema in tina/config.ts:

typescript
1import { defineConfig } from "tinacms";
2
3export default defineConfig({
4 build: {
5 outputFolder: "admin",
6 publicFolder: "public",
7 },
8 schema: {
9 collections: [
10 {
11 name: "post",
12 label: "Blog Posts",
13 path: "content/posts",
14 format: "mdx",
15 fields: [
16 { type: "string", name: "title", label: "Title", isTitle: true, required: true },
17 { type: "datetime", name: "date", label: "Date" },
18 { type: "rich-text", name: "body", label: "Body", isBody: true },
19 ],
20 },
21 ],
22 },
23});

Start the development server with TinaCMS enabled:

bash
1npx tinacms dev -c "next dev"

Visit http://localhost:3000/admin to open the TinaCMS editing interface.

Practical Use Cases

1. Marketing Page In-Context Editing

A marketing manager visits the company homepage, clicks "Edit with Tina", and directly modifies the hero headline and CTA button text on the live page, seeing the update reflected immediately.

2. MDX Blog with Visual Block Editor

A technical writer builds a tutorial article using TinaCMS's block-based editor, adding code blocks, callout components, and embedded images without touching Markdown syntax.

3. Git-Versioned Content History

An editor accidentally deletes a paragraph; the content change is visible in the Git log, enabling a quick git revert to restore the previous version.

Troubleshooting and Limitations

  • Self-Hosting Tina Backend: For production self-hosting without Tina Cloud, deploy the TinaCMS self-hosted backend with a GitHub OAuth app for Git authentication.
  • MDX Component Registry: Custom MDX components used in rich-text fields must be registered in TinaCMS's component registry so the visual editor can render and edit them.

Official Resources

Related tools

More options with a similar category or technology profile.

TinaCMS FAQs

TinaCMS is listed as a Developer Tools tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

TinaCMS is listed under the Apache-2.0 license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

TinaCMS is listed as an alternative to Contentful. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.