The toolshed
What the garden
is built with.
The tools behind the apps, their backends, and this website. Taken from the projects’ own code, so it changes when they do.
The apps
Fuellin, Revelkeep, Trekspell, and Pantrove share one toolkit.
- Flutter & DartEvery app, on Android and iOS from one codebase (opens in a new tab)
- BLoCPredictable state, screen by screen (opens in a new tab)
- DriftThe on-device database that keeps the apps working offline (opens in a new tab)
- go_routerNavigation and deep links (opens in a new tab)
- DioTalking to the backends (opens in a new tab)
- SentryHearing about crashes before anyone has to report them (opens in a new tab)
The backends
For the apps with accounts and sync.
- GoPantrove’s API, with chi, pgx, goose, and sqlc (opens in a new tab)
- NestJSTrekspell’s and Revelkeep’s APIs (opens in a new tab)
- PostgreSQLWhere synced data lives (opens in a new tab)
- PrismaTrekspell’s database access (opens in a new tab)
- Cloudflare R2Trekspell’s uploaded gear photos (opens in a new tab)
- TypeORMRevelkeep’s database access (opens in a new tab)
- DockerPackaging every service the same way (opens in a new tab)
The games
Pollinate here on the site, and the four still being made.
- GodotThe engine behind every game in the making, set up for phones (opens in a new tab)
- GDScriptAll of their game logic, from push chains to ricochets (opens in a new tab)
- PythonGenerating levels and sound effects for one of them (opens in a new tab)
- HTML CanvasPollinate, drawn frame by frame right in the browser (opens in a new tab)
This website
The garden you are standing in.
- VinextNext.js’s App Router, running on Vite (opens in a new tab)
- React & TypeScriptEvery page and component (opens in a new tab)
- Tailwind CSSThe base layer under hand-written styles (opens in a new tab)
- Web Audio APIGarden sounds, generated live rather than recorded (opens in a new tab)
- Satori & resvgThe share-preview cards (opens in a new tab)
- Docker & nginxServing the static garden (opens in a new tab)
- Geist & Iowan Old StyleThe sans for reading, the serif for the moments in between (opens in a new tab)
AI tools
Used alongside the work, for designing screens and writing code.