Mobile Bartending · Full Product

DMMC — A Booking Product,
Not a Website

Client
John Crosby
Year
2025
Role
Design + Engineering + Photography
DMMC booking wizard screens
$0
Apple commission
25%
Deposit at booking
120+
Photos shot
DMMC booking wizard — bar type selection, homepage, and duration screens
DMMC booking review and special requests screens

The Starting Point

John Crosby runs Drunken Master Mixing Crew — a mobile bartending business in Atlanta. He needed a way for potential clients to discover his services, get an instant quote, and book an event without downloading an app or making a phone call.

The constraint that shaped everything: no native app. Apple's 15-27% commission on in-app billing was a non-starter for a service business with real margins. The site needed to feel like a native app — bottom nav, full-screen step flows, smooth transitions — while living entirely in the browser.

The Booking Wizard

The core product is a multi-step booking wizard at /book. It walks clients through: bar type (Open, Premium, N/A Mocktail, Cash), guest count with tier selection, service duration, add-ons (Wedding Signature Cocktails, Birthday Cocktails, etc.), date and time, and contact details.

The price updates in real time at the bottom of every step. By the time a client hits submit, they've already seen exactly what they're paying — no quote request, no callback, no waiting.

State across the wizard is managed with Zustand persisted to sessionStorage. No backend round-trip between steps — the full booking object assembles on the client and submits once at the end. This kept the wizard fast and made it resilient to network hiccups mid-flow.

Stripe Checkout handles a 25% deposit at booking. Resend sends confirmation emails. Supabase stores the booking record and handles admin auth so John can manage availability and view bookings.

The Central Trade-off

Web-native over native app was the right call for the business reason stated above. But it created a real design constraint: mobile browser chrome (address bar, bottom safe areas, notch) means you're never truly full-screen the way a native app is.

The solution was treating the bottom nav as a fixed UI element that accounts for safe area insets, using viewport height units carefully, and leaning into the step-flow pattern instead of fighting it. The result feels native enough that most users won't think about what they're using — which is the goal.

The Photography

120+ photos from a shoot at Torched Hop Brewing Company in Atlanta. Brick wall bar setting, craft taps, bottles, John behind the bar. Selected 6 hero and background shots for the site. The photography is doing real work — it's the difference between a booking tool that feels transactional and one that makes you want to hire the person.

What I'd Do Differently

The admin dashboard for John is functional but minimal. He can view bookings and manage availability but the interface is utilitarian. A more considered dashboard — with booking status, revenue summary, calendar view — would make this genuinely useful as a business operations tool, not just a data store.

The add-ons pricing logic is also hardcoded in the wizard. As John adds new services or seasonal packages, that requires a code change. A simple admin interface to manage add-ons and pricing without touching the codebase would be the right next step.