Projects · What I'm known for
Relaxy!
A sharded, multipurpose Discord bot and everything around it (dashboard, website, status page, CDN), serving 200,000+ users from hardware I run myself.

3 photos
Relaxy! started in 2019 as a bot for a couple of servers and grew into a small ecosystem that I design, write and operate alone. It now serves more than 200,000 Discord users, and the whole fleet runs on a single Raspberry Pi with every service isolated under Podman and bubblewrap.
What I built#
The bot runs as a sharded fleet: one supervising manager process and N cluster processes, backed by MongoDB. It has 162 public commands and 58 event handlers covering moderation, levelling, an economy, music, image generation, tickets and welcome cards.
- One moderation pipeline. A ban placed by command, by the dashboard or by a synced partner server lands identically: same case number, same modlog entry, same DM, same appeal invite. Actions taken by hand in the Discord client are read back from the audit log so the case history stays complete.
- Cross-server links without credentials. Two servers link when the same person runs the same command in both within thirty minutes. That handshake drives ban appeals, role syncing across a pool of servers, and opt-in synced moderation.
- Scam detection. OCR over posted screenshots plus perceptual hashing, deduplicated by image hash and shared across the fleet.
- Storage. Diff-based document writes, multi-process database workers and local caching keep MongoDB traffic small.
- Operations. Hot reload that decides on its own when a change really needs a recluster, rolling restarts, an ADSR watchdog that restarts a shard on sustained errors, and a network watchdog that recognises a fleet-wide outage and holds off respawning until it's over.
The dashboard (dashboard.relaxy.xyz) is a Fastify app with Discord OAuth. Access is computed from the OAuth guilds permission bitfield into three tiers (owner, server admin, member), every write goes through a single choke point against a typed allow-list of fields, and every form carries a per-session CSRF token. No framework, no client build step.
The website (relaxy.xyz) is 12 dependency-free pages (~5,400 lines of JS, ~5,650 of CSS) with a changelog, devlog, technical write-up and the public uptime page.
The supporting services keep the Pi alive: a prober that checks 24 services every ten seconds and publishes three JSON feeds, a hardware watchdog on /dev/watchdog, an uptime ledger with incident detection and cause inference mirrored into a Discord channel, an incident CLI, and an nftables table that keeps SSH in priority band 0 at DSCP CS6 so the box stays reachable while it's struggling.
Why it matters#
Running something this size on a single-board computer forced me to care about memory, process isolation, back-pressure and failure modes that a cloud VM would just let me ignore. Most of what I know about operating software in production I learned keeping Relaxy up.
Note
The working source is private. relaxy-public-v2 is a read-only mirror of the bot with the comments and owner tooling stripped, and relaxy-additions and relaxy-website are public too.



