Userland started as a cyberpunk text MMO where the only thing you do is hack. No fighting. You scan systems, load your tools into limited memory, break through the defences, and get out before the trace catches you. Eleven weeks later it had turned into Goblin World, an always-on idle RPG set in a grubby goblin kingdom, still running on the same engine. As the landing page puts it: “It keeps going when you close the tab.”

Every hack runs as its own little process on the server and streams to your screen as it happens. All you can do is hit “extract” or “abort”; the server decides the rest. The first two days were busy: economy, black market, PvP, co-op hacks, factions, chat and a public API. On day two I ditched the typed command line for point-and-click, and the game logic underneath didn’t need to change at all.

The switch to goblins was a conversion, not a rewrite. Every existing mechanic got written down, and nothing could be thrown out unless I said so. Your goblin does one thing at a time, and the database enforces it, so it’s not just a convention. Progress is worked out from timestamps, so it’s right even if nothing was running and nobody had the tab open. In September every change came with proof: tests passing, the deploy ID, and a live check. When something failed, the log says so: “blocked, not passed”.

Video coming soon
Image coming soon
Image coming soon
Image coming soon

Specs

Status Live as Goblin World. Last commit Sep 24, 2026
Dates Jun 2 – Sep 24, 2026
Repos Private userland (419 commits); public userland-ui, userland-ascii, userland-heex
Stack Elixir, Phoenix LiveView + Channels, PostgreSQL, Oban, Hammer; Tailwind + daisyUI; Railway
Code 389 Elixir modules (~62,000 lines), 146 LiveView modules, 92 migrations
Tests 1,581 tests + 5 doctests (Sep 18 checkpoint)
Design rules IP firewall (“borrows only the genre, never the goods”); preservation matrix for the goblin conversion
Play game.userland.sh
Not yet Reconnect recovery, viewport matrix, iPhone install, IP/trademark review before any paid launch