Case studyE-commerce · CannabisLive · 2026
← All work

dankbud

A premium cannabis storefront with real e-commerce, member club tiers, and locker-pickup logistics.

Visit live site →
dankbud landing — members-only private cannabis club

Client

dankbud (Cape Town)

Industry

E-commerce · Cannabis

Year

2026

Stack

Next.js 16 · React 19 · Supabase (Postgres + Auth + Storage) · PayFast · Vercel · Playwright (e2e)

Scope

Full product catalogue + variants · Cart + PayFast checkout (ZAR) · Gamified member club — XP levels, quests, scratch cards, leaderboard · ‘Plug Tree’ referral system (earn from your network) · Locker-pickup logistics (driver console + locker codes) · Staff admin (orders, inventory, refunds) · POPIA compliance, age-gate, T&Cs · Ops playbooks + staff manuals (handed over as PDFs)

Status

Live

The problem

Existing local cannabis retailers were running on either WhatsApp-only ordering (no inventory, no receipts, no compliance trail) or generic Shopify themes that flagged for content review constantly. dankbud needed an end-to-end stack — storefront, payments, member tiers, locker logistics, staff tools — built in-house so the operator owned everything: code, customer data, audit logs, branding.

Our approach

We treated this less like a website job and more like a software project. Next.js + Supabase for the application layer, PayFast for ZAR-native payments, and a custom admin console because no off-the-shelf POS handled locker codes and member-tier pricing the way the operator needed. Ops playbooks for staff and drivers were written alongside the code, not after.

Why we didn't use Shopify

Cannabis is a content-policy minefield on hosted commerce platforms. Shopify, BigCommerce, Squarespace — all have reserved the right to drop accounts on a 24-hour notice if a payment processor pushes back. By building on Supabase + PayFast + a self-hosted Next.js front end, dankbud owns the database, owns the checkout, and can switch payment rails without rebuilding the storefront.

dankbud members-only landing — the offer, the game, the plug tree
Members-only landing
dankbud storefront — Fresh Drops catalogue with search and filters
Storefront — search + filters
dankbud product page — Runtz, gram slider and volume deals
Product page — gram slider + volume deals

Locker pickup is a feature, not a hack

Each order generates a one-time locker code that's shown to the customer post-payment and synced to the driver console. Drivers see a tablet view with a live queue, can mark orders loaded, and the locker code refuses to display until the order is paid. No spreadsheets, no DMs, no "hey did this go out yet?" radio calls.

A member club that plays like a game

Membership isn't a Bronze/Silver/Gold badge — it's a full progression system, all stored in Postgres and applied server-side so nothing is editable from the browser. Members earn XP and level up (Sprout → Sapling → Kush), keep daily check-in streaks, work a quest board, scratch mystery cards for discounts and free joints, climb a live leaderboard, and collect strains in a rarity-graded Stash Book. The "Plug Tree" referral system pays out free joints when your crew orders. It replaces what would have been an R600/month loyalty plug-in — and it's a far stickier reason to come back than a points balance.

dankbud member dashboard — XP, level, daily check-in streak and rewards
Member dashboard — XP + daily check-in
dankbud Plug Tree referral code and quest board with weekly challenges
Plug Tree referrals + quest board
dankbud achievements grid — 4 of 16 unlocked
Achievements — 4/16 unlocked
dankbud XP leaderboard ranking members by level
XP leaderboard — 160 members
dankbud Stash Book — collectible strain cards graded by rarity
Stash Book — strains by rarity
dankbud strain stories (reviews), join-the-crew socials and notifications
Reviews · crew · notifications

Compliance pack shipped with the code

Privacy policy, T&Cs, POPIA notice, age-verification gate, and a printable staff manual covering cash handling, locker codes, refunds, and driver hand-offs. The pack is part of the deliverable — not an afterthought.

Gallery4 shots
Gorilla Glue — product photography
Product catalogue · Gorilla Glue
Blue Dream — product photography
Product catalogue · Blue Dream
Zkittlez — product photography
Product catalogue · Zkittlez
Birthday Cake — product photography
Product catalogue · Birthday Cake
OutcomeWhat shipped
  • End-to-end commerce stack — storefront + payments + admin + driver console
  • Operator owns the Postgres database, customer list, and full codebase
  • Zero monthly platform fees beyond Supabase + Vercel + PayFast transaction %
  • Staff onboarded via printable SOPs — no training-call dependency on us

Ready when you are

A 50% deposit gets us started this week.

June 2026 build slots are open. We reply to every brief within 4 working hours.