A modern, fast, speedrunning leaderboard platform built with React, TypeScript, and Vite as an open-source and ad-free alternative to traditional database sites like Speedrun.com. Runs can be mass imported from SRC using the public API (see our working WR progression graph!). As an example, this project is currently set up to mirror the Speedrun.com leaderboards for LEGO Star Wars: The Video Game. The site is designed to be easily configured using the admin page at runtime with minimal code edits or rebuilding required. A fork or branch with significant improvements to the code structure and multi-game support is planned.
- Verified runs and total time - Track the total number of verified runs and time the game has been played.
- Recent Runs - View the most recently submitted runs.
- Game Details - Game details are part of the site header.
- Full Game Leaderboards - Track runs across different categories (Any%, 100%, Free Play, etc.)
- Individual Level Runs - Separate leaderboards for each level with different categories.
- Community Golds - Community Gold splits leaderboard for each category and level.
- Platform Filtering - PC, PS2, Xbox, GameCube. The leaderboard is filtered by platform by default.
- Run Types - Solo and Co-op runs. Solo runs are default.
- Filtering - Filter by category, platform, run type, and level for ILs and CGs.
- Real-time Rankings - Automatic rank calculation with stud icons for top 3 positions.
- Pagination - Paginated leaderboards, points leaderboard, and admin views for easier viewing of large tables.
- "Balanced" Points System - Points system rewards total runs submitted and Top 3 across all categories.
- Points Leaderboard - Top players ranked by total points.
- Customizable Profiles - Profile pictures, bios, and pronouns.
- Name Colors - Customize your display name color.
- Run Statistics - View total runs, best rank, filter runs.
- Run History - See all submitted and pending runs.
- Twitch Integration - Add your Twitch username to appear on the live page.
- Run Claiming - Claim imported runs that match your SRC username in user settings.
- Easy Submission - Submit runs with video proof (YouTube).
- Multiple Leaderboard Types - Submit Full Game, Individual Level, or Community Gold runs.
- Category Selection - Choose from available categories for each leaderboard type.
- Level Selection - Select levels for IL and Community Gold submissions.
- Run Verification - Admin verification system for submitted runs.
- Run Claiming - Claim runs imported from speedrun.com or manually submitted by matching your display name.
- Official Stream - Embedded Twitch player for the official community stream.
- Community Streams - Automatically displays community members streaming when official stream is offline.
- Live Status - Real-time status checking for all streams.
- Chat Integration - Twitch chat embedded.
- Organized Resources - Tools, guides, save files, and more.
- File Uploads - Support for both file uploads using uploadthing and external links.
- Categories - Organize downloads by category.
- Images - Downloads can have an image attached to them.
- Overview - An overview of all the major statistics.
- WR Progression - A fully featured WR progression graph that allows looking at the WR progression in any category, run type, and leaderboard type. Works with mass importing runs from SRC to import the full history.
- Recent WRs - A table showing the most recent WRs by date.
- Longest WRs - A table showing the longest WRs by period of time, allows filtering by oldest currently held records.
- Run Management - Verify, reject, or delete runs.
- Manual Run Addition - Admins can manually add runs.
- Speedrun.com Import - Import runs directly from speedrun.com using the API with automatic mapping.
- Import Full Game and Individual Level runs
- Automatic category, platform, and level mapping
- Duplicate detection to prevent importing existing runs
- Player matching indicators (checkmarks for matched players, warnings for unmatched)
- Edit imported runs before verification
- Filter and paginate imported runs by category, platform, level, and run type
- Clear all imported runs functionality
- Category Management - Create, edit, delete, and reorder categories.
- Support for different categories per leaderboard type (Regular, Individual Level, Community Golds)
- Disable categories for specific levels
- Level Management - Manage levels for Individual Level and Community Gold leaderboards.
- Disable categories for specific levels
- Platform Management - Manage available platforms.
- Download Management - Add and organize downloads using uploadthing (tools, guides, save files).
- Admin Management - Add or remove admin privileges.
- Points Backfill - Recalculate points for all verified runs.
- Catppuccin Mocha - Beautiful, consistent pastel color scheme throughout
- Smooth Animations - Polished animations and transitions
- Fast Performance - Optimized queries and data fetching
- Run Details Page - Detailed view of individual runs with verification status
- Shows "Imported from Speedrun.com" for imported runs with link to original run
- Displays verification status and verifier information
# Install dependencies
npm install
# Start development server
npm run dev
# The app will be available at http://localhost:8080# Build the application
npm run build
# Start production server
npm startNote: For development, always use npm run dev. The production server (npm start) requires a build first.
- Frontend: React 18 + TypeScript
- Build Tools: Vite & rolldown-vite
- Javascript Tools: Oxc
- Styling: Tailwind CSS + Catppuccin Mocha
- UI Components: shadcn/ui
- Routing: TanStack Router
- Database: Firebase Firestore
- Authentication: Firebase Auth
- File Uploads: UploadThing
- External APIs: Speedrun.com API integration
- Analytics: Vercel Analytics
- Deployment: Vercel
- Create API documentation.
- Add more robust error handling for speedrun.com API rate limits.
- Overhaul the codebase to handle multi-game support.
This project is designed to be forked for other speedrunning communities. The codebase is structured to be easily adaptable to different games and leaderboard structures and is configurable with GUI tools on the admin page similarly to Speedrun.com.
Technologies
- React - The library for web and native user interfaces
- Vite - The Build Tool for the Web
- Rolldown - Fast Rust-based bundler for JavaScript
- Oxc - A collection of JavaScript tools written in Rust
- Vercel - Deployment and hosting
- Firebase - Authentication and storage
- uploadthing - File uploading
Design
- Catppuccin - Beautiful color scheme (Mocha palette)
- shadcn/ui - UI component library
This project is licensed under the MIT License - see the LICENSE file for details.
This project is open source and available for forking and modification for other speedrunning communities.
Built with ❤️ for the LEGO Star Wars speedrunning community