Portfolio demo · fictional hotel, made-up data
Cove Laundry
Guests scan a code in their room, photograph their basket and list every item. Staff collect it, tick each piece off, wash, dry and fold, then close the job with a photo. The guest gets a notification the moment it's done.
Guest view Web app, opened from the room QR code
Staff view Android app for the laundry team
Both views share one set of orders, the same way two phones share one database in the real app.
Try the full loop
Each step ticks off as you do it. Steps jump you to the right screen.
Laundry service
Send us your basket
Scan with your phone camera. We collect from your door and bring it back washed, dried and folded.
Simulate a scan
Sample code for this demo. It isn't linked to anything.
How the real app works
Built for a working accommodation operator. This page recreates it in the browser with a fictional hotel.
One codebase, two apps. React Native and Expo Router build the staff Android app and the guest web app from the same screens.
Rules in the database. Supabase enforces one open basket per room, five per room a day, fifty per property a day, and valid room numbers only.
Push when it's ready. An edge function sends a web push through Firebase as soon as staff mark a basket complete.
Works with no signal. Staff can log and finish a basket fully offline; it uploads by itself once the phone reconnects.
A dashboard for managers. Orders per day, turnaround, status mix, staff output and busiest rooms.
Cobalt Cove Hotel, its guests and its staff are invented. Orders you make are kept in this browser only and feed the dashboard.