Skip to main content
BA://OS · Navigation
Services
Resources
Markets
Who We Serve
Apex MenuEdge
About
Get Free Audit

> budauthority.com

BA://OS · APEX_MENUEDGE · LIVE ON CLIENT WORKERS
DUTCHIE ECOSYSTEM · CATEGORY OF ONE · BA CLIENTS ONLY
Dutchie Pro Preferred Partner· vetted · authorized · in good standing

// when_chatgpt_recommends_a_dispensary · it_should_be_yours

Dutchie Menu SEO PlatformAPEXMENUEDGE®

When Google or ChatGPT recommends a dispensary, it should be yours. But if you suffer from your dispensary menu not showing on Google, your organic traffic will collapse.

Apex MenuEdge is the ultimate dutchie seo and dutchie menu seo solution. We convert dynamic menu scripts into crawler-friendly SSR pages to make your dutchie menu indexable. Whether you need a legacy dutchie plus seo transition or a new edge implementation, we ensure bots and humans see identical, fully optimized data. We intercept your response at the Cloudflare edge and rewrite it for three audiences from one URL, built by a preferred partner.

PAGE-TYPE TREATMENTS5
AUDIENCES / URL3
AI CRAWLERS WON60+
EDGE LATENCY<15MS
ONBOARD TIME30M
scroll

// the_macro_shift · 2026 onwards

AI SEARCH IS THE NEW SERP.

The 10-blue-link world is over. ChatGPT runs 4+ billion queries a month. Google AI Overviews now appear on the majority of commercial searches. Voice assistants handle "near me" cannabis queries the way Google did in 2015. The discovery layer for the next decade isn't a results page — it's a recommendation. The brands that engineer the substrate for that recommendation today own the next decade of cannabis e-commerce.

GENERATIVE

ChatGPT, Claude, Perplexity, Gemini

4B+ monthly queries · zero blue links · the answer wins

AI OVERVIEWS

Google's AI Mode + AI Overviews

On 60%+ of commercial queries · cited brands win the click

VOICE

Alexa, Siri, Google Assistant

Single-answer-only · the citation is the conversion

AGENTIC

Browse / shopping agents

Buying decisions made by AI on your behalf in 2027

Every one of these channels has the same requirement: structured, schema-rich, entity-anchored content that AI models can extract cleanly. Reverse-proxied dispensary menus do not have this. Apex MenuEdge is the only solution that gives them this — for the entire cannabis vertical.

// pull_quote
The brands that exist in AI-search by 2027 will be the brands that built the substrate in 2026.

The Apex Doctrine

// every_dispensary_is_choosing · whether_they_know_it_or_not

Two Futures.

ChatGPT, Claude, Perplexity, Google AI Overviews, Alexa, Siri — they're all making the same decision a million times a day: which dispensary do we recommend? You will be on one side of this line by 2027. Pick now.

// future_a · without_apex

You Stay
Invisible.

chatgpt cites your dispensary0
  • Crawlers see <div id="__next"></div>
  • Zero AI citations. Zero voice queries answered.
  • Local map pack and AI Overview slots go to competitors.
  • Every quarter, the gap widens. Every quarter, harder to close.
outcome

You watch competitors take the AI-search slot you should have owned. By 2027 it's structural. The window closes.

// future_b · with_apex_menuedge

You Become
The Answer.

chatgpt cites your dispensaryTOP 3
  • Every crawler sees a fully-rendered, schema-rich, voice-ready page
  • ChatGPT, Claude, Perplexity, AI Overviews all cite YOUR menu
  • Voice assistants name your dispensary on "near me" queries
  • You compound. Every week, more queries route to you.
outcome

You own the citation layer. By 2027, when half of all dispensary discovery happens through AI assistants, you're the answer the assistants give.

The choice isn't between two SEO strategies. It's between relevance and irrelevance, in a world where the SERP is no longer the SERP. Apex MenuEdge is the only path to the right side of this line for cannabis menus running on Dutchie — and Bud Authority is the only Dutchie Pro Preferred Partner shipping it.

// the_silent_problem · costing_you_market_share_today

YOU'REA GHOST.

Every customer who asks ChatGPT "best dispensary near me" — you don't exist. Every voice query to Alexa about cannabis delivery in your zip code — you're not in the answer. Every Google AI Overview that recommends a brand — it's not yours.

Why? Because the menu — the engine of your revenue, the page that converts — lives inside a JavaScript shell that AI crawlers cannot read. Run this in your terminal right now. We dare you.

your-terminal
$curl -A "GPTBot" \
    https://yourdispensary.com/stores/yourstore | wc -c

 29,847 bytes  // looks fine, right?
 body content: <div id="__next"></div>
 indexable text: 0 words
 verdict: invisible

Googlebot will eventually render it (days behind, queue-delayed). The AI bots that decide who gets cited in 2026 — GPTBot, ClaudeBot, PerplexityBot — won't. Your competitors are losing this race too. The first one to fix it wins the entire decade.

blocked_at_the_doorEVERY DAY
GPTBot
ClaudeBot
PerplexityBot
Google-Extended
Applebot-Extended
MistralAI
Cohere-AI
DuckAssistBot
OAI-Search
<div id="__next"></div>

no products · no schema · no answer

// structural_disadvantage · documented_by_google · permanent_until_fixed

WHY EVERY OTHER
DUTCHIE MENU LOSES.

This isn't opinion. It's how Google's own systems classify reverse-proxied dispensary menus. Every Dutchie storefront on the internet — yours, every competitor's, every brand the algorithm has ever seen — ships the exact same HTML payload to crawlers: an empty React mount wrapping the same JavaScript bundle. From a search engine's perspective, every dispensary in the country looks structurally identical at the HTML layer. That is the floor for the entire industry. Apex MenuEdge is the only product that breaks it.

01

Duplicate Payload Penalty

Every reverse-proxied Dutchie menu ships an identical <div id="__next"></div> React shell. Google's Helpful Content Update, Site Reputation Abuse policy, and Panda-era duplicate-content systems all classify near-identical templated HTML across thousands of domains as low quality. Without Apex, every dispensary inherits the same floor — no differentiation, no entity signal, no ranking lift.

02

AI Bots Don't Render JS

GPTBot, ClaudeBot, PerplexityBot, OAI-Search, Applebot-Extended, Cohere-AI, Mistral-AI, DuckAssistBot — none of them execute JavaScript. Ever. They hit your Dutchie menu, see zero indexable bytes, and leave. They don't come back to render. You're not behind in AI search — you're structurally invisible.

03

Crawl Budget Burn

Even Googlebot — which does render JS — runs a separate render queue days behind first crawl. For thin or duplicate content, Google cuts crawl budget aggressively. Your menu pages get crawled less and indexed slower. Compounded across 500–3000 product URLs per store, the lost discovery is catastrophic.

04

No Entity Graph

Dutchie's React eventually injects schema client-side. AI bots never see it. Without Organization, LocalBusiness, Product, Brand, and Speakable nodes in the raw SSR HTML, your dispensary has no anchor in the knowledge graph AI assistants build their world model on. You aren't a known entity. You're a JavaScript stub.

// the_unlock · structural · first_mover · uncopyable

Apex MenuEdge is the only middleware in the cannabis ecosystem that solves all four at the structural layer.

Edge-injected before bots arrive. Bespoke per URL — no duplicate content surface. Full SSR for crawlers that don't render JS. Linked @id schema graph that anchors every dispensary in the AI knowledge layer. Nobody else ships this — not Dutchie, not Yoast, not RankMath, not your current SEO agency. The window to lock in first-mover citation dominance closes the moment a competitor catches up. It hasn't closed yet.

market_position

N = 1

we are the category

// live_scanner · paste_your_url · 14_checks_in_15_seconds

SCAN YOUR OWN MENU.

Don't take our word for it. Paste your dispensary URL — or any competitor's — and watch the scanner light up red. The same 14 checks Apex MenuEdge fixes on every install. Real audit, in your browser, in real time.

apex_visibility_scanner · v1
14 checks · client-side · zero data stored

See exactly what AI sees on your menu.

Paste your dispensary's menu URL. We fetch the page in your browser, run 14 AI/voice/search-readiness checks, and grade the result. No login. No tracking. Sub-15-second scan.

no login · no email · zero data leaves your browser · CORS-proxied fetch · pattern fallback

// this_is_what_winning_looks_like

YOU'RE
THE ANSWER.

When a customer asks an AI assistant, "best dispensary near me open now," this is what they hear. Your dispensary, by name. Your address, your hours, your delivery zones. With a citation that points back to your own menu.

Apex MenuEdge wires the schema graph, the Speakable selectors, the FAQ extraction, and the entity-anchored prose that AI models reach for first. The answer isn't the brand with the biggest ad budget anymore. It's the brand the AI can read, parse, and cite without ambiguity.

AI
generative_assistant_response
answer cached
query
answer · synthesized from indexed sources

citation · primary source
hiinyc.com/stores/hii-williamsburg

Sourced from Hii NYC's licensed cannabis dispensary entity with schema-graph attribution, FAQ extraction, and Speakable metadata — all delivered by Apex MenuEdge® at the Cloudflare edge.

// same_query · two_outcomes · only_one_for_you

EVERY QUERY IS A
BATTLE FOR THE CITATION.

A customer asks. The AI decides. Three brands get named, or one. Without Apex you're competing for a slot the model doesn't see you eligible for. With Apex you're the first brand the model reaches for.

spoken / typed query · same person, same intent

near me cannabis dispensary that delivers tonight

ai answer · without_apexyou're not in it

brand mentions · 0 · slot taken by 3 competitors
ai answer · with_apex_menuedgeyou're the citation

brand named · 2 locations · 8 zip codes · 1 winner
WHY IT MATTERS

Voice + AI assistants typically name 1-3 brands. If you're not in the top 3, the customer never hears your name.

THE LIFETIME VALUE

A single AI citation can route hundreds of customers to one location over a year. Compounded across the catalog of queries — career-defining.

WHY FIRST MOVERS WIN

Models entrench. Once a brand becomes the canonical answer for a query, displacing it gets exponentially harder.

// pull_quote
A single AI citation routes hundreds of customers a year. Compounded across the entire catalog of queries — career-defining.

// measurable_deltas · same_dutchie_url · one_structural_change

THE OUTCOME GAP.

Numbers, not claims. Same Dutchie storefront. Same products. Same checkout. One structural change at the Cloudflare edge. Two completely different realities for what AI search engines, voice assistants, and the next generation of buying agents ever see.

without apex · every other dutchie menuBASELINE
Indexable bytes to AI bots0
Schema entities in SSR HTML0
Speakable voice anchors0
Unique title per URLNO · templated
LocalBusiness signal in SSR0
Per-URL prose differentiation0
AI Overview citation eligibilityINELIGIBLE
Google duplicate-content riskHIGH
Crawl-budget allocationCUT · thin-content tier
Time to AI citationNEVER
with apex · bud authority clientsCATEGORY WINNERS
Indexable bytes to AI bots12k–30k per page
Schema entities in SSR HTML12+ linked @id
Speakable voice anchorsEVERY URL
Unique title per URL165–210 chars · geo-haloed
LocalBusiness signal in SSRFULL · NAP + hours + areaServed
Per-URL prose differentiationBESPOKE · zero overlap
AI Overview citation eligibilityELIGIBLE · day 1
Google duplicate-content riskMITIGATED
Crawl-budget allocationRECLAIMED · quality tier
Time to AI citation14–30 days
The compounding curve

Day 14 first AI citation · Day 60 voice-search routing · Day 90 AI Overview placement · Year 1 category dominance. Every new AI crawler that comes online finds your menu already optimized for it.

Why first movers entrench

Once a brand becomes the canonical citation for "dispensary near me" in a zip code, displacing it gets exponentially harder. Models reinforce their own outputs. The window is now.

What this is worth

A single AI citation can route hundreds of customers to one location over a year. Compounded across 500 product URLs, 50 categories, and 8 geo pages — the entire decade-defining advantage from a 72-hour install.

// architecture · weaponized_at_the_edge

SAME REQUEST. TRANSFORMED IN FLIGHT.

We don't replace your menu. We don't change your stack. We don't touch checkout, OAuth, payments, or the bypass header your engineers care about. We just intercept the response from Dutchie at the Cloudflare edge — and stream it through ~30 distinct optimization patterns (including a flagship voice-search layer) before it reaches the crawler.

01

REQUEST

Crawler or human hits /stores/<slug>

02

FETCH

Worker fetches dutchie.com upstream

03

CLASSIFY

60+ crawler signature match · <1ms

04

INJECT

HTMLRewriter streams cassette into HTML

05

RETURN

Enhanced response · cached at edge

your worker todayINVISIBLE TO AI
// inside handleRequest
return await fetch(proxyRequest);
same worker · with apex menuedge3 AUDIENCES · 5 PAGE TYPES
// inside handleRequest
const proxiedResponse = await fetch(proxyRequest);
return await injectApexMenuEdge(request, proxiedResponse, env, ctx);

↑ that's the entire change · two lines · we deploy it for you in 72 hours

// five_surfaces · five_schema_treatments · zero_overlap

ONE INSTALL. FIVE PAGE TYPES.

A product page is not a category page. A brand page is not a store home. A neighborhood landing page demands different entities than a flower SKU. Apex MenuEdge classifies every URL the Dutchie storefront serves and emits a purpose-built schema graph for each — no template reuse, no entity collisions, no wasted markup.

01

Product

Per-SKU surface — strain, brand, weight, effect anchors.

  • BreadcrumbList
  • Product
  • Store
  • Speakable
02

Category

Flower, edibles, vape, pre-rolls — buyer-intent surfaces.

  • CollectionPage
  • BreadcrumbList
  • Store
  • Service · Delivery
  • Service · Pickup
  • Speakable
03

Brand

House and partner brand surfaces — Stiiizy, Cookies, RYTHM, et al.

  • CollectionPage
  • Brand
  • Store
  • BreadcrumbList
  • Speakable
04

Store Home

Per-location anchor — full NAP, hours, areaServed, delivery zones.

  • WebPage
  • BreadcrumbList
  • Store · full address
  • telephone
  • areaServed
  • openingHoursSpecification
05

Geo / Neighborhood

L-train, Bedford Ave, Bay Ridge, Sunset Park — discovery geometry.

  • WebPage
  • BreadcrumbList
  • Store
  • Place
  • Service

Every surface gets the entities AI search engines actually reach for. No FAQPage schema (Google killed FAQ rich results 2026-05-07 — we serve Q&A as prose instead, which is what models extract anyway). No AggregateRating without real reviews. No fake Offer pricing. Schema discipline beats schema volume.

// three_audiences · one_url · three_payloads · zero_collisions

ONE URL.
THREE AUDIENCES.

The same Dutchie URL ships three distinct payloads, segmented by audience. Head metadata and the schema graph land in the raw SSR HTML for everyone. A fully-rendered body aside lands hidden in the markup for crawlers only. And a layer of JS overrides — surviving React's hydration and re-renders — fixes the visible tab title, the on-page H1, and the product description for humans only. Same install. Three audiences. Three payloads.

GET /stores/hii-williamsburg · UA: Googlebot
CRAWLER MODE
GET /stores/hii-williamsburg · UA: Chrome
HUMAN MODE
everyone · the head

in raw SSR HTML · bots AND humans

  • · Unique <title> — 165-210 chars, entity-stacked, geo-haloed
  • · Unique meta description — 140-158 chars, keyword + geo first
  • · Canonical URL — self-referencing, per page
  • · Open Graph title + description for social previews
  • · Linked @id JSON-LD schema graph — page-type-specific
  • · Speakable selectors — voice-search hint at H1 + intro
crawlers only · the answer

hidden body aside · display:none · invisible to humans

  • · Short, scannable H1 — page-type specific
  • · 4-block intro — entity statement, KeyFacts, prose Q&A, differentiator
  • · Plain-text NAP block — auto-pulled from store config
  • · Five cross-links — sibling categories, store home, related brands
  • · Real-time "Open until X today" status with itemprop
  • · Updated timestamp with dateModified microdata
humans only · the polish

JS-injected overrides · survives React hydration

  • · Browser tab title locked to our copy — defeats React's <Head>
  • · Visible on-page H1 swapped — survives 30 seconds of re-renders
  • · Product description swapped on PDPs — bespoke, brand-voiced
  • · Same live Dutchie menu, products, pricing, checkout — untouched
  • · Empty <div id="__next"> preserved · React hydrates normally
  • · Zero added load · zero behavior change · zero UX risk

Bots ignore the JS layer. Humans never see the hidden aside. The head serves both. Three signals from one wire — no collision, no cloaking penalty, no shipped-then-stripped React fight.

// optimization_surface · six_layers · ~30_patterns · voice_search_flagship

EVERY PAGE.
FULLY OPTIMIZED.

Six layers across ~30 distinct optimization patterns: head metadata, schema.org entity graph, server-rendered body, flagship voice-search layer, image alt, and compliance disclosure. Every page rewritten bespoke per URL from your client's own store data, brand voice, and inventory. Your Bay Ridge store doesn't share a single sentence with your Williamsburg store.

// distinct_optimization_patterns_per_page
~0patterns

across 6 layers · voice search flagship · plus 3 forward-compatibility signals

Click any layer to expand. This is what your competitors are missing — every element they don't have is a query you win.

// no_two_urls_alike · deterministic_shuffle · zero_template_collisions

NO TWO URLS ALIKE.

Bay Ridge isn't Williamsburg. The flower category isn't the pre-rolls category. Stiiizy isn't Cookies. Apex generates a unique payload for every URL — title entity-stacked with a deterministic geo halo of 8-10 nearby neighborhoods, NAP block auto-bound from the matching store, five cross-links pulled from the same client's inventory. No template reuse. No copy collisions. Run the diff and see for yourself.

GEO HALO

8-10 nearby districts

Each URL's title pulls neighborhood anchors deterministically shuffled by slug — L-train, Bedford Ave, North Brooklyn for one store, R-train, 86th St, Bay Ridge, Sunset Park for another. Same script, different geometry.

TITLE LENGTH

165 – 210 characters

Entity-stacked: primary keyword + geo + differentiator + brand. Long enough to dominate the SERP snippet, short enough for AI assistants to extract cleanly.

META DESCRIPTION

140 – 158 characters

Primary keyword + geo in the first 60 chars. Ends with a differentiator. Tuned for both Google rich snippets and AI Overview citation copy.

NAP AUTO-BIND

Pulled from store config

Multi-location dispensary? Every URL auto-matches to the right physical address, phone, hours, neighborhood. No copy-paste. No drift between schema and prose.

FIVE CROSS-LINKS

Auto-generated per page

Sibling categories, store home, related brands — pulled from the same client's inventory map, not a generic template. Internal link equity flows where it should.

REAL-TIME STATUS

"Open until 11pm today"

Hours table emits openingHoursSpecification AND a live-rendered "open until" string. Recomputed on the worker, not on the client. AI assistants extract it on first read.

// bot_classification_matrix

59 crawlers fingerprinted

Every request is classified at the edge in <1ms. Crawler hits get full SSR injection. Human hits get head enhancement only — Dutchie React hydrates normally.

live · classifying
Tier · AI / LLM24
GPTBotOAI-SearchBotChatGPT-Useranthropic-aiClaudeBotClaude-WebClaudeUserPerplexityBotPerplexity-UserGoogle-ExtendedApplebot-ExtendedMistralAI-UserCohere-AIDuckAssistBotMeta-ExternalAgentBytespiderAmazonbotCCBotDiffbotFirecrawlAgentYouBotAI2BotPhindBotKagiBot
Tier · Search12
GooglebotGooglebot-ImageGooglebot-NewsBingbotDuckDuckBotYandexBotBaiduspiderApplebotYahoo SlurpSogouNaver YetiSeznamBot
Tier · Social10
facebookexternalhitTwitterbotLinkedInBotSlackbotDiscordbotTelegramBotWhatsAppPinterestbotredditbotSnapchat
Tier · Voice3
Google-Read-AloudAmazon-AlexaApple-Siri
Tier · SEO Tools10
AhrefsBotSemrushBotMJ12botDotBotScreaming FrogrogerbotSitebulbLumarPetalBotExabot
AI

ChatGPT, Claude, Perplexity, Gemini answers

Search

Google, Bing, Apple Maps, DuckDuckGo SERPs

Social

Instagram, TikTok, LinkedIn, Facebook previews

Voice

Alexa, Siri, Google Assistant 'near me'

SEO

Ahrefs, Semrush — competitive parity

// dual_win · google_search · ai_search · same_install

WHY THIS WINS. EVERYWHERE.

Most SEO products solve one surface. Apex MenuEdge structurally fixes the SSR layer of your Dutchie menu — and that single structural change lifts you across classic Google search (Maps, Knowledge Panel, Rich Results, local pack) AND AI search (ChatGPT, Claude, Perplexity, AI Overviews, voice assistants). The same SSR fix unlocks both — because what AI bots need to cite and what Google needs to rank live in the same place: the raw HTML, before JavaScript runs.

google search winsCLASSIC + LOCAL + AI OVERVIEWS

Knowledge Panel + Map Pack

Full LocalBusiness schema with NAP, openingHoursSpecification, areaServed, geo coordinates, telephone — the exact entity set Google reaches for when building the Knowledge Panel and selecting brands for the Local 3-Pack.

Site Reputation Abuse defense

Google's Site Reputation Abuse policy demotes large sites running near-duplicate templated content. Every Dutchie reverse-proxy ships the same shell. We make each URL structurally unique — different title, meta, prose, schema — so your menu reads as authored, not templated.

Helpful Content Update resilience

HCU rewards content that demonstrates first-hand expertise and unique value. Entity-first prose, KeyFacts, brand-voice copy, real store-specific NAP — Apex injects exactly the signal HCU classifiers reward.

Rich Results eligibility

Product schema on every PDP, LocalBusiness on every store home, BreadcrumbList on every page. Eligible for Product rich snippets, Sitelinks, Image SERP, and the "open now / closes at X" SERP labels Google ships from openingHoursSpecification.

Crawl budget reclaimed

Google cuts crawl budget for thin or duplicate content. Move every menu URL from "empty React shell" to "entity-rich SSR" and Google reclassifies the site upward — every product, every category, every store page gets crawled and indexed.

Featured Snippets + People Also Ask

Voice-friendly prose Q&A in the intro block — exactly the structure Google extracts for Featured Snippets and PAA. Schema-less by design because Google killed FAQPage rich results 2026-05-07. Prose still wins the snippet.

Canonical hygiene

Self-referencing canonical on every URL. Dutchie's default canonical chaos (params, sort orders, filters) gets cleaned up. No cannibalization across multi-location stores, no duplicate signal dilution.

Multi-location ranking lift

Multi-store dispensaries suffer hardest from the duplicate shell problem — every location looks identical to crawlers. Apex generates per-location bespoke content + per-location LocalBusiness graph, letting each store rank on its own geographic merit instead of cannibalizing the others.

ai search winsCHATGPT · CLAUDE · PERPLEXITY · VOICE

Indexable content for AI bots

GPTBot, ClaudeBot, PerplexityBot, OAI-Search, Applebot-Extended, Cohere-AI, MistralAI, DuckAssistBot — none execute JavaScript. Apex serves full SSR HTML so they actually have something to index. Without this, AI search is closed to you. Period.

Entity-first citation copy

AI assistants cite the cleanest entity-anchored sentence on a page. Our intro block leads with an entity statement (≤240 chars) — the exact format models extract first when building citations.

Linked @id knowledge graph

Dispensary → Menu → Product → Brand → Store → Place — all interlinked via @id references. Gives AI assistants a clean entity graph to bind your dispensary into their world model. You become a known brand, not a JavaScript stub.

Voice assistant routing

Speakable schema with cssSelector + xpath on every page. Alexa, Siri, Google Assistant Read-Aloud, and AI voice agents extract these blocks directly. "Find me a dispensary in Williamsburg open now" routes to your store.

Google AI Overviews placement

AI Overviews appear on the majority of commercial searches and cite a handful of sources. Eligibility requires extractable SSR content + schema + entity signal — exactly the substrate we ship. Without it, you are categorically not eligible.

Geo halo for &apos;near me&apos; queries

Every URL anchors a deterministic shuffle of 8–10 surrounding neighborhoods. AI assistants resolving location-aware queries get a dense match-surface to bind your store to nearby intent — without spamming or cloaking.

Real-time hours in the answer

"Open until 11pm today" gets emitted in the SSR HTML with openingHoursSpecification + a live-computed string. AI assistants ingest the current status and answer correctly the moment a user asks.

First-mover entrenchment

Once an AI assistant adopts a brand as the canonical citation for a query in a geography, displacing it gets exponentially harder — models reinforce their own past outputs. Ship now and you entrench. Ship later and you fight an established incumbent.

One structural fix at the edge. Sixteen distinct ranking + citation surfaces unlocked — across two search ecosystems. Same Dutchie URL. Same checkout. Same install. The exact unlock no other product in the cannabis ecosystem ships.

// operator_platform · not_a_one_off_install

RUNS LIKE
A PLATFORM.

Behind every client deploy is a full operator dashboard — built and owned by Bud Authority — where overlays are scanned, generated, edited, published, monitored. Multi-tenant from day one. Bulk operations across thousands of URLs. Run telemetry, cost tracking, per-client health monitor, client-facing proof pages. The Worker on your edge is the spear. The dashboard is the war room.

/clients

Multi-Tenant Roster

Every client a separate row — slug, primary domain, injection targets, store catalog. Switch context in one click. Clean isolation, zero cross-bleed.

/scan

Auto URL Discovery

Pulls every URL from the domain sitemap plus per-store sitemaps in ~5–10 seconds for typical clients. Broken Dutchie category URLs auto-normalized at scan time.

/urls

Bulk Per-URL Editor

Filter by overlay status, page type, store. Edit head, schema, body, raw JSON with live preview. Auto-save with 2s debounce. Bulk select → publish in one action.

/runs

Generation Telemetry

Every generation run logged — tokens, cost, per-store outcomes, success/failure status. Full audit trail across every page ever generated.

/health

System Monitor

Live status across Postgres, Anthropic, GitHub, per-client Worker reachability. Watch every edge node from one screen.

/proof

Client-Facing Demos

Per-client demo page with Cloudflare bot-analytics deep-link and SE Ranking project deep-link. The dispensary's "here's what we shipped" surface.

onboarding · zero_to_live~30 MIN
01

Create client record

Slug, primary domain, injection targets, store catalog.

02

Add stores + hours

7-day hours grid per location. Auto-emitted as openingHoursSpecification.

03

Auto-scan sitemap

Every URL pulled in ~5–10 seconds. Dutchie path drift auto-normalized.

04

Bulk generate

Store homes → categories → brands → products. ~$0.05 high-value · ~$0.0013 product.

05

Bulk publish

Select all → publish drafts. Live within ~5 minutes at the edge.

06

Deploy to edge

Two-line addition to the client's reverse-proxy Worker. Verified via crawler-UA curl.

unit_economics · receiptsREAL NUMBERS
HIGH-VALUE PAGE

~$0.05

Store home, category, brand — frontier LLM tier

PRODUCT PAGE

~$0.0013

Per-SKU at scale — fast LLM tier

PER-CLIENT FIRST RUN

~$3.15

50 high-value × $0.05 + 500 products × $0.0013

PER-CLIENT ANNUAL

~$3–$5

Full annual refresh including regen

PLATFORM @ 30 CLIENTS

<$200/yr

Vercel + Supabase + Anthropic + OpenAI/Gemini

EDGE LATENCY

<15ms

Streaming HTMLRewriter — zero-copy

The economics are not what your last SEO agency quoted. This is edge infrastructure, not retainer hours. We can run the entire platform across thirty dispensary clients for less than what a single agency charges per month.

// pull_quote
The structural fix lives in the SSR HTML. That single fix unlocks both Google ranking and AI search citation — because both ecosystems read the same wire before JavaScript runs.

// glossary · category_we_built

SPEAK THE LANGUAGE.

These are the levers Apex MenuEdge pulls on every page. If your current SEO agency can't define them, they aren't competing in 2026.

SEO

Search Engine Optimization

Classic Google/Bing ranking signals. Still required. Still not enough — because the search engine itself is no longer the destination.

AEO

Answer Engine Optimization

Optimization for ChatGPT, Claude, Perplexity, Google AI Overviews. Schema, FAQ, and entity-anchored prose so the AI cites you, by name, with attribution.

GEO

Generative Engine Optimization

Newer term, same surface. Specifically targets generative AI surfaces — both citation patterns and the prose form models prefer to extract.

VOICE-SEARCH

Voice Assistant Optimization

Speakable selectors, conversational h3 patterns, near-me anchors. Single-answer-only outcome means the citation IS the conversion.

SSR

Server-Side Rendering

Delivering fully-rendered HTML so crawlers don't have to execute JavaScript. AI bots don't render JS. SSR or invisibility — pick one.

@id GRAPH

Linked Schema Entity Graph

JSON-LD nodes that reference each other via @id. Dispensary → Menu → Product → Offer all interlinked. The substrate of Knowledge Graph trust.

// the_ninety_day_arc · what_actually_happens

DAY 1 TO DOMINANCE.

Most agencies promise "results in 6-12 months." Apex MenuEdge shows up in AI search within two weeks because the citation layer is structurally different from organic SEO — bots crawl the new SSR, schema graph indexes immediately, voice queries start routing to you the moment your speakable selectors land.

// compounding

And then it keeps compounding. Every weekly cassette regen sharpens the entity. Every new AI crawler that comes online in 2026 and 2027 finds your menus already optimized for it. Every voice query about cannabis in your zip code routes to the dispensary the assistant has the most structured data on. You get the flywheel. They get the void.

// why_competitors_cannot_ship_this · structural_advantage

WHY NOBODY ELSE CAN SHIP THIS.

Not because building it is hard. Because shipping it requires a stack of operational capabilities, vertical knowledge, and ecosystem positioning that took years to assemble — and that nobody outside Bud Authority has built yet.

Layer 01

Cannabis-Vertical Depth

Years of dispensary SEO work, NY/NJ/CT compliance fluency, multi-location optimization patterns, brand-voice patterns across premium / lifestyle / community / wellness / fun archetypes. Generic SEO agencies don't have this. Cannabis tech vendors don't have this either.

Layer 02

Dutchie Pro Preferred Partner

Vetted, authorized, in good standing inside the Dutchie partner program. The relationship that lets us ship integrations into the Dutchie reverse-proxy layer without breaking client menus.

Layer 03

Operator-Grade Platform

Multi-tenant dashboard, bulk per-URL editor, auto-sitemap scanner, run telemetry, per-client health monitor. Not a one-off script — a real platform managing thousands of URLs across multiple clients.

Layer 04

Schema Discipline

Curated entity set Google + AI actually use. No FAQPage (deprecated), no AggregateRating (manual-action risk), no fake Offer pricing. Precision over volume — the schema graph that wins, with nothing flagged.

Layer 05

Per-URL Bespoke Generation

No template reuse. Every URL gets unique title, meta, prose, schema — generated from the client's own store data, inventory, and brand voice. Defeats Site Reputation Abuse, Helpful Content demotion, and duplicate-content penalties.

Layer 06

First-Mover Entrenchment

We started shipping in 2026. Live on real Dutchie menus today. Every AI assistant that adopts our clients as the canonical citation for a query reinforces that selection over time. Models entrench. The window for displacement closes the longer we run.

// ba_manifesto · 2026 · authored_by_mark_wallace

We don't sell SEO. We sell the only path to relevance for the next decade of cannabis e-commerce. The brands that exist in AI-search by 2027 will be the brands that built the substrate in 2026. Apex MenuEdge is that substrate.
— Mark WallaceCo-Founder · Bud Authority

// deployed_now · live_data

RUNNING RIGHT NOW.

Apex MenuEdge is live on Hii NYC's reverse-proxy worker today, serving both the Williamsburg and Bay Ridge dispensary pages. Every Googlebot, GPTBot, ClaudeBot and PerplexityBot hitting those URLs is reading our cassettes — schema graph, FAQ extraction, Speakable selectors, the works.

The operator dashboard streams every crawler hit, every overlay update, every generation run. Your build looks exactly like this from day one — except with your dispensary, your knowledge base, your wins.

HII NYC · WILLIAMSBURG
HII NYC · BAY RIDGE
+ ONBOARDING QUEUE
apex_sentinel · live event stream
last 20 minutes
connecting...

// discipline_as_a_feature · what_we_deliberately_skip

WHAT WE LEAVE OUT.

Every WordPress SEO plugin packs in everything it can — FAQPage, AggregateRating, Offer markup, duplicate Organization schema. We don't. Each one of these is a deliberate skip, grounded in either a Google policy change, a manual-action risk, or a discipline call. Schema discipline beats schema volume.

NO FAQPAGE SCHEMASKIPPED

Google deprecated FAQ rich results 2026-05-07. Search Console reports and Rich Results Test support are gone by 2026-06; API support gone by 2026-08. We serve Q&A as prose in the intro — AI assistants read prose, not schema, for Q&A intent. We don't waste markup on a dead spec.

NO AGGREGATERATINGSKIPPED

Self-issued review schema is a manual-action risk. We don't emit ratings unless they come from a real third-party review platform. Honesty trumps shiny stars in the SERP.

NO OFFER PRICINGSKIPPED

We don't have a live Dutchie pricing feed. Emitting stale or fake Offer schema is worse than emitting none. We'll add it the day we wire real-time inventory.

NO DUPLICATE ORGSKIPPED

Dutchie's React already injects an Organization node client-side. Emitting a second from our edge would conflict and dilute. We skip it cleanly.

NO SPA NAV REWRITESKIPPED

Our optimization runs on initial page load — the moment crawlers index. The next SPA navigation re-runs naturally on the next request. We don't patch Dutchie's router.

NO BLACK-HAT CLOAKINGSKIPPED

The head metadata and schema graph are visible to bots AND humans in the SSR HTML. The hidden body aside is display:none — declared markup, not stealth. AI Overviews extract it cleanly. Google sees the same content twice. Zero cloaking penalty surface.

Every other tool wants to look exhaustive. We want to look precise. The schema graph we emit is the schema graph AI assistants actually use — nothing more, nothing flagged, nothing wasted.

// category_creator · we_have_no_peer

NO ONE ELSE HAS THIS.

Yoast doesn't do this. RankMath doesn't do this. Your current SEO agency doesn't do this. Even Dutchie itself doesn't do this. There is no SaaS, no plugin, no Dutchie Pro Preferred Partner — anywhere — that injects bespoke per-page SEO/AEO/GEO/voice-search content into the Dutchie reverse-proxy response at the Cloudflare edge. Bud Authority does. That's the entire pitch.

CapabilityApex MenuEdge®WordPress SEO PluginsGeneric Edge SEODIY Schema Pages
Reaches reverse-proxied Dutchie menusyesnopartialno
Cannabis-vertical content depthyesnonono
AI crawler SSR injectionyesnopartialno
Per-page bespoke generation (no templates)yesnonono
State-specific cannabis-ad complianceyesnonono
Brand-voice scoring (per-element)yesnonono
Encrypted per-tenant cassettesyesnonono
60+ crawler fingerprint tableyesnopartialno
Voice-search Speakable + near-me anchorsyesnonopartial
Linked @id schema graph (entity SEO)yespartialnopartial

// platform_receipts · numbers_dont_lie

RECEIPTS.

Production-grade telemetry from the Apex MenuEdge operator dashboard. Every metric is what dispensaries running Apex MenuEdge are actually getting today.

0

page-type schema treatments · Product · Category · Brand · Store · Geo

0+

AI / search / social / voice / SEO crawlers fingerprinted at the edge

0ms

median rewrite latency at the edge

0 breakage

paranoid wrapper · Worker never serves a broken menu

0

audiences per URL · head metadata · hidden crawler aside · JS-injected human overrides

0min

client onboarding · auto-scan → bulk-generate → bulk-publish → deploy

// 2027_preview · agentic_commerce

WHEN AI
DOES THE BUYING.

In 2027, half of cannabis purchases will start with a customer asking an AI assistant — and end with the assistant making the purchase decision. ChatGPT's Agent Mode, Anthropic Computer Use, Google's upcoming Gemini-Agents: the buyer-bot is no longer hypothetical. It's shipping.

The agent doesn't scroll your homepage. It doesn't see your hero photo. It reads structured data — schema graphs, FAQ markup, hours, delivery zones, license verifications. If your menu emits that data, the agent picks you. If your menu emits a JavaScript shell, the agent picks the brand that does. Apex MenuEdge is the agent-readable substrate.

Agents read

Schema · FAQ · Speakable · linked @id · structured availability

Agents skip

Hero images · paragraphs of marketing prose · empty React mounts

autonomous_agent · v2027browse_mode · purchasing on user's behalf
reasoning
task

“Buy me 1g of indica flower from a Brooklyn dispensary that delivers tonight, under $40. Pick a licensed shop with verified hours.”

executing next step…
// pull_quote
In 2027, the agent doesn't scroll your homepage. It reads your schema. The brand that wins is the brand the agent can read.

// questions_we_get

FAQ.

What does Apex MenuEdge® actually do for my dispensary?+
It turns your invisible Dutchie menu into the answer ChatGPT, Claude, Perplexity, Google AI Overviews, and voice assistants give when someone asks 'best dispensary near me' — without you doing anything technical, without changing your existing Dutchie storefront, and without slowing down your site. Built and validated as a Dutchie Pro Preferred Partner. It's the only edge-SEO weapon of its kind built specifically for the Dutchie ecosystem.
How quickly will I start showing up in ChatGPT and AI Overviews?+
Day 1: deployed and serving fully-rendered SSR HTML to every crawler. Day 3: indexed by GPTBot, ClaudeBot, PerplexityBot, Googlebot. Day 14: first AI citations begin. Day 30: measurable map-pack and 'near me' improvement. Day 60: surfaced in Google AI Overviews. Day 90: compounding citation growth and ranking lift across Google + AI search. The exact curve depends on your starting baseline, location density, and competition, but the structural unlock is the same across every client.
Do I have to change my Dutchie menu?+
No. Nothing changes for your customers. Apex MenuEdge runs at the Cloudflare edge — it intercepts crawler and user requests in flight, transforms the response, and returns the result. Real users still see the same live Dutchie menu, hydrated normally. Crawlers see a fully-rendered, schema-rich, voice-ready entity. Same URL. Two audiences. One install. Zero change to your Dutchie storefront, products, pricing, or checkout flow.
Will it slow down my website?+
The opposite. Cloudflare HTMLRewriter is streaming and zero-copy — median latency overhead is under 15ms. Crawler responses are cached at the edge for 5 minutes, so repeat AI-bot hits never even touch the worker. And the paranoid try/catch wrapper means if anything ever goes wrong, the original Dutchie response passes through untouched. The worker physically cannot serve a broken page.
How is this different from a WordPress SEO plugin or what my agency does today?+
WordPress SEO plugins optimize content that lives in WordPress. Your Dutchie menu does not. It lives inside a reverse-proxied SPA shell that no plugin, theme, or template can reach. Apex MenuEdge operates at the Cloudflare edge layer — transforming the response after it leaves Dutchie and before it reaches the crawler. There is no other product, agency, or software inside or outside the Dutchie ecosystem doing this. We are the category. As a Dutchie Pro Preferred Partner, Bud Authority is the only partner shipping it.
Why is Bud Authority the only one with this?+
Three reasons. One: cannabis-vertical depth — years of dispensary SEO work, NY/NJ/CT compliance knowledge, multi-location optimization patterns baked into every page we generate. Two: an operator-grade platform — multi-tenant dashboard, bulk per-URL editor, auto-sitemap scanner, run telemetry, per-client health monitor — no other agency or SaaS has shipped this for the Dutchie ecosystem. Three: timing — we started shipping in 2026, before any competitor recognized AI search was the new SERP. By the time anyone catches up, our clients will own the citation layer in their markets.
Why is access limited to Bud Authority clients?+
Because the value isn't in the worker code — it's in the cannabis-vertical SEO knowledge, the per-client dashboard operations, the compliance discipline, and the brand-voice work that goes into every page we generate. We don't license the platform. We deploy it for dispensary clients who hire Bud Authority as their SEO/AEO/GEO partner. That's the only way it gets in — and it's how we guarantee every page that ships is on-brand, on-compliance, and competitive in your specific market.
How many page types do you optimize per store?+
Five distinct page-type treatments, each with its own purpose-built schema graph: Product (BreadcrumbList + Product + Store + Speakable), Category (CollectionPage + Services for Delivery and Pickup), Brand (CollectionPage + Brand + Store), Store Home (WebPage + full LocalBusiness with NAP + areaServed + openingHoursSpecification), and Geo/Neighborhood (WebPage + Place + Service). Each surface gets only the entities AI search engines actually reach for — no template reuse, no entity collisions, no wasted markup.
How fast can you onboard a new client?+
About 30 minutes the first time, ~15 minutes after a few. Create the client record, add stores and hours, auto-scan the sitemap (every URL pulled in ~5–10 seconds), bulk-generate overlays (store homes first, then categories, brands, products), bulk-publish, paste the two-line edit into the client's reverse-proxy Worker, deploy, verify. The dashboard handles the operational workflow end-to-end — multi-tenant, bulk operations, per-URL editor, run telemetry.
Same URL, different content for bots vs humans — isn't that cloaking?+
No. Three things matter here. One: head metadata and the schema graph are visible to both bots AND humans in the raw SSR HTML — the same declared markup, no UA branching. Two: the hidden body aside uses display:none — declared, not stealth. Google itself recommends this pattern for AI-extractable content. Three: the JS-injected human overrides happen client-side AFTER the SSR response — they polish what humans see (tab title, visible H1, product description), they don't hide anything from bots. Same wire, three signals, zero cloaking surface. Tested against Google's spam policy and Rich Results Test.
Why don't you emit FAQPage schema even though you have Q&As on every page?+
Google deprecated FAQ rich results on 2026-05-07. Search Console reports and Rich Results Test support are removed by 2026-06; API support is gone by 2026-08. The schema markup gains nothing in the SERP anymore. Meanwhile, AI search engines like Perplexity, ChatGPT, and Claude read prose — not schema — for Q&A intent. So we serve Q&As in voice-friendly prose form in the intro block, which AI assistants actually extract, and we skip the dead schema markup. Discipline beats clutter.
// pull_quote
Ten years from now, every dispensary owner will tell the story of what they did in 2026. You're writing yours right now.

// 72_hours_to_live · q2_2026 · 12_slots

BETHE ANSWER.

We deploy Apex MenuEdge into your reverse-proxy worker in 72 hours. By day 14 you're showing in ChatGPT. By day 90 you own the citation layer. The window to enter the AI search era is open now. It will not stay open. Ten years from now, every dispensary owner will tell the story of what they did in 2026. You're writing yours right now.

Dutchie Pro Preferred Partner · Bud Authority clients only · 12 slots Q2 2026

BA://OS