Skip to content
R

RiftRecord

Tournament tracking and analytics

Full-Stack Engineer20255 weeks

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