Screenshot of WarpTrader
Nuxt 3TypeScriptTailwind CSSSupabasePostgreSQLCloudflare Pages

WarpTrader

A modern, multiplayer web remake of the classic 1990s BBS door game TradeWars 2002, built on a fully server-authoritative serverless stack.

Visit site

Background

Long before I wrote code for a living, I was the kid tying up the family phone line dialing into local BBSes. The game that ate more of my evenings than any other was TradeWars 2002: buy low, sell high, plot your warps carefully, and spend the hours after your turns ran out scheming about tomorrow's. WarpTrader is my love letter to that game — a full multiplayer remake with faithful mechanics, playable in a browser instead of a terminal emulator.

Development

The fun of this project has been pairing a 1990s game design with a 2020s serverless stack. The front end is Nuxt 3 with TypeScript and Tailwind, deployed on Cloudflare Pages, with a hybrid UI that keeps the green-phosphor terminal flavor without the pain of actually using one. Everything else is Supabase: Postgres, auth, row-level security, realtime, and scheduled jobs — no dedicated game server anywhere.

The most interesting problem was cheating. In a multiplayer economy game, the client can never be trusted, so the whole design is server-authoritative: RLS gives players scoped read access only, no table has a client write policy, and every mutation — moving, docking, haggling with a port — goes through a vetted SECURITY DEFINER RPC in Postgres. The daily tick that restocks ports and refills turns runs on pg_cron. Your browser literally cannot write game state; it can only ask nicely.

The sector screen — tactical view, warp links, and a target lock on another trader

A big_bang() generator builds each universe — a thousand sectors wired into a connected warp graph, seeded with trading ports. Every game-scoped table is keyed by game ID, so tournaments and parallel universes come for free. And because the original borrowed some legally questionable sci-fi names, every player-facing string and color lives in JSON theme files — the whole game can be rebranded without touching engine code.

Exploring a sector with a gaseous planet — a fresh Genesis detonation, per the sector activity feed

Status

WarpTrader is in active development. The core loop is playable today — movement with fog-of-war, port trading with multi-round haggling, scanning and ether probes, and the StarDock economy with shipyard trade-ins and a hardware emporium. Combat, planetary colonization, and corporations are next on the roadmap, and an early build is live at warptrader.io.