A markdown editor that respects your hands
Toolbar, split-pane preview, ⌘B / ⌘I / ⌘K shortcuts, image picker tied to your R2 library, autosave to localStorage with a recovery banner if your laptop dies mid-paragraph.
Khao Pad is the open-source platform that drives a non-ecommerce website end-to-end — content, SEO, analytics, navigation, and engagement — on Cloudflare Workers, D1, R2, and KV. One SvelteKit app: fast public site at `/`, full admin at `/cms`. Fork it, paste in your Cloudflare IDs, deploy. Lighter than Strapi, cheaper than Supabase, stays on Cloudflare.
Khao Pad doesn't stop at write-and-publish. It's growing into the five pillars a real website needs — discoverability, insight, information architecture, performance, and engagement. v1.5 ships the content layer; v1.6 onward delivers the rest.
Toolbar, split-pane preview, ⌘B / ⌘I / ⌘K shortcuts, image picker tied to your R2 library, autosave to localStorage with a recovery banner if your laptop dies mid-paragraph.
Articles, categories, and tags each have per-locale title and body. The slug stays English-only and shared, so URLs don't fork. Paraglide compiles UI strings to type-safe functions — no runtime dictionary lookups.
Articles, categories, and tags live in Cloudflare D1 (SQLite at the edge). Media uploads go to R2. Cached read-throughs sit in KV. No external database to manage, no per-region replicas to configure — it's all on Cloudflare's network and reads return in single-digit milliseconds anywhere on the planet.
Email + password, D1-backed sessions, four roles out of the box (super_admin → author). First sign-up auto-promotes to super_admin and locks the door behind it.
Push main → staging deploy. Tag v1.2.3 → production deploy. Each environment has its own D1/R2/KV bindings. The workflow runs migrations before the worker goes live.
Click "Use this template", or fork the example repo for a working demo with sample content. Stay in sync with upstream via a weekly sync PR — review and merge on your schedule.
The CMS is the start. v1.6 → v2.0 layers in everything else a real site needs. Each milestone has a public tracking issue.
Per-page meta, sitemap, robots, JSON-LD, RSS/Atom, slug redirects. Closes the SEO surface.
Static pages, navigation manager, media folders, reusable content blocks.
Privacy-friendly D1 page-views, top articles, search-term insights, per-article sparkline.
Cloudflare Images responsive srcsets, cache control, custom 404/500, cookie consent, health check.
Forms, newsletter, comments, webhooks, public read-only API.
The demo is a real fork of the template, deployed to Cloudflare Workers with the same pipeline you'll use. Browse the public site, sign in to the CMS, edit an article, hit save — refresh the public route and your edit is live.
Khao Pad doesn't ship a runtime, an ORM, or an auth library. It composes the ones you already trust.
Click the demo, sign in, edit a fried-rice recipe. If you like what you feel, fork the template and paste in your Cloudflare IDs. We documented every step.