Pinwheel.
All Articles
Case StudyMedusa.jsHeadless CommerceFloristNext.js

Edith Wilmot: Building a Luxury Florist's Entire Commerce Operation on Headless Medusa

A 600-product luxury florist needed a store they own end to end — not a template, not a plugin. Here's how we built Edith Wilmot on a headless Next.js + Medusa v2 stack, with the team's media and tooling fully in their hands.

PinwheelEngineering Team, Pinwheel Media Ltd
·22 June 2026·7 min read

Edith Wilmot is a luxury florist in Bristol, offering same-day flower delivery across the city for weddings, gifts, sympathy and funeral tributes, and seasonal bouquets, with a flower subscription service in preparation. Their catalogue runs to more than 600 products.

When a brand positions itself at the luxury end of a market, the digital experience has to carry that positioning — and the platform underneath has to be something the business genuinely owns, not a rented assembly of plugins. Edith Wilmot came to Pinwheel for exactly that: a complete, custom-built commerce platform, built from the ground up. This is how we built it.

The Brief

The brief was clear, and it was ambitious in the right way: build the whole thing, make it fast, and make it ours.

"Ours" is the word that shaped most of the decisions that followed. A lot of florist e-commerce runs on template-driven platforms or specialist florist plugins, where the business is effectively a tenant — the product catalogue, the images, the checkout logic, and the customer data all live inside someone else's system, on someone else's terms. That works until you want to do something the platform wasn't designed for, or until the pricing changes, or until you want to move.

Edith Wilmot wanted the opposite: a platform they own end to end, from the storefront customers see to the database that stores the orders to the object storage that holds every product photograph. A luxury brand should not be renting its own shopfront.

What We Built

We built Edith Wilmot as a fully headless platform — a clean separation between the storefront and the commerce engine — so each layer could be designed and optimised on its own terms. Here's the stack and what each part does.

A Next.js Storefront on Vercel

The customer-facing store is a bespoke Next.js application, server-rendered and deployed to Vercel's global edge network. Server rendering matters for two reasons here: it keeps pages fast and responsive on mobile, where most florist traffic lands, and it gives search engines fully rendered HTML to crawl — important for a brand-new store that needs to be discovered.

The design is mobile-responsive and built to do justice to the product. The full catalogue of 609 products is organised around the brand's core occasions — weddings, gifts, sympathy, and seasonal bouquets, with a flower subscription service in preparation — so a customer arriving for a funeral tribute and a customer browsing a birthday bouquet each land somewhere that feels considered rather than generic.

A Medusa v2 Backend on Railway

Behind the storefront sits a Medusa v2 commerce backend, hosted on Railway. Medusa handles the commerce primitives — products, orders, inventory, customers, payments — and because it's open source and self-hostable, it keeps the whole operation in Edith Wilmot's hands rather than a SaaS vendor's.

The backend runs alongside its own supporting services, all hosted together on Railway:

  • PostgreSQL as the primary database — products, orders, customers, and inventory.
  • Redis for caching and the background job queue that Medusa uses for asynchronous work.
  • MinIO for object storage — which is where the product images live (more on that below).

This is a real, production commerce backend, not a hosted store builder. It can be extended in code when the business needs something bespoke, and it can scale as the catalogue and order volume grow.

Multi-Currency, Built Into the Architecture

The store trades in GBP today, and multi-currency support is built into the Medusa architecture rather than bolted on later. When Edith Wilmot is ready to court overseas gift-senders or expatriate customers, additional currencies can be switched on without re-platforming — the foundation is already in place, ready for that expansion.

Self-Hosted Product Images

All 707 product images are served from Edith Wilmot's own MinIO object storage, not a third-party image host or CDN-as-a-service.

This was a deliberate choice. A luxury florist's photography is one of its most valuable assets, and routing it through an external provider means depending on that provider's pricing, availability, and terms indefinitely. By self-hosting on MinIO — which speaks the same S3-compatible protocol the big providers use — Edith Wilmot keeps full ownership of their media with no third-party image dependency in the critical path of their store.

A Staff Portal the Team Runs Themselves

Customer-facing storefronts are only half of a commerce operation. The other half is the daily work of running it — processing orders, managing stock, updating product imagery.

We built that as a separate Next.js application, protected by NextAuth, for the Edith Wilmot team to manage orders, inventory, and product images directly. Keeping the staff portal as its own app — distinct from both the storefront and the Medusa admin — gives the team a focused tool built around how they actually work, and keeps operational access cleanly separated from the public store.

The point of the portal is autonomy: routine operational work doesn't require a developer.

Payments and Transactional Email

Stripe is integrated into the build for card and digital-wallet checkout, ready to go live once the client's payment keys are in place. Order communications — confirmation, dispatch, and delivery — are sent through Resend, so customers are kept informed at every stage of a purchase, branded consistently with the store.

SEO Infrastructure, Built In

A new store with no history needs to be discoverable from the moment it goes live. The build shipped with the technical SEO foundations in place: an XML sitemap, a configured robots file, and structured data. These were live ahead of the DNS cutover, so the site presented itself correctly to search engines from launch rather than playing catch-up afterwards.

Going Live

The site went live via a DNS cutover to edithwilmot.co.uk — pointing the live domain at the new platform once everything was tested and in place. A cutover is the moment of truth in any launch: the storefront, the backend, the payment integration, the email flows, the images, and the SEO infrastructure all have to be correct before the switch is flipped, because real customers arrive immediately afterwards.

Edith Wilmot is now live on a platform they own outright.

Why Headless, For a Florist

It's worth being explicit about why this architecture suits a business like Edith Wilmot, because "headless" can sound like over-engineering for a florist.

Performance where it counts. Decoupling the storefront from the backend lets the storefront be a lean, edge-delivered Next.js app optimised purely for speed and experience, while the commerce engine does the heavy lifting separately. Florist traffic is mobile-heavy and spikes hard around peak gifting periods; an edge-delivered front end handles that far better than a monolithic platform.

Ownership and no lock-in. Because the platform is custom-built on open-source foundations rather than assembled from a proprietary florist plugin, Edith Wilmot isn't a tenant in someone else's system. The catalogue, the customer data, and — crucially — the product photography all live on their own infrastructure.

Room to grow. New occasions, new product lines, new sales channels, new currencies — a bespoke headless platform can be extended in code to accommodate them, without the ceilings that off-the-shelf florist platforms tend to impose once a business gets ambitious.

In Numbers

  • 609 products in a fully custom-built catalogue
  • 707 product images self-hosted on the client's own MinIO infrastructure
  • Multi-currency-ready architecture — trading in GBP, with further currencies ready to switch on
  • 100% custom headless build — no template, no florist plugin

The Edith Wilmot build is a clean example of what "headless" actually buys a serious independent retailer: not novelty for its own sake, but ownership, performance, and a platform that bends to the business rather than the other way round.

Considering a Custom Florist Platform?

If you're a florist outgrowing a template or a plugin — fighting the platform every time you want to do something it wasn't designed for, or uneasy about how much of your business lives on someone else's infrastructure — a bespoke headless build is worth understanding before you renew.

For the architectural detail behind this approach, read our complete guide to headless e-commerce architecture, or see how we think about Florist Touch versus a headless Medusa build. And if you're weighing a replatform and worried about your search rankings, our guide to migrating a large product catalogue to headless commerce without losing SEO covers exactly that.

About the author

Pinwheel

Engineering Team, Pinwheel Media Ltd

Pinwheel is a UK web design and engineering agency specialising in headless e-commerce, bespoke website builds, and business automation systems. Based in Surrey, we've delivered 100+ projects for UK businesses since 2015 — from local service websites to complex multi-tenant commerce platforms.

● Ready to Build?

Let's Build SomethingRemarkable.

Whether it's a headless commerce platform, a bespoke automation system, or a high-performance web presence — we'd love to hear about it.