cbd.domains

Brendon · 2026 portfolio

Websites & agentic systems for cannabis & CBD businesses.

Agents, dashboards, headless commerce, ranking systems — production software that runs daily for cannabis brands, hemp processors, CBD shops, and high-risk operators.

Why I rebuild

Your content is only as good as the front-end it ships on.

You can have the best copy, the best offer, and the best reviews — and still lose, because search engines reward how fast the page loads. Core Web Vitals are a confirmed ranking signal. Loading the right content on the wrong front-end (a bloated WordPress, Wix, or page-builder template) quietly caps how high the best site can rank, how often it gets crawled, and how many visitors stay.

Same content. Same offer. Watch what the front-end does to it:

yourbrand.com0.00s

cbd.domains rebuild — Next.js on Vercel

yourbrand.com0.00s

Typical page-builder site (WordPress / Wix / Squarespace)

Illustrative — the slow side is set to ~10× to show the effect. Real builder sites routinely take 6–12s to fully load on mid-range phones; Google's “good” LCP threshold is 2.5s.

Why the slow side gets penalized

  • Rankings: Core Web Vitals (LCP / INP / CLS) feed Google's page-experience signal. A slow LCP is a direct drag on position.
  • Crawl budget: slow servers get crawled less often, so new pages and changes get indexed slower.
  • Bounce & conversion: ~53% of mobile visits are abandoned past 3s to load. Every extra second compounds the loss.
  • Ad & AI costs: slow landing pages lower Quality Score and get cited less by AI answer engines.

That's the whole thesis of cbd.domains: rebuild the front-end on a stack engineered for speed, and the content you already have starts earning what it should.

Top 10 reasons

Ten reasons to rebuild with cbd.domains

Every reason below is backed by a real rebuild — click the example to see the receipts.

  1. 01

    Speed is a Google ranking factor — not a nice-to-have

    Core Web Vitals (LCP, INP, CLS) are confirmed ranking signals. A lean Next.js front-end paints in under a second; page-builders ship megabytes of JS and get crawled, ranked, and converted worse — with the same content.

    BigCommerce template → Next.js 15 headless
  2. 02

    Migrate without losing the rankings you already have

    The real risk in a rebuild is tanking your existing SEO. We port URLs, redirects, and content structure so the rankings hold through the cutover.

    Wix → Medusa · 301-protected URLs + ISR
  3. 03

    Revisions flow through Slack — queued, previewed, ready to ship

    Your site changes get systematized. Requests come in through the Slack network and auto-queue as built deploy previews. When I'm at the keyboard, every pending improvement is prompted and ready for me to ship or tweak in one click — not stuck in a third-party agency backlog you can't see.

    Slack-fed AI approval queue, owner-gated
  4. 04

    Live in days, not months

    A focused rebuild ships fast. Porto Verde went from a parked domain to a full B2B extraction-lab site — services, equipment, compliance, and an artwork-intake contact form — in a single build.

    Parked domain → live B2B lab site
  5. 05

    A real SEO surface, built in — not a $/mo plugin

    Sitemap, JSON-LD structured data, dynamic Open Graph images, robots control, and clean metadata ship by default on every build.

    Sitemap · JSON-LD · dynamic OG · robots
  6. 06

    Agents that work while you sleep — the thing builders can't do

    Software that drafts, dispatches, follows up, and finds leads on its own. A page-builder gives you a page; this gives you an operator.

    Production agents in real daily use
  7. 07

    Rebuilt for conversion, not just for looks

    Every rebuild is wired for the next step — quote, booking, opt-in — measured and tuned, not just redesigned.

    Two-rail checkout: Clover + Aeropay

Agents

Production agents in real use

Let's Go Paint headless

Migrated a painting-services site to Next.js + headless commerce; agent drafts quotes from job photos and pushes approved estimates to clients.

Before / After

Sites rebuilt without losing the rankings

cbd.restaurant — Headless Hemp & THCa E-Commerce Rebuild

Replaced a legacy BigCommerce storefront with a purpose-built Next.js headless e-commerce platform for hemp-derived CBD/THCa products. The rebuild emphasizes compliance-first design, dual-mode order fulfillment (card checkout for legal hemp/THCa; pay-on-delivery for future marijuana SKUs), real-time inventory, and multi-channel customer notifications (email/SMS/web-push). Achieves feature parity with BigCommerce while reducing compliance surface and enabling direct control over payment, fulfillment, and customer journeys.

  • 50 products live (6 hemp + 44 THCa)
  • 7,228 lines of TypeScript code
  • 16 Postgres tables, dual-mode fulfillment logic
  • 3 notification channels (email/SMS/push)

Big Moose Hemp: Wix Platform Prison to Headless Medusa

Big Moose Hemp migrated from a locked-in Wix storefront to a fully-owned headless architecture — Medusa 2.x commerce backend on Railway + Next.js 15 storefront on Vercel, live at new.bigmoosehemp.com. The rebuild was forced by a hard regulatory deadline: the November 12, 2026 federal hemp ban (P.L. 119-37) that outlaws ~86% of the current catalog, making Wix's V1 schema, deprecated APIs, and single payment rail a business blocker. A three-phase compliance strategy (Liquidation → Sunset → Post-ban) is baked into the schema so the cutoff is driven by per-SKU total-THC data, not a midnight content edit. The team shipped 551 TypeScript files across 229 commits with complete parity to legacy order/customer data (142 historical Wix orders materialized + a consent-stratified 23,924-contact archive), compliance automation (total-THC per SKU, state ship-block enforcement), real payment rails (Clover high-risk processor), an IMAP-verified transactional email + SMS chain, a live Medusa-backed mobile admin, and a 24/7 Slack-fed AI approval queue where agents draft and only the owner ships. The same backend that started as a survival migration is now the operating spine for the whole brand.

  • 229 commits from Apr 19 → Jun 30, 2026
  • 142 historical Wix orders + 16,881 customers migrated with consent
  • 551 source files (TS/TSX); 8 test suites
  • Live at new.bigmoosehemp.com (Vercel) + Railway backend

Buck Mountain Cannabis — buckmountaincannabis.com → buckmountain.farm

Brand restart on a new domain. The legacy site was a static brochure; the rebuild restructures the catalog around the actual sales channel — flower, rosin, extracts, trim, smalls, plus a pharma category that ships when its supply line is ready. Wires Nabis (wholesale), Metrc (batch compliance), and OgLife.app (QR rewards) into one storefront.

  • Domain cutover with 301s from buckmountaincannabis.com
  • Nabis wholesale API + Metrc batch compliance integrated
  • OgLife QR rewards wired in for cross-brand identity
  • Shared chat widget with BMH and LGP

BMH payment rails — Wix payments to a two-rail Medusa module with hard caps

Big Moose Hemp ran customer payments through WIX-PAY-PRO + Square. Hemp/CBD is a high-risk MID category and the federal hemp ban (P.L. 119-37, effective Nov 12 2026) accelerates the need to move off a stack that doesn't expose payment-policy controls. The rebuild ships a two-rail payment provider abstraction inside the BMH Medusa 2.x backend — Clover (card, capped at $250) via Global Payments Solutions ISO for the high-risk MID, and Aeropay (ACH) for any purchase over the cap and for the 50% deposit on bulk clone orders. Hard caps are enforced at three levels — admin, API, and storefront — so no path can bypass them.

  • 2 payment rails (Clover card + Aeropay ACH) under one Medusa module
  • Hard $250 card cap enforced at admin + API + storefront
  • 13-method contract surface across the two providers
  • Feature-flagged rail toggle (FEATURE_CLOVER_CARD_RAIL)

Porto Verde — a parked domain to a B2B cannabis-lab operating surface (plus a zero-downtime domain migration)

Porto Verde is a licensed Long Beach micro-processor and co-packer — extraction, co-pack, packaging, and METRC-compliant labeling for cannabis and hemp brands. It had no web presence: the domain sat on a registrar parking page and buyers found the lab by referral. Built from scratch on Next.js 15 — a facility hero shot on the real C1D1 floor, nine service deep-dives, an equipment-transparency page that names the actual CTM and FlexPackPRO machines, a compliance surface (21+ gate, METRC, Prop 65, COA positioning), and a quote funnel with drag-and-drop artwork upload — then shipped to production the same day. When the owner realized the domain was misspelled and bought the correct one, the entire stack — site, DNS, self-hosted email, SES, env — migrated to it with zero downtime, and the typo domain was left as a path-preserving redirect.

  • Registrar parked page → full Next.js 15 operating surface, live same day
  • 0 → 9 service deep-dives (distillate, resin, diamonds, THCA + 5 co-pack lines)
  • Quote funnel with drag-drop artwork upload (PDF/AI/PSD, up to 100 MB)
  • One-letter domain typo → 8 live systems migrated, zero downtime, old domain 308-redirects

Working on something?

I'd like to hear about it.

Project inquiries, partnerships, anything where an agent might earn its keep. One business day reply, usually faster.

Get in touch →
cbd.domains — websites & agentic systems for cannabis & CBD businesses