SPNKr
Replacing a $30/month game server rental with a spare PC, then redesigning the dashboard out of default AI output.
View on GitHub →Paying $30 a month to rent a game server, with a spare PC sitting idle.
Solo: product design, art direction, and the build on Node, Socket.IO, SQLite and vanilla JS.
Eight games self-hosted and controllable from Discord, open-sourced, with an art direction that a script enforces on every run.

- The product: install, update, back up, and restart every server
- The art direction spec, and the script that enforces it
- The frontend, the server, and the Discord controls
- Setup instructions written for humans and AI agents
- One spare home PC, home internet, port forwarding
- The first dashboard was generated; the redesign had to undo its defaults
- [Who plays on it, and what they asked for]
Eight games on a spare PC.
Replaced a $30/month game server rental with a spare PC running eight games, controllable from Discord. Then redesigned the dashboard out of default AI output: warm gunmetal instead of consumer blue-black, borders doing the work instead of shadows, with the art direction spec enforced by a script that checks sixteen rules against the code on every run.


Self-host instead of renting
- Options
- Keep the $30/month rental; or run every server on a spare PC at home.
- Why
- [Beyond the money: control, more games, learning.] One machine now runs eight games.
- Trade-off
- [Draft: I became the ops team: uptime, updates, backups, and port forwarding, which is why the dashboard walks through them.]
Control it from Discord
- Options
- A dashboard only; or Discord controls alongside it.
- Why
- [Why Discord: it’s where the group already is.]
- Trade-off
- [What Discord can’t do that the dashboard can.]
Redesign out of default AI output
- Options
- Ship the first generated dashboard; or give it a real art direction.
- Why
- Warm gunmetal instead of consumer blue-black, borders doing the work instead of shadows. [What the default looked like and why it didn’t fit.]
- Trade-off
- [Time spent redesigning a tool only you and friends use; why it was worth it.]
Enforce the spec with a script
- Options
- A written art direction spec that people and agents are trusted to follow; or a script that checks sixteen rules against the code on every run.
- Why
- [Why: e.g. AI-generated changes drift back to defaults unless something checks them.]
- Trade-off
- [Rules only catch what they can see in code; what slipped through anyway.]
What I’d do differently
[One honest answer: e.g. a rule you’d add to the checker, or something you’d build before the redesign.]













Free and open source.
Setup instructions are written for humans and AI agents alike.