Skip to content

The learning log

Notes

Short pieces written the same day a thing broke or a thing worked. A few hundred words, dated, unedited, occasionally wrong in public. This is the cheap tier on purpose: if publishing one ever costs more than writing one, it has failed.

  • 12notes so far
  • latest Aug 2026
  • RSS

Recurring

  • rebuild4
  • cloudflare3
  • dns3
  • astro2
  • design2
  • migration2
  • systems2
  • tunnels2

+ 14 used once

August 20262

  1. You can copy the layout, you cannot copy the fuel

    Two reference sites, same visual language, different engine. One runs on proof of person, this one runs on proof of archive.

    #design#positioning#rebuild

  2. The schema is the contract

    content.config.ts is the one file every page builds against. Making the notes tier cheap meant deciding what it is allowed to require.

    #astro#content#systems

July 20266

  1. The accent colour I liked fails AA at 4.19:1

    #9E642E on #050505 measures 4.19:1. It looks fine and it is not usable as text. The token now says so in a comment.

    #accessibility#design#color

  2. The guide everyone was scared of was 39 lines of JavaScript

    The interactive guide was assumed to be the hard migration. Measured, it was trivial. The real cost was 13,000 lines of bespoke HTML nobody had counted.

    #rebuild#measurement

  3. 9, then 2, then 1

    Three months of publishing, in order. A curve that shape is a format cost problem, not a discipline problem.

    #publishing#systems

  4. Astro serves public/ verbatim, which is the entire migration plan

    Old hand-built guides drop into public/ untouched, keep their URLs, and get replaced one at a time. Nothing 404s at any point.

    #astro#migration#rebuild

  5. Proxying Cloudflare in front of Vercel breaks the certificate about 60 days later

    Vercel renews via an HTTP-01 challenge that has to reach Vercel. Orange-cloud the record and renewal fails silently while the site keeps working.

    #vercel#cloudflare#tls

  6. dnsowl publishes a 48-hour NS TTL, so a nameserver rollback takes 48 hours

    The child-side NS records carry a 172800 second TTL. That is the real worst case for undoing a nameserver change, and it is not propagation.

    #dns#risk#migration

June 20264

  1. A Cloudflare tunnel can only serve a hostname Cloudflare controls

    Pointing a CNAME at <uuid>.cfargotunnel.com from an outside DNS provider fails, because that name has no public A record.

    #cloudflare#dns#tunnels

  2. cloudflared takes the zone from cert.pem, not from the hostname you typed

    tunnel route dns printed success and created the record in the wrong zone, because the zone comes from the cert, not the argument.

    #cloudflare#dns#tunnels

  3. 15 pages, 15 style blocks, 8 font stacks

    Counted the CSS across the old guides before touching the design. 252 of 391 class names appeared in exactly one file.

    #css#audit#rebuild

  4. The site was blocked from Google twice, and fixing one did nothing

    robots.txt had Disallow: / and vercel.json set X-Robots-Tag: noindex on every route. Removing either one on its own changes nothing.

    #seo#deployment#debugging

Next

Unwritten

The next one lands whenever the next thing breaks. 12 are up. There is no schedule and no backlog, which is the point.