Building in public

dev-willum

Fintech tooling, football analytics, a WebGPU aerodynamics sim, and the occasional teletext-styled game. Seven projects below, one of them fully playable right on this page.

7Projects
3Live sites
2Playable on this page
1GPU compute sim

// about

Fintech, football data, and the odd retro game

Most of what's here started as "I wonder if I can build this." NstntMTD wires a real Open Banking connection into a tax tool. FettleFix is a full job-management platform for an industry that mostly still runs on paper. The football analytics projects grew out of building my own player database and wanting better ways to look at it than a spreadsheet. The games are just an excuse to write something in a teletext aesthetic.

Everything below is either live, playable on this page, or sitting in a GitHub repo you can clone and run yourself.

  • Fintech — Open Banking, auth, Postgres
  • SaaS — Cloudflare Workers, D1, TypeScript
  • Analytics — React, D3, Plotly, Recharts
  • Simulation — WebGPU, WGSL, Three.js
  • Games — vanilla JS, single-file, no build step

// projects

What I've been building

What each one is, and what it's built with.

Fintech

NstntMTD

Open Banking meets Making Tax Digital

A real Node/Express backend for a personal finance and tax tool: account signup and login, a live TrueLayer Open Banking connection for pulling in real transactions, and an AI advisor proxy for spending insights. Ships with a working demo account, so the whole flow (dashboard included) runs locally with no extra setup.

Node.jsExpressPostgreSQL TrueLayer Open BankingJWT
SaaS

FettleFix

An end-to-end job management platform for repair shops

A working subscription SaaS for niche repair trades - clock and watch repair, typewriters, film cameras, fountain pens, sewing machines. Runs the whole job lifecycle: customer and item intake, a bench queue, estimates and parts, a public status-tracking page for customers, reminders, and a billing ledger, with full shop signup, staff accounts, and auth behind it.

HonoCloudflare WorkersD1TypeScript
Game

F1TEXT

A Ceefax-style Formula 1 career sim

An open-ended F1 career management sandbox styled after 1990s teletext services, starting from the 1993 season. Real drivers and teams appear and retire on their actual historical years, with procedurally generated drivers filling the grid as seasons roll on indefinitely. Playable below.

Vanilla JSSingle-file
Simulation

F1 Airflow Sim

Real-time 3D aerodynamics, on the GPU

A computational fluid dynamics simulator that visualises airflow around a 2026-spec F1 car in 3D. A Lattice-Boltzmann (D3Q19) solver was built as a validated CPU reference first, then ported to WGSL compute shaders so it runs in real time on the GPU, with results cross-checked against the CPU version on every change.

Three.jsWebGPUTypeScriptVite
Game

Teleboss

Teletext-style Premier League management

A retro CRT-styled football management game built around the current Premier League season, in the same teletext aesthetic as F1TEXT: squads, match engine, and league tables rendered like an old Ceefax page.

Vanilla JSSingle-file
Analytics

Willumanalytics

Football data analytics dashboard

A player scouting dashboard built on a hand-assembled database: search and rank players, find similar profiles by percentile-based similarity, and compare any two head-to-head on radar charts, with PNG export for sharing.

ReactD3Plotly
Analytics

Fm-analytics-js

Moneyball-style scouting for Football Manager saves

A desktop app (FM ScoutView) that reads Football Manager save exports and surfaces value-for-money scouting insights: who's outperforming their reputation, and who's a bargain relative to their attributes, shown through interactive charts.

ReactTauriD3Recharts

// data viz

Scouting dashboards

A few exports from the player-scouting dashboard side of the analytics tooling: role suitability wheels, shooting/carrying/passing breakdowns, and role-matrix scatter plots built from a hand-assembled player database.

// playable

Play F1TEXT

The full game, embedded. Progress saves to your browser's local storage.

f1text.html Open in new tab →

// playable

F1 Airflow Sim

Live WebGPU compute running in your browser: drag to orbit, scroll to zoom. Needs a WebGPU-capable browser (current Chrome or Edge).

index-3d.html Open in new tab →