Projects

ChillRide

A group-ride app for motorcycle riders.

Christian Jake Supnet

In progress
Category
Motorcycle
Platform
Mobile, Realtime
Year
2026
Started
Developer
Jake
Stat
117
commits so far
Stat
25
architecture decision records
Stat
4
apps: API, realtime, worker, mobile

Preview

Architecture

Still being built. Screens come once it's further along; for now, this is how it's put together.

A group-ride app for motorcycle riders. A group starts a ride and everyone shares their location on one live map, keeps chatting on the way, and gets a history of every ride. Checkpoint alerts, group voice and a feed for each group come next.

What's Included

The Problem

On a group ride the riders spread out: someone falls behind, misses a turn or stops, and the rest only find out at the next stop. ChillRide keeps the whole group on one live map while they ride.

By the Numbers

Under the Hood

  1. Highlight 01

    One map update per tick, not per ping

    Each rider鈥檚 ping is written to Redis instead of being rebroadcast to the group. A tick loop per ride sends one snapshot every second or two, about 95% fewer messages for a 20-rider group, which is what lets a phone last a three-hour ride.

  2. Highlight 02

    Redis for the ride, Postgres for the record

    Live positions sit in a Redis hash with a TTL. When the ride ends, a worker simplifies the track with PostGIS and stores it as one line, so raw pings never flood the database.

  3. Highlight 03

    Realtime as its own deployable

    Live positions and chat go through a separate NestJS WebSocket gateway, so a busy ride doesn鈥檛 slow the REST API. Both come from one codebase and verify the same tokens.

  4. Highlight 04

    Location that survives a locked screen

    Position sharing keeps running in the background when the rider locks the phone, which is how a phone spends most of a ride.

  5. Highlight 05

    A database role that can鈥檛 rewrite history

    The app connects as a role that can鈥檛 create tables or change the audit log. Migrations run with their own role, and every route is denied unless it opts out.

Information

Developer
Christian Jake Supnet
Category
Motorcycle
Platform
Mobile, Realtime
Timeline
Since August 2026 路 Phase 0 in progress
Role
Main developer in a team of four: architecture, backend and the mobile app (109 of 117 commits)
Stack
TypeScriptNestJS 11Socket.IOBullMQDrizzle ORMPostgreSQL + PostGISRedisExpoReact Nativereact-native-mapsTanStack QueryZodpnpm + TurborepoDocker

More Projects

Hide quick actions