DVLCEAdvertising
← All work
Brand-to-booking build

Crownmark Barbershop

From brand to booking in one stack.
crownmark.hair
The problem

The shop wanted a booking experience that looked like the brand, read real calendar availability, and didn't require a monthly SaaS.

What we built

A custom 4-step date → time → form flow queries the owner's Google Calendar through a service account, returns only free 15-minute slots, and writes confirmed bookings back as events. ZeptoMail handles confirmations; a Cloudflare Pages Function routes contact-form mail.

Outcomes
  • 15-min race-safe slot allocation against live calendar freeBusy
  • Cinzel + Raleway identity with procedural SVG marble backdrop
  • Consent Mode v2 GA4 with custom booking-funnel events
Stack
Next.js 15Tailwind v4Cloudflare PagesPages FunctionsGoogle Calendar APIZeptoMailMailChannels

Want something similar?

Most of our projects start from a pattern we've already shipped. Tell us what you need.

Start a project