Read this page bottom-up, like a dependency tree: each layer sits on the one below it. The base is how pages reach you; the top is the list of things we chose not to ship. The stack is small on purpose. Fewer moving parts means fewer places for an explanation to break between the author’s draft and your screen.
Layer 01
Rendering
What every visitor gets, before anything else loads.
Server-rendered HTML
Each page arrives from the server as finished HTML and CSS. Nothing needs JavaScript to be readable, and pages stay quick on a poor connection.
Open by default
Every published post is public. No login wall, no sign-up prompt, nothing to dismiss before the first paragraph.
Narrow-viewport layout
On a phone the layout drops to a single readable column. A wide code block scrolls inside its own box instead of pushing the page sideways.
Site-wide feed
Point an RSS reader at
/feed.xmland new posts from every author arrive in one place.
Layer 02
Post format
Markup that survives contact with real code.
Code panels
Monospaced type on a dark background, indentation preserved byte for byte. Long lines scroll horizontally rather than wrap. When JavaScript is available, each block also gets a copy button.
Inline code and keys
A file name, a flag or a shortcut inside a sentence is styled as code, so
git rebase -inever gets mistaken for prose.Numbered steps, generated contents
Top-level sections are numbered in order, like steps in a procedure. A long post also gets a table of contents that links to each one.
Images stored on the site
Screenshots and diagrams are hosted here alongside the post. A cover image is optional; without one, the post opens on a clean text-first header.
Cross-author topics
Tag a post and it is listed on a topic page together with posts on the same subject by other authors.
Diacritics handled
Vietnamese and other accented languages render correctly in headings, body text, code comments and replies.
Layer 03
Author blog
One handle, one front page, structure you choose.
A blog at
/your-handle/The front page of your blog: portrait, short bio, an optional link to your own website and the complete list of what you have published.
Start-here block
An optional introduction or reading order pinned to the top, so a newcomer knows which post to open first.
Categories
Define your own groupings, such as a language, a tool or a multi-part series. Each category is given a page of its own.
Per-author feed
/your-handle/feed.xmllets readers follow only you, in any RSS reader, with no account on any service.
Layer 04
Replies
Input: a name and some text. Output: a reviewed comment.
Two-field form
A reply takes a name and the comment itself. There is no account to make and no email field to fill in.
Moderation queue
Guest comments wait for a moderator before they go live. Anything still unapproved after 30 days is purged automatically.
Layer 05
Not installed
Left out of the build on purpose, and staying out.
Ad slots
There are none. Nothing on the page competes with the explanation you came to read.
Analytics and tracking pixels
Readers are not measured, profiled or followed from page to page.
Third-party scripts
Any script a page runs is the site’s own, and it is small.
Reader cookies
Reading and commenting set zero cookies. The single exception is the session cookie an administrator receives on sign-in.
Getting write access
Author accounts are issued by invitation; there is no self-serve registration. Whatever you publish here remains yours.