Write in Markdown. Manage it in your browser. Publish on your terms.
A blog engine in a single Go binary, with its writing studio built in:
the comfort of a CMS, and files that stay plain Markdown you own.
Website · Documentation · Download · English · 简体中文
|
A visual editor that reads and writes Markdown, with the source one click away. Drag in pictures, set categories and tags, keep drafts, schedule posts. |
Every post is a Markdown file on disk. Saving rewrites only what changed and keeps your key order and comments, so editing a title is a one-line |
|
Export static pages for any host, connect GitHub and let Pages deploy every push, or run the site on your own server, in Docker or not. |
The studio, a default theme in light and dark, and the SQLite driver are compiled in. There is no Node, database server or runtime to install. |
|
Comments, analytics, search and math come as official plugins, beside documentation and personal themes. The app center installs them and keeps them up to date; a plugin adds code to pages, or runs WebAssembly in a sandbox while the site builds. |
|
Download the archive for your system from the latest release, unpack it, and put kite on your PATH. Then start a site in an empty folder:
mkdir blog && cd blog
kite runThe browser opens on a page that asks what the site is called and who writes it; answer it and you are in the studio. Next time, run kite run from the same folder. kite init asks the same questions in a terminal instead.
On macOS
A downloaded program is held back the first time it runs; xattr -d com.apple.quarantine kite lets it through. Every archive can be checked against the checksums.txt in its release.
With Docker, on a server
docker run -d --name kite --restart unless-stopped \
-p 127.0.0.1:1717:1717 -v kite-data:/data ghcr.io/kite-plus/kite:latestOpen the studio and follow the setup steps to name the site and create its account; the site itself is at localhost:1717. Content and the account live in the kite-data volume. Put it behind HTTPS before it is reachable from other machines; the deployment guide shows how.
From source
Requires Git, Make, Go 1.26.4+, Node.js 22.19.0 and pnpm 10.11.1; the build uses the Go toolchain the project pins.
git clone https://github.com/kite-plus/kite.git
cd kite
make web
make installAdd Go's binary directory (usually ~/go/bin) to your PATH. To build the container image yourself, run docker build -t kite . in the clone.
Coming from another generator? A Hugo site's content opens where it is, and kite import hexo ../old-blog blog brings a Hexo site into a new one, old addresses included. See Moving from Hugo and Moving from Hexo.
Your Markdown files are the source of truth. The studio edits them in place, and the index Kite keeps under .kite/ is only a cache: delete it, rebuild, and the same data comes back. The same files become static pages with kite build, a live site with kite run, or a Git commit with kite publish.
- Export static pages. Deploy in the studio exports the site as a zip to upload anywhere;
kite buildwrites the same files topublic/. - Deploy through Git. Connect GitHub from the studio with a token for one empty repository, and Kite pushes the site to it, writes the workflow and turns Pages on. Every publish after that commits and pushes, and the site deploys itself.
- Run it on a server. Serve the site and the studio from your own machine; the deployment guide covers domains, HTTPS and Docker.
| Name | What it does | |
|---|---|---|
| Theme | Vane | Documentation sites: a home page, docs in an ordered tree, news and search |
| Theme | Almanac | A personal hub: a magazine masthead over a feed of cards, with shelves for projects, books and more |
| Plugin | Comments | A comment thread under every post, with Giscus, Waline or Twikoo |
| Plugin | Search | Search in the reader's browser, with nothing to run |
| Plugin | Math | TeX math and Mermaid diagrams in plain Markdown |
| Plugin | Analytics | Visits counted with Umami, Plausible, Google Analytics or Baidu Tongji |
Install any of them from the studio's app center, or by name in a terminal: kite theme add vane, kite plugin add search. More are listed in awesome, and a theme of your own is Go templates written against a frozen contract, kite/v1.
- Done: static builds, live serving, the browser studio and Git publishing (M0–M4); WebAssembly plugins (M8); the frozen theme contract
kite/v1(M5); the app center with a signed index; pinned releases throughkite.lockandkitew(part of M6); connecting GitHub; and, since 0.1.12, a notice when a newer Kite is out. - Next: builds that skip what has not changed (the rest of M6), and a dynamic mode backed by SQLite (M7).
The reference guide lists every milestone, and the roadmap tracks progress item by item. Kite is young: things may still change between 0.1 releases, and the release notes say how to move across each one.
- Report a bug or share an idea: open an issue with your version, system and steps to reproduce.
- Send a change: read the contributing notes and run
make checkbefore you open a pull request. If a change conflicts with the design documents, update the documents first.
Kite is released under the Apache License 2.0.





