I build small, opinionated tools, and I fix the bugs I hit in the open-source projects I use. Lately: a city for developers, and a lot of Windows path bugs.
Open for freelance work: websites, bots, automation, scraping and AI integrations, fixed price and a delivery date up front. Get a quote →
Building now: Byteland. A night city where every developer is a building and every lit window is a project. Each project gets a room with chat, a forum and voice. Drawn on a canvas, no framework, no dependencies. Type your username at byteland.dev/readme to get a card like the one above, or a repository at byteland.dev/r to see its contributors as a night street.
| nightshift | A pixel office where cheap models work the night shift and you are the boss. |
| claudedex | An always-on-top questlog for Claude Code sessions: a Pokédex, a desktop buddy, missions. |
| roll-credits | Flick through posters, keep what you would watch, then roll between them. Try it in the browser, or the Tauri desktop app. |
| rateify | Judge every song, keep receipts. A tiny zine-style Spotify rating widget. |
| redstring | A dossier-styled gym for observation and memory. Offline, no account. |
Fixes I wrote that shipped in projects other people rely on:
- nx · esbuild bundle respects an overridden
outputPath - Payload · client schema maps cached per language
- Recharts · bar tooltips show the colour the bar renders with
- IPython · quoted
FILE:LINEin%debug --breakpoint(+1) - discord.js ·
create-discord-bottemplates start on Windows - Nitro · readable paths in the dev error page on Windows (+1)
- h3 and srvx · stream errors reach
onError;waitUntilsurvives - knip · files from tsconfig references with
--use-tsconfig-files(+1) - MikroORM · projects in folders with glob characters in their path
- MDN browser-compat-data, WebdriverIO, React Email, Etherpad, Theia, Ts.ED, Reloader, shadcn-vue, web-check, dotenv, ocache, llmfit
Come say hi in the Byteland square.


