01The studio’s day on one screen
“Today” shows the shoot in progress with a countdown, the next booking, counters for enquiries, messages, drafts and tasks, and the month’s money — only for those whose role gives them access to money. A staff member gets the day without amounts, payment, source or guest contacts: the role trims the data on the server rather than hiding it in the interface.
02Banking-app-grade security
Sign-in is by email and password; after that, a device key lives in the keychain of that phone only, with no iCloud sync. Face ID or a fingerprint on launch and after 30 seconds away from the app, a privacy screen in the app switcher, screenshots and screen recording blocked in release builds, client data only in memory, Android backup turned off, network traffic over https only. A temporary password doesn’t get you in, and changing a password or role in the CRM kills the key on every phone.
03Push straight to Apple and Google — with buttons
The server signs its own requests to APNs (HTTP/2, JWT ES256) and to FCM v1 with a Google service account — no Expo, no middlemen. One line means one notification; several become a digest. Notifications carry actions — close a task, take a task or an enquiry — and the server performs them even when the app is closed; repeats are safe, and if a colleague has already taken the enquiry, the app says so.
04The “Shoot in progress” Live Activity
On the lock screen and in the Dynamic Island: which set is shooting, until when, a countdown and a progress bar, plus how many more shoots there are today. On Android it’s a pinned notification that clears itself when the booking ends. No guest names or amounts there: everyone around can see a lock screen.
05Widgets and one-tap “Capture”
“Today” widgets for the home screen and the lock screen on iPhone and for the home screen on Android: what’s on now, what’s later, how many tasks. The system recalculates the widget’s schedule at the minutes bookings start and end and at the studio’s midnight, so it stays correct even offline. “Capture” opens from a Control Centre button, the Action button, Siri and Spotlight on iPhone, and from a quick-settings tile on Android.
06“Capture” in your pocket: confirm, edit, reject
The same parsing as in the CRM: type “Jane booked Rooftop Nov 20 2–6pm, $450 Peerspace” and you get a draft booking with the doubtful fields highlighted. A confirmation queue with native menus and date pickers, and “Confirm all” in one tap; a double booking is refused with an explanation of who is already booked and where. New bookings, tasks, enquiries and expenses are created by the same server functions as in the CRM, so the rules and the log are shared.
07Recording a client meeting
Like a voice recorder: a waveform, a timer, pause — and the phone can be locked while recording carries on in the background. Audio is recorded in 20-minute parts; the server stitches them into one file without re-encoding, parsing the MP4 container by hand, and transcribes it with timestamps per part. A couple of minutes later, “Capture” has a draft with the client, the dates and the budget, and the audio can be played back, jumping from phrase to phrase. The audio is kept for 7 days; the transcript, for good.
08Sheets, animations and error reports
Payment, rescheduling, task status and checkpoints open in sheets over the list — native formSheets on iOS and Android. Lists fade in with a stagger, “done” ticks land instantly while the request is still on its way to the server, and all of it respects the system “Reduce Motion” setting. JavaScript errors from phones reach the server anonymised — emails and long numbers masked — and identical ones are grouped together.