TinaCMS
Content as Markdown in a Git repo, a visual editor in the browser. Headless-CMS pattern for Next.js, Astro or Hugo sites — without a separate database, without CMS lock-in.
Schema definition in tina/config.ts
// tina/config.ts
import { defineConfig } from 'tinacms'
export default defineConfig({
branch: 'main',
clientId: process.env.TINA_CLIENT_ID!,
token: process.env.TINA_TOKEN!,
build: { outputFolder: 'admin', publicFolder: 'public' },
media: {
tina: { mediaRoot: 'uploads', publicFolder: 'public' },
},
schema: {
collections: [
{
name: 'post',
label: 'Blog Posts',
path: 'content/posts',
format: 'mdx',
fields: [
{ type: 'string', name: 'title', label: 'Title', required: true },
{ type: 'datetime', name: 'date', label: 'Date' },
{ type: 'reference', name: 'author', label: 'Author',
collections: ['author'] },
{ type: 'rich-text', name: 'body', label: 'Body', isBody: true },
],
},
{
name: 'author',
label: 'Authors',
path: 'content/authors',
fields: [
{ type: 'string', name: 'name', label: 'Name', required: true },
{ type: 'image', name: 'photo', label: 'Photo' },
],
},
],
},
})Project profile
TinaCMS
Headless Git-based CMS for Next.js, Astro, Hugo
As of: June 2, 2026
GitHub stars
13k
Forks
711
Open issues
415
License
Apache-2.0
Latest version
v3.8.4
Language
TypeScript
What is TinaCMS?
TinaCMS is a headless CMS that stores content as Markdown and MDX files directly in the Git repository. Instead of a database in the classic sense, edits become commits on a configurable branch — content and code live side by side. On top of this data model sits a visual editor running in the browser.
Tina is primarily designed for static site generators — Next.js, Astro, Hugo. This website (ki-agentur.kaatai.de) does not use Tina itself yet but is built in the same model: Next.js with i18n JSON files as 'content'. For purely editorial sites with non-technical editors Tina is the right tool.
Where Tina fits
Tina fits where content is mainly text and images, the frontend is built technically (Next.js, Astro) and editors do not live in the editor all day. Classic uses: marketing sites with a blog, documentation sites with editorial maintenance, portfolio sites with occasional updates.
Four core capabilities
What sets Tina apart from other headless CMSs — the key properties in compact form.
Git-first architecture
Schema definition in TypeScript
Visual editor in the browser
Self-hosted or Tina Cloud
Pricing
Apache-2.0. Tina Cloud optional.
License
Apache-2.0 for the entire open-source variant. Tina Cloud is a commercial hosting service with editor hosting, media storage, auth — from $29/month for teams. Self-hosting without Tina Cloud is possible but requires your own media backend.
Hosting
Self-hosting: the build artifact lives in the same repo as the frontend. No separate container needed, no separate server — if the Next.js frontend runs anywhere, Tina runs with it. Tina Cloud Pro from $29/month (team plan).
Setup
Adding to an existing Next.js site: 30 minutes initial setup, 2–4 hours for schema definition of a typical marketing site. Full migration from WordPress: 2–5 consulting days depending on content depth.
Tina is not 'WordPress for headless' — it is a different approach that only makes sense in a static-frontend setup. Anyone running a classic WordPress site with plugins, custom post types, a member area and many editors should stay on WordPress.
Related topics
Tina fits Next.js sites
Anyone using Next.js with Tina additionally needs hosting for the frontend (Vercel, Netlify, own setup via Caddy) and possibly a media storage:
Ready for the next step?
Free intro call, no strings attached. In 30 minutes you'll know whether and how AI can help your business.