Built around her business, not a template of one.
A real client, a real business. The site was built around how Vanessa actually works, not how a florist website usually looks.
Visit the live site (opens in a new tab)
A florist with no shop to point a camera at.
Floralibus is a real client: Vanessa, a traditional York florist, six years into the trade, running the business from home since 2021. The first proper conversation surfaced the thing that shaped everything after it: there's no studio, no workshop, no shopfront. It's her house. Most florist sites assume a shop to photograph and hours to publish. Hers doesn't have either, so the build couldn't either.
The job of the site is simple: turn interest into a conversation. No online payments, no basket, no checkout, because that's not how she takes orders, just a single form that asks the right questions for whatever someone's after, a wedding, a birthday, a one-off bouquet.
The site says what's actually true, not what a florist site usually says.
Once it was clear the business runs from home, studio and workshop came out of every page. Consultations happen over tea or over the phone, because that's what actually happens, not because it sounds nicer. The old "Find us" section promised a place that doesn't exist, and got rewritten as "Talk it through", because that's what she'd actually said.
The same listening went further than the obvious stuff. There was no testimonial yet, a genuine gap this early on, so the placeholder got deleted rather than filled with something invented to look further along than the business actually is. There are no fixed opening hours, the business is always open, so the "opening hours" field became Availability note and shipped blank rather than filled with hours nobody keeps. Gallery captions describe only what she actually said was in each photo, no invented names, no invented dates, no invented venues, because guessing isn't listening.
None of this shows up as a feature on the page. It's just what happens when the brief is a specific person's actual business, not a generic template with her name dropped in.
Fast, tested, and honest about what's still open.
Built on Next.js 16 and Payload, on Postgres, with Vercel Blob for media and Resend for the email. Every CMS field is an optional override: leave it blank and the page keeps a sensible built-in default instead of breaking. That pattern earned its keep twice. Production's gallery started empty, so twenty-two real photographs ship as code defaults and the lookbook works with zero rows in the database. The contact details ship the same way, so Vanessa only ever touches what's actually changing.
The enquiry form is a single form that adapts to what's being asked, wedding, celebration, venue, one-off piece, or something else, showing only the fields that apply. Submitting writes the enquiry to the database first; the confirmation and notification emails are best-effort after that, so a failed send can never lose a saved enquiry.
Deployed PageSpeed: 95 on mobile, 100 on desktop. Accessibility, SEO and best practices all 100. Getting there took three failed attempts on the hero video before the fix landed: the poster image now renders underneath the clip, since a still paints faster than video and can't be un-painted by a same-size frame arriving behind it.
What's still open, because it isn't launched yet: the privacy notice needs a proper legal read, and two lines on the site are still waiting on Vanessa's confirmation before they're presented as settled fact.

