Featured projects#Open source#Agents
Instatic: A Self-Hosted Visual CMS That Publishes Plain HTML and CSS
Instatic is an open-source, self-hosted CMS from the CoreBunch team that packs a canvas editor, content management, forms, plugins and a publisher into one Bun server. Published pages are plain HTML and CSS with no framework runtime, a good fit for indie developers and small teams who want off Webflow's monthly bill but find WordPress too heavy.
Project facts
GitHub Ecosystem- License
- MIT
- Language
- TypeScript
- Stars
- 8,796
- Data checked
- 2026-09-26
Snapshot figures reflect the check date and may change over time.
If you’re building a small business site or a personal blog, the usual choices are WordPress, with its pile of plugins and nervous upgrades, or Webflow and Framer, with a monthly bill and your site living on someone else’s servers. Instatic takes a third route: you host it yourself, edit visually, and the pages it publishes are HTML and CSS you can actually read in view-source. It comes from CoreBunch, the team behind Motion.page and Core Framework, and it’s MIT-licensed. We came across it through a write-up on the Chinese WeChat account 直隶按察使.
Core features
- One process runs the whole site: the canvas editor, content engine, media library, auth, forms, plugins and publisher all live in a single Bun server, backed by SQLite or Postgres (chosen by
DATABASE_URL). A full backup is the database file (or a Postgres dump) plus the uploads folder. - Light output: static pages are written to disk at publish time, so visitors are served a file. Public pages carry no React and no editor code; the few per-visitor parts load through a lazy runtime of about 1.1 kB.
- Breakpoints side by side: desktop and mobile frames sit next to each other and update together, and live mode lets you edit the real page in place.
- Core Framework built in: define one brand color and get a full shade scale, with type and spacing that scale fluidly with the viewport. Change a token and every page using it updates.
- An AI agent that edits the canvas: it turns your description into nodes you can keep dragging and editing, with 35 tools for building pages. Bring your own model (Claude, OpenAI, OpenRouter or local Ollama) and your own API key.
- Sandboxed plugins: plugin backends run in a QuickJS-WASM sandbox with no filesystem, environment variables or network access until the site owner grants it, one host at a time.
- Forms you own: submissions land in the site’s own data tables, so there’s no third-party form service to pay for.
Typical use cases
- Freelancers shipping client sites: brand colors and type live in design tokens, and after handoff clients can edit copy themselves in live mode.
- Indie developers leaving a hosted platform such as Squarespace: Super Import turns an existing static site’s HTML, CSS, images and fonts into editable pages, lists conflicts before writing anything, and undoes the whole import in one step.
- Small teams racing to ship a launch page: ask the agent for a hero section and feature cards built from your existing design system, then fine-tune by hand.
Quick start
Running locally needs Bun 1.4.1 or newer. The default setup uses SQLite, so there’s no database to stand up:
git clone https://github.com/corebunch/instatic.git
cd instatic
bun install
bun run dev
Open http://localhost:5173 and the first visit walks you through creating the site and the owner account. If you’d rather skip the terminal, the README links a Railway one-click template that goes live in about two minutes, and there’s an official Docker image for your own VPS with Caddy handling HTTPS.
Summary
Instatic suits indie developers, freelancers and small teams who want visual editing while keeping their site and data under their own control. It’s written in TypeScript and MIT-licensed, with no paid tiers. Three things to know before you commit. It’s still at 0.0.x (v0.0.20 as of 2026-09-13), and the maintainers say APIs and workflows may change before 1.0, so budget for migrations if you run it in production. We found no WordPress XML import in the repo’s docs; Super Import works on static site files, so moving off WordPress means exporting a static version first. And analytics currently covers admin status, the audit log and form data, with no visitor tracking yet.