A comprehensive web-based dashboard for analyzing iRacing telemetry data with professional-grade insights and AI-free analytics.
- Session Statistics: Total sessions, best lap times, consistency metrics, max speeds
- Recent Sessions: Quick access to your latest racing sessions
- Performance Trends: Visual insights into your driving progress
- Modern UI: Smooth animations and responsive design
- Drag & Drop Upload: Easy IBT file uploading with validation
- Automatic Parsing: Extract telemetry data, lap times, GPS coordinates
- Track & Car Recognition: Automatic detection from filename patterns
- Data Validation: Ensures clean, accurate telemetry data
- Session List: View all your racing sessions with sortable data
- Detailed Views: Comprehensive session analysis with lap breakdowns
- Fastest Laps: Highlight your best performances across sessions
- Track Categorization: Organize sessions by track and car
Professional rule-based analysis providing actionable insights:
- π¦ Braking Performance: Consistency, threshold braking analysis
- β‘ Throttle Control: Smoothness, progressive application metrics
- ποΈ Speed Management: Corner speed consistency and optimization
- π― Corner Performance: Entry/exit analysis, momentum preservation
- β±οΈ Lap Time Performance: Comparison against personal bests
- 0-100 Point Scale: Clear performance metrics
- Color-Coded Status: Excellent (Green), Good (Blue), Needs Improvement (Yellow), Poor (Red)
- Specific Suggestions: Actionable advice like "Focus on threshold braking" or "Improve corner exit speed"
- Racing Line Maps: GPS-based track visualization with speed color-coding
- Telemetry Graphs: Speed, throttle, brake, and steering traces
- Lap Time Charts: Visual comparison of lap times with trend analysis
- Performance Bars: Visual representation of consistency metrics
- Secure Login: Email-based authentication with session management
- User Isolation: Each user's data is completely separate
- Session Persistence: Stay logged in across browser sessions
- Node.js 18+ and npm
- SQLite (included)
- Modern web browser
-
Clone the repository
git clone <repository-url> cd iracing-dashboard
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env.local # Edit .env.local with your configuration -
Initialize the database
npm run db:init
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:3000
- Create Account: Sign up with your email address
- Upload IBT File: Drag and drop your iRacing telemetry files
- View Sessions: Browse your uploaded sessions in the Sessions tab
- Analyze Performance: Use the Analytics tab for detailed lap analysis
- Format:
.ibtfiles from iRacing - Size Limit: Up to 100MB per file
- Content: Must contain valid telemetry data with GPS coordinates
- Select Session: Choose from your uploaded sessions
- Pick Lap: Select specific lap for detailed analysis
- Review Scores: Check performance metrics (0-100 scale)
- Follow Suggestions: Implement recommended improvements
- Compare: Track progress across sessions
- Framework: Next.js 15 with App Router
- Language: TypeScript for type safety
- Styling: Tailwind CSS with custom animations
- State Management: React hooks with tRPC
- Icons: Lucide React for consistent iconography
- API: tRPC for end-to-end type safety
- Database: SQLite with better-sqlite3
- Authentication: better-auth for secure sessions
- File Processing: Custom IBT parser for telemetry data
- Telemetry Parser: Custom IBT file decoder
- GPS Processing: Coordinate validation and track mapping
- Analytics Engine: Rule-based performance analysis
- Data Validation: Comprehensive input sanitization
iracing-dashboard/
βββ src/
β βββ app/ # Next.js app directory
β β βββ api/ # API routes
β β βββ globals.css # Global styles & animations
β β βββ page.tsx # Main application page
β βββ components/ # React components
β β βββ auth/ # Authentication components
β β βββ DashboardLayout.tsx
β β βββ LapAnalytics.tsx # Main analytics component
β β βββ Navigation.tsx # Sidebar navigation
β β βββ PerformanceInsights.tsx
β β βββ SessionsList.tsx
β β βββ ...
β βββ lib/ # Utility libraries
β β βββ auth.ts # Authentication configuration
β β βββ db.ts # Database setup
β β βββ ibt-parser.ts # IBT file parser
β βββ server/ # tRPC server
β β βββ api/
β β βββ routers/ # API route handlers
β βββ types/ # TypeScript definitions
βββ public/ # Static assets
βββ scripts/ # Database initialization scripts
βββ package.json
# Database
DATABASE_URL="./iracing.db"
# Authentication
AUTH_SECRET="your-secret-key"
AUTH_TRUST_HOST="true"
# Application
NEXT_PUBLIC_APP_URL="http://localhost:3000"The application uses SQLite with the following main tables:
racing_sessions: Session metadata and telemetrylap_data: Individual lap informationusers: User accounts and authentication
Our analytics engine uses proven racing principles:
- Braking Analysis: Measures consistency using standard deviation of brake pressure
- Throttle Control: Calculates smoothness by analyzing input variations
- Speed Management: Evaluates corner speed consistency and optimization
- Lap Time Comparison: Benchmarks against personal and session bests
- Data Normalization: All inputs validated and normalized (0-100%)
- Consistency Metrics: Statistical analysis of driving patterns
- Comparative Analysis: Performance relative to driver's best efforts
- Actionable Insights: Specific, implementable suggestions
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes with proper TypeScript types
- Test thoroughly with sample IBT files
- Submit a pull request with detailed description
- TypeScript: Strict mode enabled, no
anytypes - ESLint: Follow configured linting rules
- Formatting: Use Prettier for consistent code style
- Testing: Add tests for new analytics features
- Use GitHub Issues for feature requests
- Provide detailed use cases and examples
- Consider backward compatibility with existing data
- Multi-Session Comparison: Compare performance across multiple sessions
- Setup Analysis: Correlate car setup with performance metrics
- Weather Integration: Factor weather conditions into analysis
- Sector Analysis: Break down track performance by sectors
- Export Reports: PDF/CSV export of analysis results
- Data Compression: Reduce database size for large datasets
- Caching Layer: Improve load times for frequently accessed data
- Background Processing: Async analysis for large files
This project is licensed under the MIT License - see the LICENSE file for details.
- iRacing: For providing the telemetry data format
- Racing Community: For feedback and feature suggestions
- Open Source Libraries: All the amazing tools that made this possible
- Issues: Use GitHub Issues for bug reports
- Documentation: Check the
/docsfolder for detailed guides - Community: Join discussions in GitHub Discussions
Happy Racing! π
Built with β€οΈ for the iRacing community