Gala FPL Challenge — season-long fantasy football leaderboard, ~1,000 entrants, real cash prizes
Commissioned to build a tournament platform for Gala's branded Fantasy Premier League challenge: automated overall, weekly, and monthly leaderboards computed live from the public FPL API, with real cash prizes attached to the standings — so correctness and freshness weren't optional. Originally built on Node.js and deployed to Render; later rebuilt in PHP 8.1 to run on the client's existing cPanel shared hosting, which had no Node support. Backed by MySQL, with Google OAuth accounts, encrypted bank-detail storage for payouts, Web Push notifications, and cron-driven automation for deadline reminders and winner broadcasts.
- Three daily mini-games (trivia, guess-the-player, word match) with one counted attempt per day, enforced at the database level
- Shareable result cards, a full PWA shell, and an admin-only payout tracker
- Rank-movement indicators and tiebreak logic (captain points → vice-captain points → season standing) applied only to the small cluster of entries actually tied around a paid rank
Engineering decisions
No official FPL login exists — so ownership had to be proven another way. Rather than collect real FPL credentials (a real security liability), team ownership is verified by having the manager temporarily rename their FPL team to a generated code.
Live standings are never served from cache. The service worker caches the static app shell for fast, offline-capable loading, but deliberately never caches /api/* — this is a real-money leaderboard; stale standings would be actively misleading.
Expensive stats are sampled, not exhaustive. "Most Captained" and "Chips Played" are computed from the top 100 managers by rank, not the full ~1,000-member league — clearly labeled as a sample in the UI to keep load reasonable on FPL's public API.