Projects
Everything on this site. Some are still moving, some are finished.
- Web app Typoteka Books written in Markdown and designed in CSS: a web editor that turns a folder of text into a print-ready PDF with real typesetting.
- Mac app Cue A watch-later queue for YouTube that lives on your Mac instead of in your browser: a native player with no ads, no embed and no tab eating your battery.
- Web app Maestro A workspace where game designers and their AI agents build the design of a game together. It holds the design, never a running game: no live instances, no players, no telemetry.
- Browser add-on Disenshittify A Firefox extension that hides the parts of a platform that exist to serve the platform. Recommendation walls, infinite feeds, upsells, suggested posts, each one a switch you can turn off.
- Web app Owl A self-hosted metrics dashboard for your own server, with the dashboards defined as files rather than clicked together in a UI. If you think Grafana and Prometheus ask for too much RAM, this one is for you.
- Plugins Sublime Text plugins The editor I have used for half my life and the one I am still fastest in. The plugins I wrote to fix my own annoyances are published rather than left in my packages folder, in case they are somebody else's annoyances too.
- Web app Nottario A harness for your harness: a task, document and architecture store that coding agents talk to over MCP, so several of them share the same context.
- Library Firebase Mocker An emulator of several Firebase services that is just a dependency in your project. No install, no separate process to remember, and tests that run against it as if it were the real thing.
- Plugins Hexo plugins I like static sites, and Hexo is the generator I keep coming back to. Over the years one need or another has ended in commits to somebody else's plugin, or in writing and publishing my own.
- Game engine okinawa A small 3D engine in C++ and OpenGL, the heir of a JavaScript 2D engine a decade older. It is a library, not a framework: it draws the world and leaves the game to the application.
- Tools Doom tools C++ tools for the archives Doom keeps its levels in. The main one rebuilds a map in 3D from its lines and sectors, with the original textures, and lets you fly through it.
- Web app GhostMesh An IRC client that runs in the browser and talks to several networks at once. No account, no sign-in, nothing stored anywhere but your own browser.
- Library Vue components A new front-end framework turns up every week. Of all of them, the one I keep coming back to is Vue, and the pieces worth reusing end up published as components.
- Library Hexagon A multilanguage mudlib: it adds an entity component system on top of the classic room inheritance, and a single instance can host several persistent online text games at once.
- Game engine okinawa.js A 2D game engine in plain JavaScript, with no runtime dependencies, that ended up powering dozens of small games on a programming platform for children and a handful of academic studies.