Building a Real-Time Booking and Campaign Platform Across Android, iOS, and Web for a Norwegian Salon Chain
Written by Nora L., Mobile & AI Engineer at Codanum
The Context
Akilles Frisørsalong was running bookings, vouchers, and in-store promotions across separate tools that didn't talk to each other. What the Norwegian salon chain wanted instead was one platform: Android and iOS apps plus a matching web version, all syncing in real time, with a single admin panel for staff to manage bookings, push notifications, and dynamic QR campaigns.
The Challenge
Three platforms syncing in real-time demands an architecture where a booking made on web updates mobile availability instantly and vice versa, with no stale state visible to any user. The dynamic QR code system for campaigns had to be server-resolved rather than static, so destination URLs could be updated without reprinting physical materials. Push notifications needed to reach both Android and iOS reliably from a single trigger, without separate management flows. The admin panel had to be operable by salon staff without technical training, covering promotions, vouchers, and bookings all in one place.
3
Platforms
Real-time
Sync
The Solution
Built with React Native for the Android and iOS apps and a React web application for desktop access, all three platforms share a single Firebase Firestore backend. Booking availability, voucher states, and campaign content stay consistent across every surface in real-time. Firebase Cloud Messaging handles cross-platform push notifications from a single send action in the admin panel. The voucher system generates uniquely validated discount codes tied to customer accounts. Dynamic QR codes are stored as server-resolved URLs, so the destination updates server-side without a reprint. The admin panel was built in React with role-based access, giving salon managers full control over bookings, promotions, and voucher issuance without developer involvement.
The Impact
Akilles Frisørsalong launched across all three platforms simultaneously with real-time sync from day one. The booking system eliminated scheduling conflicts across locations, and the push notification channel gave the chain a direct line to drive footfall during quieter periods. Dynamic QR campaigns run and update without reprinting in-store materials, and the admin panel has been operated entirely by salon staff since launch without technical support.
"Having booking, vouchers, and push notifications all in one place, working the same on phones and the web, changed how we run the day. Staff update a promotion from the back room and customers see it immediately."



