Seraphym HQ
A gated internal dashboard — rebuilt as a safe, anonymized demo anyone can explore.
This embedded demo (“Aurora”) is the anonymized, no-login version — all Discord, OAuth, and Supabase removed, every figure generated from a seeded sample-data layer so it looks alive without a backend. The production tool is gated and runs on real data.
The problem
I built Seraphym HQ to run a large online community from one screen — moderation, support, a member economy, analytics, and logs, all on a gated Next.js app with Discord OAuth and a Supabase backend. It worked, but it could never be shown. Every screen was wired to real auth, real accounts, and real data, so there was no way to let a prospective client or a peer actually click through the thing I'd built.
The approach
So I built Aurora — the same dashboard, made safe to share. I stripped out the auth, Discord, and Supabase layers entirely and replaced them with a seeded, deterministic sample-data engine, so the UI looks fully alive — populated charts, members, mod cases, leaderboards, tickets, logs — without a database or a login behind it. It auto-enters as a demo user with sample numbers that are randomized but stable, so anyone can explore every page freely and nothing real is ever exposed.
The outcome
The result is a live, fully-explorable version of a tool that used to be invisible. The production app still runs gated on real data; this demo is the honest, anonymized twin — proof of the real thing that I can actually put in front of someone. Click into it below.
What's inside
The demo carries the full surface of the real tool: an Overview of KPIs and engagement, a deep Analytics view (drilldowns, radar, heatmaps, top tables), Members, a Mod Log and Server Logs, Live Chat, the Halo Points economy, Karma, Giveaways, a Staff Hub, and an Admin Storage vault. Every one of them renders from sample data.
The interesting part
The real work wasn't the UI — it was making a gated, stateful product safe to
hand to a stranger. That meant cleanly severing the app from its identity
(Discord OAuth), its database (Supabase), and its real users, then building a
seeded deterministic data layer that fabricates a believable community on
every load: numbers that move, charts that fill in, names and cases and logs
that read as real but aren't. The auth became a one-line demo shim; the database
became lib/demoData.ts. The product looks exactly as capable as it is — with
none of the risk of showing it.



