Projects

Production client sites, published apps, and the passion projects where I take on the hardest systems problems. Click any project for the full write-up.

Several of these are client sites — custom-built, hosted and looked after by me, with the domain, content and customer data the business's own. Want one like this? →

Client Work

The Pooch Pit screenshotFeatured

The Pooch Pit

A booking system for a one-person grooming shop: clients ask for a time, the owner approves it, the slot locks itself, and the deposit is paid online before the appointment.

Next.js, TypeScript, Stripe, Booking, Client site

OBGillustrator screenshotFeatured

OBGillustrator

A shop and portfolio for an artist and photographer: prints sold by size and material, original paintings and reprints, commission enquiries, and a dashboard where every photo, price and word is hers to change.

Next.js, Stripe, E-commerce, Fine art, Client site

Oswego Legacy Partners screenshot

Oswego Legacy Partners

A marketing site and publishing platform for a wealth-management firm: a page for each kind of client they serve, a searchable library of their own papers, reader questions answered in public, and ad landing pages with built-in questionnaires — all editable by the firm.

Next.js, Publishing, Local SEO, Accessibility, Client site

The Jeweler screenshot

The Jeweler

In progress

A site for an independent jewelry and watch repair shop inside a shopping mall, built so Google's business panel does the selling — hours, services and location all machine-readable — with every word, photo and video editable by the owner.

Next.js, Local SEO, Content management, Client site

Prairie Falcons — Defensive Dashboard screenshot

Prairie Falcons — Defensive Dashboard

A stats dashboard for a high school football staff: type in a box score, or paste one out of a spreadsheet, and it becomes leaderboards, trends, a page per player, a page per game, and a plain-English read on what the numbers say.

Node.js, PostgreSQL, Sports analytics, Client site

Zander's Picks screenshot

Zander's Picks

An album-review site for a music lover: his friends' three favourite records, each one reviewed and scored by him, shown as spinning vinyl on a podium — and a dashboard where typing an album's name fills in everything else.

Next.js, Music, Animation, Content management, Client site

Passion Projects

Pigskin Lab screenshotFeatured

Pigskin Lab

An NFL stats site you talk to: type a sentence like "compare Mahomes and Josh Allen 2023" and it builds a full dashboard of charts, tables and models from every play since 1999 — then keeps changing it as you ask for more.

Node.js, PostgreSQL, Data, Dashboards, NFL

HoopVision Lab screenshot

HoopVision Lab

An NBA stats site you talk to: type "Nikola Jokic 2023-24" or "most points per game in 2024-25" and it builds a dashboard of charts and tables from every season since 1946-47 — then keeps changing it as you ask for more.

Node.js, PostgreSQL, Data, Dashboards, NBA

Batter Lab screenshot

Batter Lab

A baseball stats site you talk to: type "Aaron Judge 2024" or "compare Ohtani and Judge home runs since 2021" and it builds a dashboard from every season since 1901 — then keeps changing it as you ask for more.

Node.js, PostgreSQL, Data, Dashboards, MLB

Rinkside Lab screenshot

Rinkside Lab

A hockey stats site you talk to: type "Connor McDavid 2023-24" or "compare Ovechkin and Crosby career goals" and it builds a dashboard from every season since 1917-18 — then keeps changing it as you ask for more.

Node.js, PostgreSQL, Data, Dashboards, NHL

Kingside Lab screenshot

Kingside Lab

Ask your chess games anything: type a chess.com username and ask in plain English — best openings as black, how you do after a loss, whether to stop playing after midnight — and get the number, a chart and the games behind it.

Node.js, PostgreSQL, Data, Dashboards, Chess

Bootleggers screenshotFeatured

Bootleggers

A board game for up to four people, played in the browser in prohibition-era Chicago, at night, to its own noir jazz: claim lots, open speakeasies, trade dice and territory, and take over what somebody else built.

TypeScript, Node.js, Socket.IO, Bot AI, Board game

Get in touch

Like what you see? Let's build yours.

Custom sites, built and looked after for you, at a fraction of an agency's price.

Or call (360) 921-0148 — most enquiries to a business like this come by phone.