NORMAL

$ cat ~/blog

The log.

Short notes by default, an occasional deep-dive. Dumped while building.

  1. deep-dive #meta

    Why this log exists

    A low-friction place to dump what I learn while building — short notes by default, an occasional deep-dive when something deserves one.

    $ cat welcome.md
  2. til #cloudflare#devops#wrangler

    Cloudflare Pages branch aliases are not separate projects

    Deploying with `--branch x` gives you `x.<project>.pages.dev`, but it lives inside the same project. To get a clean `project-t.pages.dev` hostname you need a whole separate Pages project — and deleting the old branch deployment needs `--force` if it has an active alias.

  3. til #three.js#r3f#webgl

    R3F MeshTransmissionMaterial chokes SwiftShader

    Headless Chromium falls back to SwiftShader (software GL), and a transmission orb at samples=8/detail=18 just renders black with no error. Dropping to samples=6/detail=14 keeps it alive on low-end GPUs — and always test the reduced-motion fallback separately.