Journal
Journal
Decisions taken on real projects, written up with the code and the numbers you can re-run.
- Craft9 min read
Geometry you compute instead of eyeballing
The mark's arc is derived from a chord and a sagitta, every raster asset is generated from one source, and the geometry duplicated into the build script is not removed but guarded.
- Engineering8 min read
135 KB for three typefaces: how the fonts on this site are cut
Two independent axes of waste in a variable font, coverage scoped to a typeface's role instead of its family, and why the rouble sign is not in the subset where you would look for it.
- Performance8 min read
Four implementations of one scene: WebGL that survives a weak phone
The render tier is chosen from measured capability, not from a User-Agent string. The order of the checks is a contract, degradation only ever goes downward, and the poster frame ships in every server response.
- Law and data9 min read
Russian data localisation on a static site: where the boundary actually goes
The statute is about databases, not about where HTML is served from. Hence: prerendered pages with no endpoint that accepts input, the receiver and the database in Russia, a fixed order of operations inside the receiver, and why a failed step must not answer {ok:true}.
- SEO7 min read
Making hreflang tell the truth
Two defects from the previous version of this site: one canonical in the root layout covering thirty pages, and hreflang promising an English version of a Russian article. Both are fixed by a type, not by a checklist.