Overview

A zero-dependency single-page app with Google sign-in, serverless sync between phone sign-ups and a desktop admin console, Excel/CSV/JSON export and a digital membership pass.
The problem
Run registrations, member records and ID passes for a motorcycling club and its women's wing, Kundavai Krew, without spreadsheets passed around by hand.
How it works
Chennai Thrillers is a riders' club of 500+ members with a women's wing, Kundavai Krew. Before this, registrations and member records lived in spreadsheets passed between admins.
Riders sign up from their phones with Google, and their details sync through serverless functions to a desktop admin console. Admins can export the member list to Excel, CSV or JSON, and every member gets a digital membership pass.
Photos are compressed in the browser before upload, so a 10 MB phone photo becomes about 50 KB. The whole app is built without a framework.
What it does
- Google sign-in for riders
- Phone sign-ups synced to a desktop admin console
- Excel, CSV and JSON export
- Digital membership pass, drawn with the Canvas API
- In-browser photo compression
Built with
- JavaScript
- Node.js
- Vercel Functions
- Google OAuth
- Canvas API
In numbers
Built for a 500+ member club; photos shrink from 10 MB+ to about 50 KB
Try it live
The live version opens in a new tab, so you can explore it at full size.
Open Chennai Thrillers ↗