zsty.us

Brendon · 2026 portfolio

I build agentic systems for real businesses.

Agents, dashboards, headless commerce, ranking systems — production software that runs daily for hemp shops, painting crews, dispensaries, field-sales teams, and SEO operators.

Agents

Production agents in real use

BMH retail ops

Daily inventory, order-state machine, and customer-comms agent for Big Moose Hemp. Runs unattended; flags edge cases to Slack.

AUTONOMOUS AGENT — field-sales dashboard

Magic-link Next.js dashboard + SMS dispatcher running as an autonomous agent for a field-sales rep (e.g. John Doe). Per-brand opt-in via AlpineIQ + Twilio, order parser, shipment tracking.

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

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

Velcro.music — a record-label hero that actually swings

Rebuilt velcrowrecords.com — a 2,338-line single-file static site on Netlify — into velcro.music on Next.js 16. The signature chain-and-skull pendant used to be a flat image on a fixed CSS keyframe; now it swings on a real verlet pendulum through a drifting SF-fog band, with the skull's diamond eyes glinting at each apex. Under the hero: a typed product catalog, consent-first notifications, and a hardened header set — plus a per-link articulated-chain engine reconstructed from the single product photo.

  • Single-file 2,338-line Netlify/Snipcart site → Next.js 16 App Router on Vercel
  • Hero: fixed 4s CSS-keyframe swing → verlet pendulum + drifting SF-fog + diamond-eye glints, 60fps
  • Per-link articulated-chain engine reconstructed from one product photo — pixel-exact at rest
  • Hardened: CSP + HSTS + 5 more headers; products as Zod-validated records; reduced-motion fallback

WordPress → Next.js for a regional SEO leader

Took over the #1 organic site in its market — a 5.0-star Best-of-Southland SEO operator running on aging WordPress + Elementor. Migrated to Next.js without losing a single ranking, then added a client dashboard the legacy stack couldn't support.

  • 0% ranking drop across 600+ tracked keywords
  • 9× faster TTFB (1.8s → 200ms p75)
  • Client dashboard added (formerly unsupported)
  • Headless content pipeline (Notion → MDX)

Fuel1st — 2014 WordPress brochure to a 2026 Next.js operating surface

Fuel1st had been running on the same WordPress brochure since 2014, designed and maintained by an outside agency. The entire site was four nav links, a tagline, a quote, and a footer credit — roughly fifty words of copy. Rebuilt from scratch on Next.js 14 + Tailwind in a 43-hour sprint: six structured services, hero stats, self-hosted aviation photography, a four-source aviation news aggregator with a competitor filter, and three motion polish passes — all on operator-owned infrastructure, deployable in seconds.

  • ~50 words → multi-page operating surface
  • WordPress (2014, third-party agency) → Next.js 14 (operator-owned, 2026)
  • 0 services listed → 6 (Fuel Supply, Trip Support, Logistics, Flight Planning, Ground Handling, SAF)
  • 0 hero imagery → self-hosted aviation photography throughout

Ballair / Fuel First / 7Air — operating-group brochure + allowlist admin + federal bid agent

Stood up the digital footprint for a three-entity aviation operating group: Fuel First International (fueling + bunker, CAGE 77SM4), Ballair Aviation Holdings (Boeing 767F + holding entities), and 7Air Cargo (three 737-800SFs, FAA Part 121, acquired May 2026). The deliverable is three layers: a public brochure at ballairaviation.com, a hard-allowlist admin dashboard for the operator, and an Anthropic-backed federal-bid drafting agent that scouts SAM.gov on the operating-group's real CAGE/UEI and drafts compliant bid sections without ever inventing a capability or auto-submitting.

  • 3 federal entities under one ops surface
  • 28 SAM.gov keyword-scope categories — one-click into live searches
  • Drafting agent: 7 bid sections, Anthropic-backed, hard never-invent rules
  • Allowlist admin: zero signup surface, sessions in Postgres

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)

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

Let's Go Paint — pottery brochure to Square-source-of-truth headless commerce

Seal Beach paint-your-own-pottery studio (1065 Pacific Coast Hwy). The legacy site was a brochure with limited booking. Rebuilt on the same headless stack as BMH and Buck Mountain — Next 15 storefront + Medusa 2.x backend — with Square as the catalog + payment source of truth so anything ringing through the POS lands in the storefront automatically. Multi-domain strategy (.com, .art, .space, .org) collapsed into one storefront with brand variants per host.

  • 4 owned domains → 1 storefront with brand variants
  • Square is catalog + payment source of truth
  • Klaviyo (email) + Shippo (fulfillment) + Synthflow (voice) + Plausible (analytics)
  • Phase 1 visual contract pinned to a static HTML reference

OgLife.app — one identity layer across a 17-domain portfolio

Each brand in the portfolio had its own opt-in, its own chat widget, its own customer record. A customer who liked two brands ended up as two strangers in two databases. OgLife.app is the cross-business identity + preferences + live-chat layer that sits between the brands and the customer — one opt-in, one preferences page, one inbox. Built on Cloudflare Workers + Durable Objects + Neon, with an embeddable 7KB chat widget that any brand storefront drops in.

  • 1 identity layer across 17 brand surfaces
  • 7KB embeddable chat widget
  • AI autoreply at 45s when no agent is online
  • Inquiry → push notification: <30 seconds

DJ Jackie J — bland WordPress to orchestrated revenue stream

Took over a 12-year wedding & event DJ's online presence — a half-built WordPress site, three Instagram handles she manually managed, inquiries that took 24+ hours to answer. Shipped a real marketing site, wired SMS opt-ins for repeat-booking, and stood up an agent backbone that posts ads, scrapes local OC event listings, and pushes inquiries to her phone the moment they land — so her brand keeps working while she's asleep.

  • 5★ across The Knot / WeddingWire / Thumbtack preserved through cutover
  • Inquiry → notification latency: 24h → <30s (push)
  • Bid submission flow: manual → draft-for-review agent
  • Live event-vendor scraping across OC public listings

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 →