The Disassembled Web · 006 · Still Water
Part of The Disassembled Web
------------------------------------------------------------------------
V3SS3L · 006 · STILL WATER
------------------------------------------------------------------------
SYSTEMS CHECK — V3SS3L BUILD REVIEW
HULL INTEGRITY
[✓] Structure Semantic HTML. Landmarks announced.
<main>, <article>, visually-hidden <h1>.
[✓] Typography Terminus at 16px. Bitmap-clean.
Sharp at 18 and 20.
[✓] Access Keyboard-navigable. Screen-readable.
One keystroke: the cost of meaning.
[✓] Adaptation System theme honored. Manual override
via :has(). No JS. No runtime cost.
[✓] Offline Service Worker. Cache-First. Seven
files. 47 kilobytes. The wire is optional.
KNOWN DEFECTS
[✗] Memory Settings lost on reload. CSS has no
state that survives the DOM rebuild.
The reader customizes; the vessel forgets.
[✗] Content One zine. Hardcoded in the HTML. Adding
a second means duplicating the entire
page — structure, styles, scripts, all.
[✗] Navigation z3r0 references issue 001 from issue
003. The reader cannot follow. Cross-
references without links are dead ends.
[✗] Scale Ten hidden inputs for three settings.
Each new control adds to the switchboard.
The pattern scales; the markup does not.
[✗] Layout The cache manifest line exceeds 72
characters. The <pre> block shrugs. Our
fixed-width assumption is already broken.
ASSESSMENT
The vessel holds one document in still water. It is not
ready for a library. It is not ready for a storm.
But the keel is true, and the hull does not leak.
We build forward.
-- z3r0
------------------------------------------------------------------------
The Ghost loaded. The offline test passed. We sat in the silence and felt what it means to own a piece of the web — truly own it, disconnected from the wire, cached and present on your machine.
Before we sail further, we stop.
What We Built
Five posts. Five layers. Each one a single-purpose system in service of the reader.
The Void gave us a directory, a file, and a surgical CSS reset — four rules targeting only the elements we actually use. No framework. No scaffold command. Just a blank page with predictable behavior.
The Glyph and the Grid gave us Terminus — a bitmap font rendered at pixel-perfect sizes, with anti-aliasing turned off. The letters are jagged and honest. The aesthetic is intentional, not inherited.
The Open Door gave us semantic structure and accessibility. An <article> wrapping opaque preformatted content. A visually-hidden heading bridging the visual and the programmatic. Landmarks, ARIA labels, keyboard focus. The principle: decompose when you can, contain when you must.
The Open Hand gave us adaptation — dark mode via CSS custom properties, a settings drawer built entirely with hidden radio inputs, sibling selectors, and :has(). Three settings (theme, text size, line height), zero JavaScript, zero runtime cost. We heard the Siren’s Call and proved the platform had the answer.
The Ghost gave us permanence. A Service Worker running in a separate thread, caching seven files, intercepting fetch requests. The page loads offline. The vessel doesn’t need the network to exist.
Each layer built on the one before it. The reset made the font predictable. The font made the layout legible. The semantics made the layout accessible. The settings made the experience personal. The Service Worker made it permanent. This is the architecture of Part 1: a stack of constraints, each one narrowing the problem space for the next.
What We Haven’t Built
z3r0’s systems check is honest. The checkmarks are real — but so are the failures.
No persistence. Open the settings drawer. Choose Dark mode. Set the text to Extra Large. Close the tab. Reopen. Everything resets to defaults. CSS has no memory. The :checked state lives in the DOM, and the DOM is rebuilt from scratch on every page load. We gave the reader control but not continuity.
No content management. The zine is embedded directly in the HTML. If we wanted to add a second issue, we’d have to duplicate the entire page: the <head>, the stylesheet links, the ten hidden inputs, the settings drawer, the Service Worker registration. The content and the container are fused together.
No navigation. z3r0 referenced issue 001 from inside issue 003. The reader has no way to follow that reference. There’s no index, no table of contents, no link between pages. Cross-references exist in the text but not in the architecture.
No scalable state. Ten hidden radio inputs sit at the top of <body> to manage three settings. The pattern works — the sibling combinator reaches forward, :has() reaches up — but every new control means another input element in the markup. The CSS logic scales; the HTML surface area does not.
No layout resilience. z3r0’s cache manifest listing — a single comma-separated line of file paths — exceeds the 72-character convention. The <pre> block either clips it, wraps it awkwardly, or throws a horizontal scrollbar. Our fixed-width assumption breaks the moment content doesn’t obey our conventions.
These aren’t oversights. They’re the questions Part 1 exists to raise.
The Pressure
Every limitation listed above is a form of pressure. Pressure is not failure — it’s signal. The vessel was designed to hold one document in still water, and it does that well. But the moment we imagine a second zine, a returning reader, a longer entry, a wider line — the architecture pushes back.
This is the engine of the series. We don’t introduce solutions before the problems are felt. We don’t import a library to manage state until we’ve lost our state and been frustrated by it. We don’t build a JSON data model until we’ve duplicated a page and hated it.
The constraints of Part 1 are the fuel for Part 2.
What Comes Next
Part 2 is The Library. The focus shifts from HTML and CSS to JavaScript, JSON, and the flow of information. We introduce a second zine series. We build a data model. We write the code that reads zines.json and renders a dynamic shelf of content — no more hardcoded pages.
And somewhere in that work, we solve the persistence problem. The settings the reader chose will survive a reload. The reading position will be remembered. The vessel will gain a memory.
But that is the next chapter. For now, the water is still. The hull is sound.