zsty.us

Before / After · Case Study

cbd.restaurant — a rebuilt store that knows which products can legally take a card

  • Hemp / CBD

Their old hosted store treated every product the same, even though shippable hemp items can go on a card while restricted products legally can't. The rebuilt store separates those two paths automatically and keeps customers updated by email, text, and browser push.

“Cannabis, served fresh. A short menu, done well.”
🔒https://new.cbd.restaurant
jackiej.events — modern site

At a glance

What this rebuild covers.

  • Selling & payments

    One store, two checkout modes: shippable hemp products take card payments, while restricted products automatically switch to pay-on-delivery and never touch the card system — and card charges are only finalized once the owner confirms the order, which cuts chargeback risk.

  • Security

    The product rules are enforced on the server, not just on the page — so a restricted item can't be card-charged even if someone tampers with the checkout, and the store refuses to sell stock it doesn't have.

  • Customer notifications

    Order confirmations, shipment tracking, and status updates go out three ways — email, text, and browser push — with texts riding a route carriers actually accept for this industry, where the old store had email only.

  • Agents

    An intro coupon tags each order with the field rep who earned it, so referrals are tracked from the first scan and future commission payouts have a clean paper trail.

  • Design

    The store reads like a short menu done well — a focused 50-product catalog, cleanly separated by product type, replacing an old catalog where very different products sat jumbled together.

Receipts — measured

Numbers that moved.

1channels (email→email/SMS/push)
Notification Channels
was 1channels (email→email/SMS/push)
4tables (order/customer/notification domain)
Database Tables
was 4tables (order/customer/notification domain)
3server actions (inventory/order/returns)
Admin Functions
was 3server actions (inventory/order/returns)
  • 50 products live
  • Rebuilt in 6 days
  • 1 → 3 customer channels
  • 2 legal checkout paths

The pixel diff

Overview, then the walkthrough.

Left: everything the legacy site shipped — frozen in place. Right: an auto-scrolling tour of the rebuild, from hero to booking. No slider to fight with.

Before — the overview
🔒https://cbd.restaurant
Before — the overview

This is everything the legacy site had to offer above the fold. No pricing, no calendar, no booking — the funnel ended at a mailto.

After — scroll through what shipped
🔒https://new.cbd.restaurant
After — scroll through what shipped

Auto-scrolls through the modern site so you can see the booking surface, the package grid, the pricing table, and the calendar inline — without leaving this page.

The four beats

Problem · Insight · Build · Outcome.

Scroll past the legacy frame. The four beats land in order. At the end, the modern site fades into the same window.

🔒https://cbd.restaurant
Legacy
Legacy constraint

BigCommerce hosted complexity

The legacy cbd.restaurant store lived on BigCommerce. While functional, it obscured hemp/THCa compliance rules, had no SMS capability (carrier-blocked anyway), and tied inventory/pricing to a third-party theme. Psilocybin products sat in the same catalog.

Insight

Hemp + marijuana are different checkout modes

Farm Bill hemp (≤0.3% Δ9) is shippable via card networks. True marijuana requires state licensing + cash-on-delivery. The legacy store conflated them. A headless rebuild could separate the paths at the database and checkout layer, reducing compliance surface.

Build

Next.js monolithic storefront + Neon

Shipped in 6 days (2026-06-06). Single Next.js app with Neon Postgres backend; no separate API layer. Clover hosted-fields integration (VAPID-safe, production-ready). Added guest accounts, wishlists, gift certificates, returns/RMA. SES + AlpineIQ for notifications. Caught dual-mode bugs (gift-card charge refs, oversell race) in QA; all fixed.

Live

Production at new.cbd.restaurant

50 products live (6 hemp CBD + 44 THCa concentrates/flowers). All checkout paths tested end-to-end. Clover payment capture controlled by admin (authorize-first to mitigate chargeback). Awaiting Brendon's first real card order to unlock production payment flow.

🔒https://new.cbd.restaurant
Modern
For the technically curiousHow it was done
  1. 01

    Where it started

    The legacy store ran on BigCommerce. It worked, but the hosted template tied inventory and pricing to a third-party theme, there was no SMS at all (carriers block generic routes for this industry), and the compliance rules that actually govern the catalog lived nowhere in the system — unrelated restricted products even sat in the same catalog as shippable hemp.

  2. 02

    What was wrong

    Hemp and marijuana are two different checkout problems. Farm Bill hemp is shippable and card-eligible; true marijuana requires state licensing and pay-on-delivery. The BigCommerce store conflated them into a single card-checkout path, which meant the compliance burden lived in someone's head instead of in the software.

  3. 03

    The rebuild

    Shipped in six days as a single storefront application on our hosting platform, backed by a managed database with a 16-table order, customer, and notification domain — no separate API layer to maintain. Checkout integrates a hemp-friendly card processor via hosted card fields, with a dual-mode rule enforced at the server: products flagged as restricted force pay-on-delivery and never reach the card rail. The build added guest accounts, wishlists, gift certificates, and a returns flow, plus a three-channel notification pipeline — transactional email, an industry-compliant SMS route, and opt-in browser push.

  4. 04

    What runs now

    Fifty products are live — six hemp CBD items and forty-four THCa concentrates and flowers — with every checkout path tested end-to-end. Stock decrements atomically inside the order transaction, so an oversell attempt is rejected rather than silently accepted. Card payments authorize first and capture only on the owner's confirmation, which limits chargeback exposure. QA caught a gift-card charge-reference bug and an oversell race before launch; both were fixed.

  5. 05

    What the owner does now

    Runs the catalog live from the admin — adding, editing, and toggling products with stock updating in real time — and confirms orders before any card charge finalizes. Customer notifications for confirmation, shipping, and delivery go out automatically on whichever channel the customer chose, with no platform vendor sitting between the business and its own orders.

Architecture

Old stack
  • Hosted template
  • Third-party payment gateway
  • Limited automation
↓
New stack
  • Custom checkout UX
  • Clover + fallback stub
  • 3-channel notify
  • Dual fulfillment modes

What changed, with evidence

Design

Dual-Mode Fulfillment

Compliance-first architecture enforces product-type rules at the server layer (not just UI). Orders with THC SKUs force cash-on-delivery, never touch Clover. Supports future state-licensed inventory without code changes.

Before
Single card-checkout path
After
Hemp/THCa→card+ship; Marijuana→pay-on-delivery
Retention

Multi-Channel Notifications

Customers receive order confirmations, shipment tracking, and status updates via preferred channel. AlpineIQ SMS ensures compliance (no carrier block on hemp/THCa). Web Push opted in per order for real-time delivery proof.

Before
Email only (BC transactional)
After
Email + SMS + Web Push
Agent backbone

Field Agent Attribution

Intro coupon 420GAL (42% off first $100) auto-tags orders with agent slug. Integrates with OG Life identity layer for cross-brand attribution. Supports future commission payouts.

Before
No referral tracking
After
Coupon codes + first-touch QR
Real-time push

Real-Time Inventory Admin

Add/edit/toggle products live. Stock decrements atomically in order transaction; oversell returns 409. Supports future per-size variants (schema extensible).

Before
BC product editor + manual sync
After
/admin/products CRUD + stock decrement

← All rebuilds

cbd.restaurant — a rebuilt store that knows which products can legally take a card — zsty.us