RiftRecord
Tournament tracking and analytics
The Challenge
Riftbound TCG players had no dedicated tool for tracking their tournament performance. They resorted to spreadsheets and notes, making it difficult to analyze matchup trends, calculate win rates, or share results with the community.
The Solution
I built a focused tournament tracker with round-by-round result entry, supporting both Swiss and Top Cut formats. The hybrid storage approach uses localStorage for in-progress tournaments (offline-first) and PostgreSQL for saved tournaments. An image export feature allows players to share results on social media.
Key Features
Round-by-Round Tracking
Track Swiss and Topcut rounds separately with best-of-3 results, opponent leaders, dice rolls, and match notes.
24 Playable Leaders
Full support for Riftbound champions across 6 domains with leader search, filtering, and matchup tracking.
Performance Analytics
Win/loss/draw tracking, win rate calculations, matchup statistics, and separate Swiss vs Topcut analysis.
Hybrid Data Storage
localStorage for in-progress tournaments (offline-first), PostgreSQL for saved tournaments with automatic sync.
The Outcome
The app serves the Riftbound community with performance analytics, matchup statistics, and easy result sharing. The React Context + Reducer pattern provides centralized tournament state management, while independent round numbering handles Swiss and Topcut phases correctly.
Engineering Highlights
- Built React Context + Reducer for centralized tournament state management
- Implemented independent round numbering for Swiss and Topcut phases
- Designed multi-view dashboard system (setup → tracker → results → history)
- Google OAuth authentication with automatic redirect flows