Jeremy Ettlinger

Work

Woolholm

Settle an island with friends. A browser board game where Claude can take a seat.

Year  2026
Status  Live · free
Stack  Nuxt 4 · three.js · Durable Objects · WebSockets · MCP

A board game for a household that keeps losing the little wooden pieces. Full base rules plus the five-and-six-player extension, on a hex island sculpted in three.js — painterly relief tiles under a parchment scoreboard, the kind of table you'd actually want to sit at.

Every table is a Cloudflare Durable Object: one room holds the island, the deck, the trades, and the WebSocket for each player, so state lives in exactly one place and nobody has to be the server. Sign in with Google or GitHub, open a table, share a link; guests pick a name and sit down without making an account. A finished game gets a chronicle — the whole thing replayed on the board with a scrubber, the dice against the odds, and a title for each seat.

The part I built it for: a seat can be taken by a Claude session over MCP. The agent sees the same island everyone else does, rolls, builds, and haggles through the same rules engine, and is a genuinely annoying trade partner.

It started as Hexstead, an invite-only game for friends. It became Woolholm when it opened to anyone — new name, real domain, house rules, scenario islands, and an island of the week with a leaderboard. Free to play; the repo stays private.