Get Kiln running.
Two ways in, depending on how your site was built. Both end the same way: your client editing the live page, every change committed to a GitHub repo, yours or your client's. About ten minutes, free.
Building with AI
v0, Lovable, Bolt, or Claude built your site. Paste one prompt and it wires Kiln in, then runs the setup for you.
The AI path →A site I already have
Hand-built HTML, or any static site. Add two script tags, mark what is editable, run the wizard.
The manual path →Either way you finish at the same place: deploy the Kiln worker (or let Kiln run it), then visit yoursite.com/#kiln and edit.
Track A: building with AI
You built a site with AI. These recipes make it editable by humans, your client, your team, future you, without re-prompting anything.
The zero-config path
In Claude Code (or claude.ai with a connected repo), paste KILN_PROMPT.md and say:
Build me a site for [describe it] as plain static HTML, then make it Kiln-ready per the prompt above, and run: npx github:erikkurtu/kiln
Claude builds the site, annotates it, and runs the setup wizard. You only click the three confirmation buttons it opens for you. End to end in one conversation.
Refactor, then sync
- Build your site, then paste KILN_PROMPT.md with: "Refactor this into plain static HTML (no framework) and make it Kiln-ready per these conventions."
- Click Connect GitHub (native sync). Your project becomes a repo.
- Run
npx github:erikkurtu/kilnin a clone of that repo, or request a Kiln Cloud invite and we attach the engine for you.
Ask for plain HTML first
- v0 defaults to Next.js. Add to your prompt: "Output as plain static HTML and CSS, no React, no framework." Then paste KILN_PROMPT.md and ask it to apply the conventions.
- Push the result to GitHub.
- Host on Cloudflare Pages or any host that auto-deploys from GitHub. One caveat: Vercel's free tier bans commercial use, so for business sites prefer Cloudflare Pages or GitHub Pages. Then
npx github:erikkurtu/kiln.
What "Kiln-ready" means is just conventions in the HTML: data-cms on editable text and images, data-cms-repeat on card lists, data-cms-menu on the nav, and two script tags. The full spec is KILN_PROMPT.md, written to paste into any AI tool verbatim.
Track B: a site you already have
npx github:erikkurtu/kiln
Already set up? Health-check everything with npx github:erikkurtu/kiln doctor. The steps below are the same thing, by hand.
1Host your code on GitHub, your site anywhere
- Push your static site (plain HTML, CSS, JS) to a GitHub repository. This is where your code and content live, on every plan.
- Connect that repo to a host that auto-deploys on each commit. Cloudflare Pages is recommended, free and fine for commercial use: in the Cloudflare dashboard, Workers and Pages, Create, Pages, Connect to Git, pick your repo, leave build command empty and output directory
/, then Deploy. - Prefer something else? Vercel, Netlify, or GitHub Pages work the same way. Any host that redeploys from a Git push is a valid Kiln host.
- Every commit now auto-deploys. That auto-deploy is Kiln's publish button.
2Deploy the sign-in worker (or use Kiln Cloud)
Self-host, free. You run one small Cloudflare Worker plus a one-click GitHub App. The wizard does it. The price of free is these ten minutes.
Kiln Cloud, paid (invite beta). We run the worker, so you skip this step. Your content still lives in your repo. Request a beta invite.
git clone https://github.com/erikkurtu/kiln && cd kiln
npm install
cd worker
npx wrangler kv namespace create KILN # paste the printed id into wrangler.toml
npx wrangler deploy
Note the worker URL it prints, like https://kiln-auth.yourname.workers.dev.
3Register your GitHub App, one click
- Open
https://YOUR-WORKER.workers.dev/setupand press the button. The app registers under your account and the worker captures its credentials. You never copy a secret. - Click Install, choose Only select repositories, and pick your site's repo. Kiln can only ever touch repos you select.
- Add your site's URL to
ALLOWED_ORIGINSinworker/wrangler.toml, then redeploy the worker once more.
4Make your HTML editable
Create /assets/kiln-config.js, copy both dist/kiln.js and dist/kiln-editor.js into your /assets/, and add two script tags at the end of <body>:
<script src="/assets/kiln-config.js"></script>
<script src="/assets/kiln.js" defer></script>
Then annotate what is editable:
<h1 data-cms="headline">Welcome</h1>
<img data-cms="hero" data-cms-attr="src" src="/img/hero.jpg">
<div class="cards" data-cms-repeat="services"> …repeatable blocks… </div>
<div class="nav-links" data-cms-menu="main"> …site menu… </div>
5Sign in and edit
Push everything. After the deploy, visit yoursite.com/#kiln, the secret knock. Choose Continue with GitHub, click any outlined text, type, and hit Publish on the floating Kiln button. About a minute later it is live.
Optional: editors and members with Google sign-in
Let your client, team, or community in, with no GitHub accounts: create a Google OAuth client, set two secrets on the worker, then add people by email in your Kiln menu under People and access (Editor or Member, access lasting 1 to 360 days). Full commands are in the README.
Optional: members-only area and gated documents
Copy demo/functions/ and demo/members-login.html into your site, set the member secrets on your Pages project, and everything under /members/, pages and PDFs included, becomes invite-only.
That is the whole stack.
A GitHub repo, a free static host, the Kiln worker, and a site that edits itself. No database to patch, no monthly bill, no platform that owns your content. Stuck? Open an issue.
Kiln