How it works

What happens when you press Publish.

Kiln is two small pieces of software that work with three things you already have, or can have for free: your site’s pages, a GitHub account that keeps them, and a host that puts them on the web. Each step below says what you see, and what happens underneath.

  1. What you see

    You open your site and sign in.

    You go to your own site’s address with /kiln on the end and sign in: with GitHub if the site is yours, with Google if someone invited you. You are back on your site, with one round button in the corner.

    Underneath

    Every visitor’s browser loads one small Kiln file, about 3 KB, that does nothing unless someone is signing in. Only after you sign in does it load the editor itself. Sign-in goes through Kiln’s sign-in service, a small program on Cloudflare.

  2. What you see

    You click the words and type.

    Parts that can be changed show a dashed outline. You click one, type, swap a picture, or move an item in a list. Nothing changes for visitors yet.

    Underneath

    Only the parts the site’s builder marked can be changed. On a plain HTML site that is an attribute on the element, such as data-cms="hero_headline". On an Astro site it is one line per field that names the content file the value comes from.

  3. What you see

    You press Publish.

    A sheet lists each change, before and after. You press Publish again and the line beside the button says it was saved.

    Underneath

    The page’s file is saved to GitHub as one commit with your name on it. An invited editor’s changes go through the sign-in service, which checks that they may change those parts and that no script was slipped in. The site’s owner saves straight to GitHub with their own sign-in.

  4. What you see

    About a minute later, the site shows it.

    The line beside the Kiln button says Live ✓ when visitors can see your change, or Build failed if the host could not build the site with it. Then the old page stays up.

    Underneath

    Your host notices the new commit and rebuilds the site. Kiln reads the live page until it shows your change, and reads the host’s build report on GitHub to catch a build that failed.

  5. What you see

    You can go back.

    For ten seconds after publishing, Undo takes it back. Later, History lists every publish, and you can bring any page back to how it was.

    Underneath

    Going back is one more commit. Nothing is deleted from the record: the version you left and the one you went back to are both still there.

The words, explained

You do not need to know any of these to edit a site. Whoever sets Kiln up needs the first four.

GitHub
A free service that keeps the files a website is made of, and every earlier version of them. Most web developers already use it. On every Kiln plan your site’s files live in a GitHub account that you, or your client, own.
Repository
One project’s folder on GitHub: here, your site’s files. Often shortened to “repo”.
Commit
One saved version of the files, with a note saying what changed, who changed it and when. A Kiln publish is a commit; on a site a generator builds, one commit for each content file it changed.
Host
The service that puts the files on the web at your address. Kiln works with any host that rebuilds the site when the repository changes: Cloudflare Pages, Netlify, Vercel or GitHub Pages. Cloudflare Pages has a free plan that allows business sites; Vercel’s free plan does not.
The sign-in service
Kiln’s small program on Cloudflare, also called the worker. It signs people in and saves their edits to GitHub. On Kiln Cloud and Fully managed, Kiln runs it. If you run Kiln yourself, it runs on your own free Cloudflare account.
The GitHub App
How GitHub lets the sign-in service save to one repository and no other. You install it on your site’s repository and choose which repositories it may touch.
Plain HTML site
A site whose pages are stored as finished web pages, one file each. Most hand-made sites, and many sites written by an AI, are like this.
Generator (Astro, Eleventy, Hugo, Jekyll)
A tool that builds the finished pages from content files and templates each time the site is published. On these sites Kiln has to edit the content files, not the pages: Kiln calls that source mode.

Who runs which piece

The editor is the same on all three plans. They differ in who sets up and runs the pieces around it.

PieceRun it yourselfKiln CloudFully managed
The site’s files on GitHubYouYouYou
The hostYouYouKiln
The sign-in serviceYou, with the setup toolKilnKiln
The GitHub AppYours, the setup tool makes itKiln’s, on your repositoryKiln’s, on your repository
Marking what can be editedYou, or your AIYou, or your AIKiln
Google sign-in for editorsYour own Google clientIncludedIncluded
Cost$0$4.99 a month per site$14.99 a month per site

On all three, leaving Kiln means deleting two script tags from your pages. The site is already plain files in your repository. Pricing has the trial and billing.

What Kiln edits on which kind of site

A plain HTML site in a GitHub repository
Everything the editor does: words, formatting, pictures, links, lists, galleries, events, new pages and posts, the site menu, History. Kiln changes the page’s own file and leaves the rest of it byte for byte as it was.
An Astro site
Kiln edits the content files the pages are built from (Markdown and MDX, with front matter in YAML or TOML), and the host rebuilds the site. Today that covers an entry’s text with the same toolbar as a plain HTML site (bold, italic, links, lists, headings, quotes), written back as Markdown in the file’s own style with only the edited part changed, titles, dates, times, numbers and yes/no values, pictures (replaced and described, the new one put where the site keeps its pictures) and link addresses. Tables, code and MDX components stay exactly as written. Entries are added from the site’s own schema, copied, removed, made drafts, scheduled and put in order, and History and Page settings work on the entry’s file. The site’s developer adds one line per field. Source mode in the docs.
A site on Squarespace, Wix or WordPress.com
Kiln does not edit it where it is. npx github:kilncms/kiln#release rescue <address> copies the live site, up to 50 pages unless you ask for more, into plain HTML files with the pictures and styles, removes the builder’s scripts and marks the text and pictures as editable. From then on it is a plain HTML site. How the copy works.
A site made with Lovable, v0 or Bolt
Usually an app whose words are drawn by JavaScript, so there is nothing for Kiln to edit until it is frozen once into plain HTML with the same command and --render. The look, words, pictures, links and phone menu come across; forms, sign-in, search and anything else that needed the app running stop, and the report lists each. What the freeze keeps and drops.
Eleventy, Hugo and Jekyll
Not yet: Kiln can’t edit their content files. The setup tool and kiln doctor recognise them and say so, and Kiln edits only HTML files committed in the repository. A page the site builds is refused with a sentence, because the next build would erase the edit.
Not at all
A React, Next.js, Vue or Svelte app edited in place. A site whose pages are behind a sign-in. A site whose words come from a database when the page loads.

What Kiln does not do

What keeps it safe

Which way is yours?

Comfortable in a terminal and want it free: run it yourself. Can run one command and would rather not run a server: Kiln Cloud. Want to touch none of it: Fully managed. Or first try the demo, no account needed.