poetflower.com
We built poetflower.com, the home of POET, a farmer-owned collective of Northern California cannabis farms, on its existing brand guide. It tells the story, shows the farms and where to buy, and the collective’s staff run it from their own admin.
The website
Collective website, retail map, and offerings platform
poetflower.com
A rebuilt poetflower.com that gives a farmer-owned collective one home: the story, the farms, where to buy, and what is on offer now.

The brief
Give a farmer-owned collective one place to tell its origin story, introduce its farms, show where to buy, publish words, and list the current drop, for California adults 21+ and the buyers who stock it.
The tension
The collective’s flower is sold only through licensed shops, and what each shop carries changes. A consumer needs to find a shop that actually stocks it; a buyer needs the current drop and case pricing; and all of it sits behind a 21+ door. The new site had to replace the old poetflower.com with an original build, stay true to the collective’s existing brand guide, and never invent a farm, a shop, or a number.
What we decided
Build a custom site on the collective’s brand guide and let the land and the farms lead. Make the admin’s shop spreadsheet the single source of truth for where to buy, and give staff tools to check what each licensed shop actually lists against the current offering.
What we built
- A 21+ age gate before any content, with link previews still working when pages are shared
- The origin story and farm profiles, each with photograph, bio, and links
- Where to buy: a live map and regional list of licensed shops across SoCal, the Bay Area, and NorCal
- The current offering, filterable by flower or pre-roll and sativa, hybrid, or indica, with product detail and wholesale case pricing
- Words for consumers, the trade, and poetry, with comments and email sign-up
- A staff admin for farms, products, the seasonal offering, shops, posts, and sign-ups
The result
A custom site built on the collective’s existing brand guide. Visitors pass an age gate, meet the farms of the collective, find a licensed shop on a live map, read field notes and poetry, and see the current offering. Staff sign in to keep shops, products, and the seasonal drop up to date.
poetflower.com now carries the collective’s story, its farms, a map of licensed shops, its words, and the current offering, with the shop roster, catalog, and seasonal drop managed from the collective’s own admin. We also built the site for Canyon Creek Family Farms, one of the collective’s farms.
Ownership
Everything the collective publishes — farms, shops, products, offerings, and words — lives in its own database and media storage and is managed from its own admin, on an independently operated server rather than a rented template platform.
How it runs
A Next.js application in a Docker container on a DigitalOcean droplet behind Nginx and Let’s Encrypt TLS, with PostgreSQL and Prisma for data, Clerk for staff sign-in, and DigitalOcean Spaces for uploads.
Technical specification
Architecture, systems, data, and how it is hosted and run.
- 01
Application
Next.js 16, Tailwind CSS 4, and shadcn/ui, with the brand’s licensed typefaces and four-color palette carried through every page. Product pages generate share metadata, so a link sent by text or posted to social arrives with the right image and description.
- 02
Age gate and access
A 21+ gate runs in middleware before any content, with link-preview crawlers allowed through for sharing. Clerk handles staff sign-in, with a webhook keeping users and roles in sync.
- 03
Where to buy
A spreadsheet-style shop roster in the admin drives the public map, built with MapLibre and OpenFreeMap tiles, and the regional shop list. Addresses are geocoded through the US Census geocoder with an OpenStreetMap fallback and checked against California. An admin tool reads each shop’s online menu on the dispensary menu platforms shops use, including Jane, Flowhub, Sweed, Meadow, and Blaze, matches the collective’s products it lists, and flags leftover stock and items from the current drop that are missing.
- 04
Offerings and catalog
PostgreSQL and Prisma model farms, menus, products, prices, and licensed retail locations. Products carry lineage, aroma, flavor, effects, THC, total cannabinoids, and terpenes. Staff assemble each seasonal drop with drag-and-drop ordering and publish it with case pricing for the trade.
- 05
Words, media, and production
Posts for consumers, the trade, and poetry, with comments and email sign-up. Uploads go to DigitalOcean Spaces. The application runs as a Docker container on a DigitalOcean droplet, with PostgreSQL 16 in its own container, behind Nginx and Let’s Encrypt TLS.
Project details
Services
Currently accepting select projects
Let’s make it.
Sold on someone else’s shelf? We build the site that tells people where to find you, and keep it accurate from your own admin.
We build and deploy what you need so you can create and ship what you want. Then we make the ads and place them.