Riftbound Deck Manager
A deck-building workspace with a safe public demo path.
Overview
Riftbound Deck Manager is a dual-mode web app: public demo routes for browsing cards and trying inventory/deck previews, plus a private workspace for live collection and deck operations. The public side is safe to share while admin-authenticated workflows stay private.
I deployed Riftbound Deck Manager at https://benjaminhyde.com.au/riftbound so people can explore it publicly without exposing private collection operations.
Public visitors can use demo-safe paths under the same route family, including /riftbound/cards, /riftbound/decks, and /riftbound/inventory. These are designed for walkthroughs, not persistent account editing.
The hardest engineering problem was deck verification. A rules check is only useful if it reflects cards already committed to other decks.
Cross-deck availability tracking solved that gap by showing remaining usable copies after existing allocations, which keeps legality feedback honest during deck tuning.
FEATURES.
Public Demo Layer
Dedicated demo routes for cards, decks, and inventory previews so visitors can explore without touching private data.
Private Workspace Mode
Admin-authenticated mode for live collection management, deck editing, import/export, and full studio workflows.
Card Library at Scale
Searchable card library with filtering by domain, set, energy, print variants, and display mode.
Inventory + Variant Tracking
Tracks normal, foil, and promo counts with ownership/completion indicators and per-card deck allocation visibility.
Deck Verification Rules
Competition-oriented validation checks aimed at reducing invalid lists during deck tuning.
Cross-Deck Availability Awareness
Uses in-deck allocations to show remaining usable copies across all lists, not just raw collection totals.
Tech Stack
Frontend app and routing layer for the demo and workspace UI.
Backend API layer serving cards, preview datasets, auth/session, and deck/inventory workflows.
Persistent store for card metadata, inventory quantities, and deck compositions.
Separate frontend/backend services behind reverse-proxy rewrites.
Architecture
benjaminhyde.com.au acts as an edge Next.js site that rewrites /riftbound traffic to dedicated internal frontend and backend services.
The backend API serves cards, inventory, deck, auth, and admin surfaces, with demo-safe reads supporting public exploration.
Authenticated users transition from demo mode into private workspace actions for persistent deck and inventory operations.
Card records and inventory links support filtering, preview views, and cross-deck legality checks in the deck builder.
Data Model
- •Card entities with set codes, collector numbers, domains, card types, power/energy, images, accessibility text, and source payload
- •Inventory records per card with quantity by print variant (normal, foil, promo) and tracking flags
- •Deck entities with status (e.g., competition/active/planned), notes, guides, timestamps, and zoned deck-card assignments
- •Deck-card bridge records that capture per-zone quantities and enable cross-deck allocation calculations
Challenges
- •Enforcing competition-ready validation rules while keeping deck building workflow responsive
- •Reconciling availability against cards already allocated to other decks instead of showing misleading raw totals
- •Designing a public demo that feels real but does not persist changes or leak private operations
- •Keeping filtered card exploration fast and legible across large card pools and multiple print treatments
Outcomes
- •Live public demo at /riftbound with cards, inventory sandbox, and curated deck previews
- •Clear separation between demo-safe browsing and private operational workflows
- •More reliable legality checks through deck verification plus cross-deck availability awareness
- •Reusable pattern for hosting a product demo within the main portfolio domain