Brightwing Systems
Software with a hard problem in the middle of it.
A roguelike simulation that had to become server-authoritative before it could be multiplayer. Generated mysteries checked for solvability before they ship. A spend limit an SDK can verify locally, without asking us first. 23 builds — and the reason to open any of them is what was hard about it.
Start a conversationBuilt for a phone, played in a browser, no install.
Pixel Crawlers
A Java roguelike rebuilt as a server-authoritative web game, with co-op.
Django · Python engine · Phaser · WebSockets
ExForce
A daily sci-fi command post where the crew are models, not dialogue trees.
Django · ASGI · Vite SPA · Celery
Two Sources
Investigative fiction where the reporting standard is the game mechanic.
Django · Postgres · Celery · email
Suspectory
ArchivedSuspects who react to how you ask, not just what you ask.
Django · Postgres · generated art · Celery
Deep Space Trading
ArchivedA galaxy of 870 stars and 3,099 planets, generated rather than authored.
Django · Postgres · procedural generation
Dungeon Weekly
ArchivedA first-person dungeon crawl with an NPC who actually answers you.
Django · Postgres · Celery
Wanderer's Cup
ArchivedYou are not solving a puzzle. You are working out what someone needs.
Django · Postgres · LLM-driven patrons
Systems, not forms
A Python simulation the browser only renders, so a shared run is possible at all. A generator with a validator in front of it, because an unsolvable mystery is worse than none. Procedural galaxies built from a seed rather than placed by hand. These were picked because they had a part that could fail.
Tests that encode intent
Every build starts from one Django baseline whose suite asserts why, not just what — contrast ratios computed against published floors in both themes, a guard against stale compiled CSS, a check that fails when a placeholder would reach production. Incidents get written down once instead of re-learned.
AI as a component
Characters that improvise rather than branch. Agents that report the gap they just worked around. Cost governance for teams shipping the same. Every model call goes through one facade with a named purpose, so a price change is one edit and not an audit.