Scrap Racket
A server for the survival game Rust with its own economy and bounty system, and the Next.js site that runs with it — live status, wipes, leaderboards and a store.
Overview
CONTEXTScrap Racket is a server for the survival game Rust, and the website that goes with it — both mine. The server keeps vanilla rates and adds its own systems on top: an in-game economy, player-funded bounties with an NPC police force and a prison, personal quarries and pump jacks, generated cabins and guarded bases, leaderboards with small perks, and 27 achievements. The site at scrapracket.uk shows the live server, the wipe calendar and map vote and how every system works, and handles Steam sign-in, memberships, support tickets and appeals.
The challenge
PROBLEMA community server lives on trust: rules stated plainly, an economy nobody can buy an advantage in, and a site that tells the truth about the server right now. So the game and the website had to agree on every number and word, the site had to read the live server without exposing it to the internet, and sign-in and payments had to be safe from the first day.
Process
METHODFoundation
Design tokens, a component library with guard tests against stray colours and strings, every public page and the CMS — in the first week.
Game systems
The Exchange, contracts, the Old Bill and its prison, quarries, cabins and bases as C# plugins, with the site reading the live server over RCON.
Launch
Steam sign-in, store and memberships, wipe calendar and map vote; deployed with Kamal and live on 12 September 2026.
Polish
Leaderboards, achievements, the Discord bot, backups, and accessibility to WCAG 2.2 AA with a settings dialog on every page.
Pipeline
PROCESSI built it alone from 17 August 2026 — 444 commits across three repositories in about five weeks — as the engineer directing a team of AI coding agents rather than typing every line. That is a craft of its own, closer to conducting and pair programming than to prompting: I write the brief and the rules (AGENTS.md for the site and for the server), split the work into tracked issues, run agents in parallel in isolated worktrees, pair with them on the hard parts, and review every change before it lands. The structure keeps them honest: a single source of truth for every piece of copy (copy.ts) and every colour (tokens.css), in-game text generated from that same source, guard tests that fail the build on a stray string or colour, and a knowledge base where each incident becomes a written rule. The visual design and the design system were made with Claude Design. The site came first; the game server followed on 10 September, the site went live on 12 September, and leaderboards, achievements, the Discord bot, the store and accessibility shipped over the next two weeks.
Technical notes
DEPTHWeb: a pnpm monorepo with Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4, TanStack Query and Zod, and Payload CMS 3 on PostgreSQL 17 with migrations only. The site reads the game server over RCON from the same host, never exposed to the internet, and accepts game events signed with HMAC-SHA256. Integrations: Steam OpenID sign-in, a Tebex headless store with a verified, idempotent webhook, three vote-list APIs, RustMaps, a Discord bot written directly on Discord's REST and gateway APIs, and backups to Cloudflare R2. Game: 14 C# plugins for the Carbon framework, about 22,000 lines. In-game text and colours are generated from the site's source, so the two cannot disagree. Deployed with Docker and Kamal on a Linux host behind Cloudflare.
Outcome
RESULTLive at scrapracket.uk: 38 pages and a staff panel, 130 unit-test files with Vitest and Testing Library, and Playwright with axe-core at four screen widths. The site targets WCAG 2.2 AA, with settings for text size, spacing, dyslexia-friendly fonts, contrast, motion, arrow-key navigation and text to speech. The server is open and new features keep shipping.
Gallery
MEDIAHome — the hero, live server count and the countdown to the next wipe
Gameplay — every custom system, explained in plain words
The Scrap Exchange — spending the Scrap you carry, in game
Contracts & the Old Bill — player-funded bounties
Leaders & perks — eight boards and the fair-play rules
Leaderboards — this wipe's top three on each board
Wipes — countdown, calendar and what resets
Vote on the next map
A server page — connect command, rates and map
Status — live readings and 90-day uptime
Memberships — cosmetic perks only, nothing that wins a fight
Accessibility settings — text size, spacing, fonts, contrast, motion, speech
Working on something?
Open to frontend, full-stack and game-dev roles — hybrid near Cardiff or remote.