Skip to content

Writing

Notes from the work

What broke, what it cost to find, and what we changed so it could not happen the same way twice. Written while it is fresh, which is the only time the detail is still true.

31 documents · press / to search

  1. 4 min read

    A dead animation looks exactly like one that has not started

    CSS scroll-driven animations fail silently in four different ways, and every one of them renders a page that looks fine. Here is how we made them fail loudly instead.

    CSSTestingFrontend

  2. 12 min read

    teiqr: the complete guide to generating, styling, validating and scanning QR codes

    A working guide to teiqr — optimal encoding, ten module shapes with measured scan rates, logo damage analysis that is per-block rather than per-cent, PDF at a real millimetre size, and a decoder that proves the code you styled can still be read.

    teiqrOpen sourceTypeScriptTutorial

  3. 4 min read

    Every number on this page can be checked

    We removed three claims from this site because we could not stand behind them, and wrote tests for the rest. Here is what that discipline costs and why it is worth paying.

    PracticeWriting

  4. 4 min read

    Four CSS traps, and the one property family behind all of them

    A mask that cancelled a 3D transform, a perspective on the wrong element, a header that ate its own menu, and a timeline measured against the wrong box. All four looked right in the state anyone would check first.

    CSSFrontendDebugging

  5. 2 min read

    teiqr — QR codes you can prove are scannable

    A new package, published to npm. Spec-conformant encoding, styled rendering, and a verification step that tells you whether the code you styled still reads.

    Open sourceTypeScript

  6. 9 min read

    Architecting large-scale Next.js applications: Server Components, caching and state

    How to structure a Next.js App Router codebase that stays fast as it grows — where the client boundary belongs, what Server Components actually cost, which caching layer answers which question, and the state patterns that survive a hundred routes.

    Next.jsReactArchitectureFrontend

Start here

Tell us what you are building

Or what is breaking, or what has to go faster. You will get a straight answer from an engineer who would do the work.