Notes

A log of what I'm building, planning, and thinking about. Short and timestamped.

14 May 2026 1 min read TIL

CSS :has() finally landed everywhere

Spent the morning ripping out a JS-driven 'parent has invalid child' pattern and replacing it with `form:has(:invalid)`. Three components got simpler.

9 May 2026 1 min read Note

Stripe webhooks: trust signatures, not IPs

An IP allow-list felt safer until the on-call woke up at 3am because Stripe rotated a range. Signature verification is the answer.

2 May 2026 1 min read Tools

Switching from pnpm to bun for side projects

Install times are a step change. Tooling is rough at the edges but for greenfield prototypes the speed wins.

26 Apr 2026 1 min read Reading

DDIA chapter 5: replication

Leader-based replication is everywhere I look once you know what it is. The Postgres logical replication chapter clicked after this.

20 Apr 2026 1 min read TIL

Conditional types: a small breakthrough

Finally internalised distributive conditional types. `T extends U ? X : Y` over a union maps element-wise. Wrote a tiny helper to make it stick.

12 Apr 2026 1 min read TIL

Rust ownership clicked today

The trick was stopping translating from JS. Borrowing isn't a workaround for GC — it's a different shape of program. Drew it out on paper.

5 Apr 2026 1 min read Work

Healthcare forms are their own thing

Half the complexity is conditional logic; the other half is what people *don't* type. Empty states carry diagnostic meaning. Designed accordingly.

29 Mar 2026 1 min read Tools

Vim motions in VS Code: worth it

Three weeks of being slower. Then suddenly faster. The mental cost of context-switching to the mouse adds up more than I realised.

22 Mar 2026 1 min read Aside

Aussie rules in JSON

Modelling a footy match as a typed event stream over a Saturday afternoon. Useless. Delightful. Recommended.

15 Mar 2026 1 min read Note

Local-first with electric-sql

The mental model — your database is the network — takes a beat. Then it's hard to go back. Replaying a flaky train commute felt like magic.

No notes with that tag — yet.