Hurryline
BackHurryLine was built for a Canadian client, as part of a three-person full-stack team. I worked on it both as a developer, across both layers, and as project manager. The real challenge wasn't digitizing bookings, it was making three spaces (client, station, admin), a real-time multi-party payment system, and a platform equally smooth on mobile and laptop all work together without compromise. The platform is mobile first, built as a PWA, and fully responsive, laptop, tablet, mobile, same experience everywhere. The concept: car wash stations register, clients book a precise time slot or join a queue depending on how busy the station is. Each station configures its own services and add-ons with pricing, and clients build their booking step by step, with geolocation, advanced filtering, and direct navigation to the chosen station. Sign-in works through email or Google OAuth. The most demanding part of the project is Stripe Connect. Every transaction has to split automatically between the station and the admin, handle tips, calculate Canadian taxes on the fly, and never lose a payment event along the way. That meant hardening every webhook so money always lands in the right place, with no manual intervention, even when a service runs past its scheduled slot. Behind the app, several automated jobs run continuously to keep the system clean and reliable: cleaning up bookings abandoned mid-payment on Stripe, handling no-shows (client absent, station didn't cancel) by automatically freeing up the slot, and sending booking reminders at 24 hours, 5 hours, and 30 minutes before. A real challenge on its own was optimizing all these backend processes, with that volume of flows and requests, the goal was to keep the app fast without driving infrastructure costs through the roof for the client. The promotion system pushes that flexibility further: admins generate a QR code granting a commission discount to a station for a chosen period, up to 100%. Any user who signs up through that QR code automatically triggers that discount for the station on their future services, calculated in real time on every transaction. The rest follows the same logic: stations manage bookings live, cancel, reschedule, request extra time, each action triggering an instant push notification. Stations go through a KYC process to confirm they're real, legitimate businesses. Users get full booking history, exportable receipts, a dispute system with tickets sent directly to admin, and the ability to export their own data. Technically, HurryLine runs on Next.js, PostgreSQL, Redis, and Drizzle as the ORM, with Stripe and Stripe Connect for payments, Firebase FCM for push notifications, and Resend for emails.
Links