Write like it's Notion. Publish like it's Git.

A proper editor over the repo your content already lives in. Drafts autosave privately; publishing writes one clean commit.

Kobun is free during open beta.

An editor worth writing in

Press / for headings, lists, quotes, callouts, code blocks and emoji. Drag blocks by the handle. Paste Markdown, and it stays Markdown. What Kobun commits is the file you'd have written by hand — without counting dashes in the frontmatter.

Your repo doesn't need to see the rough draft

Kobun autosaves a second after you stop typing — to Kobun, not to your repo. Nothing reaches GitHub until you publish.

Then it writes one commit. Your Git history stays a list of published posts, rather than a record of you changing your mind at eleven at night.

Your content model is a file in your repo

Add .kobun.json or .kobun.yml to your repo root. Describe your collections and singletons, and Kobun builds the right editor for each. Every entry is validated against your schema before it's committed, so a missing slug is caught in the browser, not by your build.

{
	"version": 1,
	"collections": {
		"posts": {
			"label": "Posts",
			"format": "md",
			"schema": {
				"title": { "type": "text", "label": "Title", "required": true },
				"slug": { "type": "slug", "label": "Slug", "from": "title" },
				"publishedAt": { "type": "date", "label": "Published" },
				"tags": {
					"type": "multi_select",
					"label": "Tags",
					"options": [
						{ "label": "Go", "value": "go" },
						{ "label": "Notes", "value": "notes" }
					]
				},
				"body": { "type": "document", "label": "Body" }
			},
			"features": { "publish": true, "timestamps": { "createdAt": true, "updatedAt": true } }
		}
	}
}

Kobun fits around what you already have

Any generator

Astro, Hugo, Eleventy, Jekyll, Next, or something you wrote yourself. Kobun never touches your build.

Any host

Vercel, Netlify, Cloudflare, GitHub Pages. Kobun has no opinion about where your site is served.

No dependencies

No package in your project, no admin route, no extra dependency. A GitHub App and a config file.

Content you keep

Plain Markdown, JSON and YAML, in your repository. Close your Kobun account tomorrow and every post is still exactly where it was.

Let me run it, or run it yourself

Same Kobun either way. The only difference is who operates it.

Hosted

Sign in with GitHub and pick a repository. I keep it running.

  • Free during early access
  • 3 repositories free when pricing lands
  • Updates & infrastructure handled
  • Start writing in minutes

Self-hosted

Run Kobun on your own Cloudflare account. Your data, your bill, your uptime.

  • Cloudflare Workers and D1
  • Your own Github App and secrets
  • No limits beyond Cloudflare's
  • Source-available under FSL-1.1-MIT

FSL-1.1-MIT: free to use, modify and self-host. The one restriction is selling a competing hosted Kobun. Every version becomes MIT two years after it ships.

Where Kobun actually is

Kobun is at version 0.3, and I publish my own sites with it. Sign in with GitHub, connect a repo that has a config file, and you can be writing within a few minutes.

What isn't there yet:

  • Browsing version history inside the dashboard
  • Uploading images from the editor
  • Automatic schema detection from an existing repo
  • More field types
  • Published content has a full Git history — you'd read it on GitHub for now.

You'll find bugs. Tell me and I'll fix them.

Start writing

Connect a repository, add a config file, and see whether the editor holds up. It takes about five minutes and costs nothing.