9,054
stars
+0+8
871
forks
60
watchers
–
prs
–
issues
21
releases
–
discussions
README
Instatic
Own your site. Love building it.
A self-hosted CMS where the visual editor, content engine, and publisher all live in one Bun server — and the pages it ships are clean enough to read in view-source.
One-Click Deploy · Quick Start · Docs · Plugins · Roadmap
Watch the introductory video about Instatic on YouTube.
A modern website usually means assembling a stack: a headless CMS, a framework, a host, a form service, an analytics vendor, an image CDN — each with its own bill, dashboard, and 2 a.m. outage. Instatic is the opposite bet. One Bun server holds the whole thing — the canvas editor, the content engine, media, auth, forms, plugins, and the publisher — and you run it wherever you like, backed by SQLite or Postgres.
What comes out the other end is the part most builders quietly compromise on: plain semantic HTML and compact CSS, with none of the editor's machinery left behind in the page. No framework runtime, no builder attributes, no div soup. The site loads like a static file because, most of the time, it is one.
MIT. Self-hosted. Yours.
Deploy in one click
Railway is the fastest way to get Instatic live. Pick a template, hit the button, wait about two minutes. That's it. It generates the secret keys, attaches the storage volume, and sets up the health checks on its own. You never open a terminal.
One minute to live. Unedited.
| Provider | Database | Best for | Deploy |
|---|---|---|---|
| Railway · Recommended | SQLite | A single site — blog, portfolio, small business | Deploy → |
| Railway | Postgres | Multiple authors, managed backups, room to grow | Deploy → |
| Render | SQLite or Postgres | Teams that prefer Render services, disks, and managed Postgres | Guide → |
| Docker / VPS | SQLite or Postgres | Bring-your-own server, Caddy TLS, custom backup policy | Guide → |
SQLite is the right default for most sites. Reach for Postgres when you've got a team of authors or want managed database backups.
Updating is just a redeploy
When a new Instatic version is available, update by redeploying the latest image. Your database and uploads stay on the attached storage, so the app container can be replaced without rebuilding the site from scratch.
Prefer your own hardware? Instatic is a single Docker image:
sh
INSTATIC_IMAGE=ghcr.io/corebunch/instatic:latest docker compose -f compose.prod.yml -f compose.sqlite.yml up -d
Full guides for VPS, Postgres, HTTPS with Caddy, Render, and backups are in docs/deployment.
One tool, the whole life of a site
Most tools do one job and hand you off for the rest. You design in one place, build in another, keep content somewhere else, then bolt analytics on from a fourth. Instatic does all of it. Here's what's actually in the box.
🎨 Design
The editor is a real canvas, not a form with a preview pane stapled to it. You put several breakpoint frames side by side and edit them together. Change the desktop and the mobile frame reacts in the