RunIndex — Race Discovery Platform
A Next.js web application for discovering and browsing running races, with calendar views, geospatial search, and race detail pages.
01.Project Overview
Overview
RunIndex is a running race discovery platform that aggregates race data from multiple sources (RunSignUp, UltraSignup, Active Network) and presents them through a modern, searchable web interface with calendar, map, and list views.
Application Features
- Race Search & Discovery — Browse races by type (5K, 10K, Marathon, Ultra), date range, and location
- Calendar View — Monthly calendar layout showing upcoming races with quick-access detail cards
- Geospatial Search — PostGIS-powered distance queries for finding races near a given location
- Race Detail Pages — Individual race pages with description, difficulty rating, history, and registration links
- Quality Scoring — Each race receives a computed quality score (0–100) based on data completeness
Data Pipeline
The backend includes a multi-source ingestion pipeline built with LangGraph:
- RunSignUp — Parses race listings with date, location, and type extraction
- UltraSignup — Scrapes ultramarathon and trail race data with enrichment
- Active Network — Fetches mainstream road race events
- Deduplication — Cross-source matching via source IDs and fuzzy name/location matching
- Enrichment — Difficulty estimation, sponsor extraction, historical edition count, and quality scoring
Data is stored in PostgreSQL with PostGIS, using a normalized schema (races → race_events) with spatial and temporal indexes for fast queries.
Tech Stack
- Frontend: Next.js, React, TypeScript
- Backend: PostgreSQL + PostGIS, Supabase
- Data Pipeline: Python, LangGraph, multi-source scrapers
- Infrastructure: Docker, Docker Compose
Technologies
Next.jsReactTypeScriptPostgreSQLPostGISSupabaseLangGraph
Role
Full Stack Developer
Timeline
Jan 2026 - Present
Category
Full Stack / Geospatial