Welcome to
Writes code, and some other things
A pile of articles, a few small games, and some tools built along the way.
110
Blog
15
Games
23
Tools
Latest posts
View allUpgrading to Astro 7: the Rust compiler is fast, the cold cache is what bit me
Astro 7 moved the compiler and the Markdown pipeline to Rust and switched the bundler to Rolldown. The upgrade was quick; the failures it surfaced afterwards were not.
CSS is getting functions and conditionals: @function and if()
Two new pieces of CSS — custom functions and inline conditionals — remove the copy-paste that every component accumulates. Neither is Baseline yet, but both are worth reading early.
HTTP finally has a safe method with a body: QUERY
GET cannot carry a body and POST cannot be retried safely, so query endpoints have been stuck between two wrong options for twenty years. The IETF QUERY draft adds a third: safe, idempotent, and able to carry content.
No-guess Minesweeper: making every board solvable by reasoning alone
The worst part of Minesweeper is not hitting a mine, it is hitting one that could only be avoided by luck. Here is how a generator guarantees the whole board is deducible.
Games
View allSnake
The classic Snake. Arrow keys, WASD, or swipe on touch screens. High score saved locally.
2048
The classic number merger. Push tiles with arrows or WASD; equal numbers combine. Reach 2048 to win. Swipe on touch, best score saved locally.
Tetris
Classic falling-block puzzle with a 7-bag randomiser for fair pieces, a ghost landing preview and hard drop. Arrows to play, buttons on touch.
Tools
View allJSON Studio
Format, minify, sort, validate with exact error positions, and diff two JSON documents. Runs entirely in your browser.
Timestamp
Convert Unix timestamps and dates both ways, auto-detecting seconds vs milliseconds. Also shows ISO 8601, RFC 2822, relative time, day-of-year, ISO week, and a multi-timezone table.
Regex Lab
Test regular expressions live: highlight hits, list every match with positions and groups, preview replacements, and start from built-in templates for email, URL, IPv4, dates and more.
