arrow_backRETURN_TO_PROJECT_LOGS
// PROJECT_METADATA

Footbally

calendar_today
open_in_newfootbally.net →
TanStack StartReact 19Drizzle ORMPostgreSQLRedisBetter-AuthTailwindCSS v4Railway

A fast, data-dense live football scores and sports analytics platform displaying real-time fixture details, standings, and automated match syncing.

footbally.net is a high-performance, data-dense football live tracking and analytics dashboard. It aggregates real-time data across global leagues, delivering live updates, team schedules, and historical standings in a polished interface optimized for high concurrent traffic.


⚽ Core Platform Features

1. Live Match Tracking & 30-Second Polling

  • Implements a low-latency live score scoreboard with automated 30-second polling to capture game events, cards, and goals instantly.
  • Displays detailed match configurations, referee allocations, stadium info, and lineup structures.

2. League Standings & Historical Statistics

  • Renders interactive league tables detailing points, matches played, goal differences, and home/away forms.
  • Tracks major international divisions: Premier League, La Liga, Serie A, Bundesliga, UEFA Champions League, and FIFA World Cup Qualifications.

3. User Personalization & Follow System

  • Secure user dashboard allowing fans to follow specific leagues, teams, and key players.
  • Delivers a personalized dashboard home feed showcasing active and upcoming fixtures tailored to the user’s custom following list.

🛠️ Technical Stack & Architecture

⚡ Unified Frontend & Router

  • Framework: Engineered on TanStack Start (React 19, TanStack Router, TanStack Query) for a type-safe, unified full-stack architecture with optimized client-side hydration.
  • Styling: Styled with Tailwind CSS v4 and shadcn/ui components to create a dark, highly professional, responsive score interface.

📦 Ingestion Engine & Background Jobs

  • Queues: Powered by Redis and BullMQ to orchestrate asynchronous background sync jobs:
    • update-live: Polls live match scores every 60 seconds during match days.
    • pull-fixtures: Runs daily to import upcoming fixtures and lineups.
    • pull-future-data / pull-league-data: Syncs historical league data on demand.
  • Database: Layered on PostgreSQL using Drizzle ORM for type-safe database schemas (football fixtures, standings, predictions, and follow lists).

🌐 Secure Infrastructure & Monitoring

  • Authentication: Built with Better-Auth for secure session management.
  • Hosting & Observability: Containerized via Docker and deployed on Railway, which handles database migrations, server routing, and background workers efficiently. System observability and error tracking are powered by Sentry (GlitchTip).