Riftbound Deck Manager: Public Demo, Private Workspace
TL;DR
Riftbound Deck Manager is live with a public demo path, private workspace boundaries, and deck verification that accounts for cards used across multiple decks.
Benjamin Hyde
Education Leader & AI Builder
Riftbound Deck Manager is now live at https://benjaminhyde.com.au/riftbound. From day one, I wanted it to be easy to show publicly without exposing the private collection side.
So I split the experience: anyone can explore the safe demo routes, but live edits and real deck management stay in the admin workspace. Same project family, very different permissions.
What shipped
The public side includes /riftbound as the main entry, then /riftbound/cards, /riftbound/decks, and /riftbound/inventory for demo browsing.
Those routes are intentionally safe to click around in. Anything persistent or account-specific stays in the private workspace mode.
The key challenge
The hardest problem was deck verification. Validating one deck in isolation sounds fine until the same card copies are already committed elsewhere.
I had to make the checks cross-deck aware, so the app shows genuinely available copies after existing allocations. That keeps legality and availability feedback honest.
How it is deployed
On the portfolio site, /riftbound traffic is routed to dedicated frontend and backend services. It feels integrated on one domain, but operationally it's separated where it needs to be.
The backend runs as a Python API (Uvicorn) with SQL-backed data for cards, inventory, and deck records, with public-safe reads separated from authenticated writes.
Build Notes
Approach
Build in two modes from the start: public demo routes for exploration and a private workspace for persistent operations.
Tools Used
Next.js, Python API (Uvicorn), SQL database, Docker
What Worked
The public/private split made sharing easy, and cross-deck tracking made verification feedback far more trustworthy.
What Failed
No major launch failures, but validation edge cases and clearer rule-explanation UX are still ongoing work.
What's Next
Improve validation messaging, tighten performance on large filtered views, and keep hardening import/export guardrails.