TelemetryAce

Free iRacing telemetry analysis, AI coaching, race statistics, and a Discord bot — all in one platform.

Coming Soon

What We’re Building

A complete toolkit for iRacing sim racers — from raw telemetry to actionable insights.

Telemetry Analysis

Upload .ibt files and compare laps side-by-side with interactive graphs for speed, throttle, brake, tyres, steering angle, and more.

AI Race Engineer

Get AI-powered coaching insights that compare your laps and identify where you can gain time — powered by Amazon Bedrock.

Race Cards & Stats

Explore race results, qualifying times, lap-vs-iRating scatter plots, and car distributions — shareable as PNG cards via Discord bot.

Discord Bot

Slash commands for driver cards, series cards, BOP charts, and calendar lookups — directly inside your Discord server.

Desktop App

Native Go application that watches your iRacing folder and auto-uploads .ibt telemetry files to the cloud as you race.

Calendar & Search

Browse the full iRacing schedule with series filtering, search for any driver by name, and view detailed race history.

The Team

Tractix Racing — a bang average team of sim racers who pride themselves on racing fairly, having fun, and being just quick enough to be annoying to their opponents.

Tractix Racing is a small, close-knit sim racing team competing in leagues for the love of the sport. Our focus is on camaraderie, clean racing, and enjoying every lap together.

Daniel Shillcock flag

Daniel Shillcock

Lead Developer & Team Driver

Full-stack engineer and 4K GT3 driver. Built every layer of Telemetry Ace — from the Next.js frontend and AWS infrastructure to the Go desktop app and Discord bot.

Helder Gonçalves flag

Helder Gonçalves

Team Driver

6K GT3 & Porsche Cup driver. Liable to find the shadowrealm when he features on stream.

Christer Halsoy flag

Christer Halsoy

Team Driver

3K GT3 driver.

Jarod Portwood flag

Jarod Portwood

Team Manager

Team manager.

Interested in joining?

Join our Discord and say hello.

Join Discord

Tech Stack

Every technology, service, and tool powering Telemetry Ace — from the browser to the cloud.

Architecture Overview

Requests flow from clients through the AWS edge layer into serverless compute and data stores.

🌐 Browser
🤖 Discord Bot
🖥️ Desktop App
Amplify SSR
CloudFront CDN
API Gateway
Next.js API
Lambda ×8
ECS Fargate
DynamoDB ×4
S3 ×5
Bedrock AI

Frontend

React meta-framework powering SSR, API routes, and static generation. Deployed on AWS Amplify with server-side rendering.

Component-based UI library driving the entire client-side experience.

Strict type-safe JavaScript used across the entire codebase — frontend, API routes, Lambda functions, and the Discord bot.

Utility-first CSS framework for rapid, consistent styling with a custom dark/light theme system.

Low-level D3-powered React visualisation primitives used for telemetry graphs, scatter plots, and brush-based zoom controls.

Interactive map rendering for satellite-view track maps with GPS coordinate overlays.

Clean, flexible icon library used throughout the UI.

Converts JSX components to SVG at the edge — the engine behind every card image rendered for Discord and web export.

html-to-image

Client-side DOM-to-PNG capture powering the "Download PNG" and "Copy" buttons on the Race Card page.

Backend & API

Next.js API Routes

Server-side endpoints for card generation, calendar data, search, and telemetry processing — deployed as Amplify SSR compute.

Handles Discord and Twitch OAuth sign-in with encrypted sessions stored in DynamoDB.

iRacing Data API

OAuth2 integration fetching race results, series schedules, driver stats, and lap data from iRacing's official API.

ibt-telemetry

Server-side parser for iRacing .ibt binary telemetry files — extracts laps, channels, and session metadata.

Card Image Lambda

Containerised Lambda using Satori + Sharp to render driver and series card images as PNGs for Discord embeds.

AI Processor Lambda

Lambda function invoking Amazon Bedrock and Comprehend for AI-powered telemetry coaching insights.

AWS Infrastructure

AWS Amplify

Hosts the Next.js app with SSR compute. Auto-builds on every GitHub push with environment variable injection and custom domain SSL.

Amazon S3

5 buckets handling telemetry file uploads (presigned URLs), processed data & card image cache, desktop app releases, static assets, and inbound email storage.

Amazon DynamoDB

4 on-demand tables: auth sessions/users, saved laps, iRacing race results (with GSI), and pre-computed weekly stats.

AWS Lambda

8 functions covering file storage, ibt processing, AI analysis, page-hit tracking, iRacing data sync (hourly cron), stats aggregation, email forwarding, and contact forms.

Amazon API Gateway

REST API for 5 endpoints plus an HTTP API for the card image Lambda — all with CORS and stage deployments.

Amazon CloudFront

CDN distribution with S3 origin and API Gateway integration for low-latency global delivery.

Amazon EventBridge

Two hourly cron schedules triggering iRacing results sync and stats aggregation Lambdas automatically.

Amazon ECR

Two container registries — one for the card-gen Lambda image, one for the Discord bot image.

Amazon ECS Fargate

Runs the Discord bot as a long-lived container (0.25 vCPU / 512 MB on Fargate Spot) with auto-restart.

Amazon SES

Inbound email receipt rules (S3 + Lambda forwarder) and outbound email for the contact form, with DKIM/SPF verification.

Amazon Bedrock

Foundation model invocation for AI-powered telemetry analysis and coaching insights.

Amazon CloudWatch

Centralised logging for all Lambdas and ECS tasks, plus a custom metrics dashboard tracking page views.

Discord Bot

Full-featured Discord API client powering slash commands for driver cards, series cards, BOP charts, and calendar lookups.

Slash Commands

/driver, /series, /bop — each generates a rich card image PNG embedded directly into Discord.

ECS Fargate Deployment

Runs 24/7 on Fargate Spot with Docker multi-stage builds, ECR image hosting, and VPC networking.

Desktop App

Gov1.22

Compiled desktop uploader application with system tray integration for automatic .ibt file detection and upload.

ibt Parser (Go)

Custom Go library for parsing iRacing .ibt binary telemetry files — extracts headers, ticks, channels, and car setup YAML.

System Tray

Uses getlantern/systray for native Windows system tray presence with go-toast notifications.

DevOps & Infrastructure as Code

All AWS infrastructure defined as code — S3, DynamoDB, Lambda, API Gateway, ECS, ECR, CloudFront, EventBridge, SES, IAM roles, VPC, and more. ~1500 lines of HCL.

Docker

Multi-stage builds for the card-gen Lambda (Node.js + Sharp native binaries) and Discord bot containers.

GitHub + Amplify CI/CD

Every push to main triggers an Amplify build & deploy. Card Lambda and Discord bot use manual deploy.bat scripts with ECR push.

Docker-based local AWS emulation (S3 + DynamoDB) for development without cloud costs.

ESLint + Prettier

Consistent code quality and formatting across TypeScript, with eslint-config-next and Prettier integration.

15+
AWS Services
8
Lambda Functions
4
DynamoDB Tables
5
S3 Buckets