Dispensary websites built around a live menu
Herbal Solutions in Ypsilanti has worked with me since 2010, through four websites. The one it runs today has a live Dutchie menu, loyalty sign-ups and text deals through Alpine IQ, and an age check before anything else.
Who I've built for
I'll be plain about it: I've built for one dispensary. It's Herbal Solutions, a licensed provisioning center in downtown Ypsilanti, and it has worked with me since 2010. I've built four websites for it, and it's still with me.
That's sixteen years with one cannabis business, through Michigan's move from medical-only to adult-use sales. It's why the list below comes from a real site, not a guess. A dispensary's website has to handle a menu that lives on someone else's platform, a loyalty and text list, an age check, and advertising rules most businesses never have to think about.
If you run a dispensary anywhere in Michigan and want a site like Herbal's, I'd like to hear about it.
Project spotlight
Herbal Solutions: sixteen years and four websites
In Michigan cannabis terms, Herbal Solutions is a veteran: it has served Ypsilanti since 2010. Its current site runs on ProcessWire with Herbal's own tools wired in: Dutchie for the menu and ordering ahead, Alpine IQ for the loyalty list and text deals, and a reporting dashboard that puts traffic, sign-ups and campaigns in one view. I still work on it every month, from text and email campaigns to speed.

From the real builds
What a dispensary website needs
An age check before anything else
Michigan's rules say adult-use cannabis can't be marketed to anyone under 21. Herbal's site asks visitors to confirm they're 21 or older before it shows a single product, sends anyone who says no away from the site, and tells them their age will be verified again at checkout.
A live menu on your own site
The menu is the store. Herbal's comes from Dutchie, embedded right on Herbal's own site, so customers see the current products, prices and deals and order ahead without leaving. Every category in the site's menu bar, from flower to pre-rolls, opens straight to that part of the Dutchie menu.
Loyalty sign-ups that land in the right place
Deals bring regulars back, and a text gets read. Herbal's sign-up form is built into its own site and sends each new member straight to Alpine IQ, the loyalty and text platform Herbal uses. Anyone who adds a phone number gets a text to confirm before a single deal goes out.
Fast on a phone, menu and all
People check the menu on their phones, so the site has to be quick there. Everything on Herbal's site except the menu is hand-built with no frameworks, and on a good run Google PageSpeed scores it 100 on mobile and desktop. The score dips when Dutchie's menu is slow to load, the one part of the page I don't control, so the rest is built to stay light around it.
Answers before the first visit
A first-time customer wants to know whether you're open right now, where to park and what to bring. Herbal's site shows whether the store is open and when it closes today, has a parking page with the nearby lots, and a guide to a first dispensary visit.
Words chosen with Michigan's rules in mind
Michigan's Cannabis Regulatory Agency sets advertising rules for licensed businesses: nothing false or misleading, no health claims the FDA hasn't approved, nothing aimed at anyone under 21, and required warnings on ads. I'm not a lawyer, and the final call on compliance is yours, but I know where those rules touch a website and I'll flag them as we write it.