Projects

Things that are
actually running

Two things with real users on them: a real-time platform whose user base all shows up at once on a fixed schedule, and a party game built for a room full of people holding their own phones. Different problems, same habit of shipping it and then operating it.

Wolfpack

A four-component real-time platform, built and operated solo.

Telemetry flows from software running on end-user machines, through an authenticated HTTP ingest layer, into Postgres, and back out to a Discord bot, a public web app, and a set of always-on-top desktop overlays that update sub-second while a user is mid-event. Four components, four deployment targets, four independent release cadences — each with its own version and its own rollback story.

0
combat encounters parsed & reconciled
0
damage events attributed
0
time-series snapshots stored
0
commits across four components

Go and look at it — wolfpack.quest →

Ingest & orchestration service

Node.js · Discord API · Railway

Bearer-authenticated HTTP ingest across ~20 endpoints plus ~83 user-facing commands. Deduplication, merge-on-conflict, background schedulers, timezone-aware nightly jobs.

~17k lines · deploy-on-push

Telemetry agent

Node.js · zero npm dependencies

Tails append-only logs that grow into the gigabytes, filters at byte level before parsing so private content never leaves the machine, ships batches through a durable on-disk queue.

~33k lines · zero dependencies by design

Desktop client

Electron · auto-update · Windows + Linux

Frameless, transparent, click-through overlays composited over a fullscreen application. Three release channels, delta auto-updates, automatic rollback after a crash loop.

~8k lines in the main process

Web application

Next.js 14 · App Router · Vercel

OAuth with a two-stage authorization gate, role-gated admin surfaces, server actions with optimistic UI. Row-level security so the browser can never read what the viewer cannot see.

Production + addressable preview environment

Celebrity / Salad Bowl

A party word game, built to be handed round a room.

Two game modes — Celebrity, played in three rounds where the same names are described, then cut down to a single word, then acted out; and Salad Bowl, the one-round variant. Teams are assigned at random or drafted, turns run a minute with time carried over between rounds, and game state survives a refresh rather than losing the room's progress to a stray reload.

The interesting constraint is the hardware it actually runs on: a group of people holding their own phones, in one room, with a television. So there is a full-screen card view built for one-handed phone use, a separate TV display mode for the shared screen, and players join by scanning a QR code rather than typing a URL. It installs as a PWA, which hides the browser chrome and makes it behave like a native app.

Client

React 18 · Vite · PWA

Phone-first full-screen card UI, an installable service-worker build, and local persistence so a refresh mid-round does not reset the game.

Shared state

Supabase · Vercel edge functions

Postgres behind the room state, with row-level security, so phones and the TV display stay in agreement without one device having to act as the host.

Live at celebrity.hesstastic.com — also answers on celeb, salad and saladbowl
Size ~7,500 lines across the client and its edge functions

The writing

How it was built, and what the assistance cost.

This site

Small, but it makes a point.

Static HTML and one stylesheet on GitHub Pages. No build step, no framework, no external fonts, no CDN — nothing is fetched at render time, so there is no third party that can break it. Scroll-reveal and count-up are written directly against the browser's intersection observer, reduced motion is honoured, and no page scrolls sideways on a phone.

Also on this domain

Needs your call before it goes public.

Not listed yet

Two loose ends I have not written up, because I would be guessing:

  • parser — described to me as "a link to an installer", in the past tense, so I do not know whether it is still live or which installer it served. Not linked until that is settled.
  • discord — on Vercel, purpose unknown.

home, login, rr and help point at Porkbun's own parking hosts, so they are almost certainly not real sites and are left out deliberately.

Tell me what these are and they become proper entries. Delete this whole <section> if you would rather they stayed unlisted.