‹ Tech Radar

Techniques

Vol. 01 · August 2026 · 9 entries · 1 new

AdoptTrialAssessHoldZero JavaScript by default — adopt1Zero JavaScript by defaultNative scroll timelines — adopt2Native scroll timelinesServer-side PDF rendering — adopt3Server-side PDF renderingTable-driven RBAC — adopt4Table-driven RBACFull handover, no lock-in — adopt5Full handover, no lock-inEnd-to-end types — trial6End-to-end typesDesign tokens as the only source — trial7Design tokens as the only sourceClient-side canvas PDF — hold8Client-side canvas PDFCSS-in-JS — hold9CSS-in-JS
  • Adopt
  • Trial
  • Assess
  • Hold
  • New

AdoptOur default. We reach for this without a discussion.

  1. 1

    Zero JavaScript by default

    A page ships no script until something on it genuinely needs one. Most of the interaction people ask for is an anchor, a details element, or a target selector.

    History
    1. Vol. 01 · August 2026Adoptadded
  2. 2

    Native scroll timelines

    Scroll-linked motion belongs to the compositor, not to a scroll listener. Everything animated on this site hangs off a CSS scroll timeline and costs nothing on the main thread.

    History
    1. Vol. 01 · August 2026Adoptadded
  3. 3

    Server-side PDF rendering

    A long-lived headless Chromium worker produces the same document for every user. Client-side generation makes the output a property of the visitor’s browser.

    History
    1. Vol. 01 · August 2026Adoptadded
  4. 4

    Table-driven RBAC

    Roles, permissions and their join are rows an administrator can edit. Once a permission is a hardcoded check against a role name, every new rule is a deployment.

    History
    1. Vol. 01 · August 2026Adoptadded
  5. 5

    Full handover, no lock-in

    Source, pipeline, secrets and infrastructure end up in the client’s accounts. If we are the only ones who can deploy it, it was never delivered.

    History
    1. Vol. 01 · August 2026Adoptadded

TrialRunning in production on at least one project.

  1. 6

    End-to-end typesNew

    The front end imports the API’s own types instead of a generated client. No codegen step, and a broken contract is a type error rather than a runtime 500.

    History
    1. Vol. 01 · August 2026Trialadded
  2. 7

    Design tokens as the only source

    Every colour and spacing value is a custom property in one stylesheet, and a component that hardcodes a hex fails review. Works; the discipline is the hard part.

    History
    1. Vol. 01 · August 2026Trialadded

HoldWe do not start new work with this. Existing work is fine.

  1. 8

    Client-side canvas PDF

    Screenshotting the DOM to a canvas gives a different document per browser, breaks selectable text, and fails on the fonts that matter. Render on the server.

    History
    1. Vol. 01 · August 2026Holdadded
  2. 9

    CSS-in-JS

    Runtime style injection buys scoping that scoped stylesheets and cascade layers now give for free, and it charges for it in hydration.

    History
    1. Vol. 01 · August 2026Holdadded

Next step

Tell us what
you need built

Send the idea in whatever shape it is in — a document, a sketch, or two sentences. You get a written scope and a fixed figure back before anything is committed to.