A CMS that publishes flat HTML
Self-hosted. Perl. SQLite. Nine production dependencies. No JavaScript on public output. No telemetry. No phone-home. Runs air-gapped.
Install nowBuilt for operators who want control
No JavaScript in production
Chinaski's output is flat HTML and CSS. No React, no client-side router, no hydration step. What ships is what renders — fast, indexable, and dependency-free.
Self-hosted by design
Your content lives on a server you control. No vendor lock-in, no SaaS subscription, no API keys to third-party platforms just to publish a page.
Fifteen content block types
Heroes, columns, accordions, stats, galleries, forms, quotes, tables, video embeds, and more — structured content that builds cleanly into any theme.
Multilingual from day one
Language is a first-class field. Run English, Spanish, and Portuguese from one install with an LLM translation pipeline and a human review queue built into the admin.
Agent-native API
Chinaski ships an MCP server. An AI assistant can create pages, update blocks, run translations, and trigger deploys through a typed tool interface — no web UI required.
Themes you can program
Templates use Template Toolkit — a real templating language, not a stripped-down DSL. Every site structure, nav, and layout is code you can read, version-control, and modify.
How a build works
1. Write content in the admin
Create pages and posts using the block editor. Choose from fifteen block types — hero, columns, accordion, stat, gallery, form, quote, and more. Content is stored in SQLite.
2. Trigger a build
One button click (or one API call) kicks off the builder. It reads every published page and post, renders them through your Template Toolkit theme, and writes static HTML files to the output directory.
3. Sync to any host
The output is a folder of flat HTML, CSS, and assets. Rsync it to a VPS, push it to an S3 bucket, or serve it from nginx on the same box. No runtime required on the production server.
What runs at request time
Nothing. The live site serves static files. There is no application layer, no database query, no process waiting to handle requests. A file server is all you need.
This site is built with Chinaski
The chinaski.net marketing site was built using Chinaski itself. Here's what that process looked like: the good, the broken nav URLs, and what it demonstrates about the tool.
Read the articleOne command to install
curl -fsSL https://www.chinaski.net/install.sh | sudo bash -s -- 1
Full install guide →