Chasemates – Real-Time Offroad Race Timing

Full Stack
Mobile Dev
Web Dev
Chasemates – Real-Time Offroad Race Timing

Tech Stack

React Native
Expo
Node.js
Socket.io
PostgreSQL
Prisma
Mapbox
Docker
Github Actions
Python
Nginx
AWS
Typescript
React Native Skia
Reanimated

Description

Chasemates is a full real-time race timing system designed for offline offroad events where network connectivity is unreliable. Marshals mark player progress live via Socket.IO with an HTTP fallback, and updates are reflected instantly on animated Mapbox maps visible to all spectators.

Audio communication between marshals runs over LiveKit (walkie-talkie style), and a real-time chat system keeps the team coordinated. Heavy game-like animations are implemented with React Native Skia and Reanimated to make the spectator experience feel alive.

The backend runs Node.js/Express/Prisma/PostgreSQL on AWS EC2, with a Python microservice (rembg) for profile background removal and FFmpeg for dispute video handling. The entire stack is Dockerized with Nginx and GitHub Actions CI/CD. Published on Google Play Store.

  • Real-time race timing with Socket.IO (HTTP fallback for offline venues); live Mapbox maps for spectators.
  • Walkie-talkie audio between marshals via LiveKit; real-time in-app chat.
  • Player registration and Stripe payments; guest/spectator mode without login.
  • React + TanStack Router + React Query admin web dashboard for event and course management.
  • Node.js / Express / Prisma / PostgreSQL on AWS EC2; Dockerized with Nginx and GitHub Actions CI/CD.
  • Python microservice (rembg) for profile background removal; FFmpeg for dispute video quality handling.
  • Mono-repo with shared TypeScript types and hooks across mobile, web, and backend. Published on Google Play.

Page Info

Live race tracking

Marshals mark player progress live via Socket.IO (HTTP fallback), reflected instantly on animated Mapbox maps for all spectators.

/projects/chasemates/live-match.jpg/projects/chasemates/live-streaming-chasemates.jpg

Audio & chat

Walkie-talkie audio between marshals using LiveKit; real-time chat system with heavy game-like animations built on React Native Skia and Reanimated.

/projects/chasemates/volunteer-mobile-app.jpg/projects/chasemates/app-screenshot-1.jpg/projects/chasemates/app-screenshot-2.jpg

Admin & backend

React + TanStack Router admin dashboard for event management and map drawing; Node.js/Express/Prisma/PostgreSQL on AWS EC2 with Dockerized Nginx and GitHub Actions CI/CD.

/projects/chasemates/dashboard.jpg

In Action & Field Testing

Real-world usage of Chasemates during offroad racing events, providing reliable offline tracking, dashboard monitoring, and communication for marshals.

/projects/chasemates/chasemates-in-production.jpg/projects/chasemates/me-using-chasemates-in-real-racing.jpg/projects/chasemates/app-screenshot-3.jpg/projects/chasemates/app-screenshot-4.jpg/projects/chasemates/app-screenshot-5.jpg/projects/chasemates/app-screenshot-6.jpg/projects/chasemates/app-screenshot-7.png

    Kevin Roan - React Native Developer