ProjectsClient project

Set Hub — the app where guests book the studio

An app for iPhone and Android through which regular guests book sets directly, with no platform fees: a time tape driven by live availability, booking around a taken hour, finding a set from a reference photo, golden hour on the rooftop and getting into the studio with Face ID — even in a basement with no signal.

  • Expo · React Native · Swift
  • Stripe Checkout
  • Live Activities · App Intents
  • NOAA · National Weather Service
  • Visual Intelligence · CoreLocation
Set Hub — for guests

By the numbers

35 minthe slot is held while the guest pays: the free-or-not check and the write run under a database lock
3segments in one booking that goes around someone else’s — for the price of one booking, with the break not billed
±3 minaccuracy for sunset and golden hour: the NOAA formula is checked against the tables
150 maround the studio — and the iPhone reminds the guest how to get in on its own; the guest’s location never leaves the phone

The problem

Regular guests were booking the studio through Peerspace and Giggster: the platforms take a cut of every booking, while the studio doesn’t know the guest and can’t offer them a membership. There was already a website with its own booking, but on a phone a guest needs more: to see availability, book in a minute, find the door and the code on the day of the shoot, extend the shoot if they run over, and send the address to the crew — without everyone having to sign up.

What’s inside

Booking on a time tape

The day, start and duration are picked on tapes marked in half-hour steps, and availability is calculated from the bookings of every channel — Peerspace, Giggster, the website, direct. The server does the pricing: 10% off from 4 hours, 15% from 8, a full day at a fixed price, add-ons and cleaning. The slot is held for 35 minutes while the guest pays in Stripe Checkout: the check and the write happen under a database lock, so two guests can’t take the same hour, and a timer releases unpaid holds.

Booking around a taken hour

If something in the middle is taken, the app offers to split: noon to 4 with 2–3 taken becomes 12–2 and 3–5 for the price of one booking, and the break isn’t billed. Each segment is a booking of its own for the calendars and the double-booking check, while the amount, payment, emails and review stay with the first one. The minimum segment, the maximum break and the number of segments are set by the owner in the CRM, and the server won’t accept a booking that breaks those rules.

A set from a reference photo

The guest shows a mood board or a still from a music video, and the server compares it with a contact sheet of the main photos of all 19 sets and returns three sets with a match percentage and an explanation. The model’s answer is held to a strict schema: the set name can only come from the studio’s list. Without the model, matching falls back to the palette: k-means on a 48×48 version of the image against the sets’ palettes. On an iPhone with Apple Intelligence, sets can also be found through Visual Intelligence. The photo is never stored anywhere.

Golden hour on the rooftop

For the rooftop, the app calculates the sun’s position with the NOAA formula for the studio’s coordinates, taking clock changes into account — sunset, golden hour and blue hour to within ±3 minutes — and pulls the forecast from the US National Weather Service. Golden-hour ticks on the tape are highlighted in amber, and the “Catch it” button sets the start half an hour before it.

Shoot day: how to get in, even offline

A day before the start, “how to get in” opens up: the door code, the floor, the Wi-Fi. The text sits behind Face ID, hides when the app goes into the background, and until the booking ends it stays in the keychain of that phone only — so it opens even in a basement with no signal. At the door, the iPhone reminds the guest on its own: the system watches a 150-metre circle around the studio, the app doesn’t need to run in the background, and the guest’s location never leaves the phone.

Live Activity, reminders and a one-hour extension

Three hours before the start, “Starts soon” appears on the lock screen; during the shoot, “On set” with a countdown and a progress bar; on Android, a pinned notification. Local reminders fire a day and an hour before. Running over? “Extend by an hour”: if the next hour is free, the booking is extended at the same price as if the whole time had been booked from the start, with a separate payment. If the time is taken, the guest can join a waitlist and get an email as soon as it frees up.

A link for the crew, no app needed

A signed link opens a page for the crew: the time, the address with maps, “how to get in”, the rules, parking, “add to calendar”. A cancellation shows up immediately, and six hours after the end the page says “That’s a wrap”. After the shoot there’s a 1080×1920 Stories card with a photo of the set, without the guest’s name or the amount.

Perks, memberships and messages

The discount grows with the number of visits, a membership is a Stripe subscription with hours each month, and hour packs and gift cards apply themselves in a strict order: membership hours, the pack, the discount, the card. Conversations with the studio happen inside the app, and “Request a change” creates a task for the manager. Account deletion is right in the app, as Apple requires.

Screens

Set page: photos, hourly rate, size, capacity and minimum hours
Set page: photos, hourly rate, size, capacity and minimum hours
Booking around a taken hour: 12–2 and 3–5, with the break not billed
Booking around a taken hour: 12–2 and 3–5, with the break not billed
Golden hour on the rooftop: 4:17–5:09, sunset at 4:53 and the weather forecast
Golden hour on the rooftop: 4:17–5:09, sunset at 4:53 and the weather forecast
A set from a photo: the reference’s palette and three matching sets with an explanation
A set from a photo: the reference’s palette and three matching sets with an explanation
The door code is behind Face ID: only the phone’s owner can open it
The door code is behind Face ID: only the phone’s owner can open it
“How to get in”: the code, the floor and the Wi-Fi — it opens even offline
“How to get in”: the code, the floor and the Wi-Fi — it opens even offline
The “On set” Live Activity: the set, the time and a countdown on the lock screen
The “On set” Live Activity: the set, the time and a countdown on the lock screen
The membership, an hour pack and a personal discount apply themselves
The membership, an hour pack and a personal discount apply themselves
A Stories card after the shoot: the set and the date, without the name or the amount
A Stories card after the shoot: the set and the date, without the name or the amount

Technology

Expo SDK 58 and React Native, with a core shared with the team app. The catalogue is cached on the phone, so from the second launch the first screen opens without waiting for the network. The server is the same SetHub: 21 API routes for guests, sign-in with a six-digit code by email, only key hashes in the database, and Stripe Checkout for bookings, extensions, memberships and gift cards. The sun calculation is our own module built on the NOAA formulas and checked against the tables.

The native parts are in Swift: the Live Activity, App Intents for Visual Intelligence and the “You’re nearby” module built on UNLocationNotificationTrigger. A privacy manifest is ready for the App Store, and every icon button has a VoiceOver label. Testing turned up a battery drain — animating the photo inside the logo forced a WebP decode on every frame, eating one and a half CPU cores; the animation was moved to a wrapper view, and the load dropped sixfold. The app has been built and tested on the iPhone simulator and the Android emulator; publishing to the App Store and Google Play comes once the studio’s developer account is registered.

Want your clients to book with you directly?

If you pay platforms a commission on your regular clients, an app with your own booking pays for itself quickly. Tell us how your bookings work, and we’ll show you what can move onto your guests’ phones.

WhatsApp