Case Study
AutoMedic
A full platform for a Montreal mobile mechanic business. Custom booking engine with live slot availability, admin dashboard with instant database sync, and bilingual support. All built from scratch.
- Zero double-bookings
- Email + SMS with .ics
- Bilingual EN / FR
What it took to make AutoMedic run.
HTML · vanilla JS
vanilla JS · Bearer
Functions · KV · Google reviews
REST · Railway
single instance · unique-slot index
row-locked tx · unique-slot index
bcrypt · in-memory Bearer
Resend email · Twilio SMS · .ics
Transactional booking
Bookings commit inside PostgreSQL transactions: no double-books, no race conditions. Two customers cannot win the same slot.
An admin panel that runs the day
Live schedule, service CRUD, date overrides, and revenue stats in one dashboard, synced instantly with the database.
Notifications that arrive
Resend email and Twilio SMS confirmations, each with an .ics calendar attachment, so appointments land where customers actually look.
Bilingual by default
English and French with runtime switching and locale detection. Built for how Montreal actually talks.
For a mobile mechanic, the calendar is the business. Every double-booking is a missed job, a wasted drive, or a customer waiting in a parking lot for a van that is not coming.
AutoMedic replaced the phone-and-notebook workflow with a booking engine that knows, in real time, exactly which slots exist and refuses to sell the same one twice.
Built with
- Node.js
- Express
- PostgreSQL
- Resend
- Twilio
- Railway
- Cloudflare
Let's talk about what you're building.
30-minute call. No pitch, no pressure. Just a conversation about your systems.