Open-source headless CMS

Write once.
Publish everywhere.

A headless CMS with a beautiful editor, customizable hosted blog, and a clean REST API for your own frontend.

tinyheadless.com/dashboard
Published

Getting Started with TinyHeadless

TinyHeadless is a lightweight headless CMS that gives you a rich block editor for writing and a REST API for serving content to any frontend. Here's how to get started in under 5 minutes...

tutorialgetting-started
curl https://tinyheadless.com/api/v1/websites/my-blog/posts

Everything you need to publish.

Write with a powerful editor. Customize your blog. Deliver content via API.

Block editor

Headings, lists, code blocks, images, embeds, tables, callouts, accordions, and more — all in a distraction-free writing experience with a floating toolbar.

H1
P
{}
const posts = await api.list()
!
Callout block

REST API

Fetch posts as structured JSON. Authenticate with API keys. Works with Next.js, Astro, Remix, Nuxt — anything that speaks HTTP.

Customizable themes

5 layouts, custom colors, Google Fonts, logo upload, and a live preview. Your hosted blog looks exactly the way you want.

API keys

Generate and revoke secrets from the dashboard

Embed widget

Embed the editor or blog in any website via iframe

CDN-hosted

Published posts are served as static pages via CloudFront

Simple by design

Up and running in minutes.

Create your site

Sign up with Google, name your blog, and pick a handle. Done in 30 seconds.

Write your posts

Use the block editor with rich text, images, code blocks, embeds, and 15+ block types.

Serve it anywhere

Use the hosted blog with a custom theme, or fetch via the API for your own frontend.

Built for developers

A clean REST API you'll actually enjoy.

Fetch posts as structured JSON. Authenticate with API keys. Full CRUD for websites and posts. Upload images with presigned S3 URLs. Read the full reference in our docs.

fetch-posts.ts
const res = await fetch(
  "https://tinyheadless.com/api/v1" +
  "/websites/my-blog/posts",
  {
    headers: {
      Authorization: "Bearer th_sk_..."
    }
  }
);

const { posts } = await res.json();
// => [{ title, slug, content, ... }]
GET/websitesGET/postsPOST/postsPUT/posts/:idDELETE/posts/:id

Why TinyHeadless?

No bloat. No enterprise pricing. Just the features you need.

TinyHeadless
WordPress
Contentful
Free to start
Headless API
Hosted blog
Block editor
No plugins needed
Custom themes
Zero config

Frequently asked questions

Start publishing today.

Create your free account, write your first post, and go live in minutes. No credit card. No setup.