LucidDataMind
← Back to Blog
February 20268 min read

How We Built a Cannabis Intelligence Platform in 3 Weeks

MOGanja went from a spreadsheet of Missouri Department of Commerce and Regulation licensing data to a live SaaS product — with 490 licensed entities, 81K+ products, an AI strain finder, dispensary listings, market analytics, and Stripe billing — in 21 days.

This isn't a brag. It's a case study in what happens when you apply an already-proven methodology to a new vertical. Here's every decision we made and why.

Starting Point: 490 Licensed Entities

Missouri's cannabis market is regulated by the DCR, which publishes licensing data for all facilities — dispensaries, cultivators, manufacturers, transporters, and testing labs. That data was available as an Excel export with basic entity information: name, license number, type, status, and address.

490 records. Not big data. Not complex. But scattered, unstructured, and not available anywhere as a unified intelligence product.

The Data Enrichment Pipeline

Raw licensing data gives you names and addresses. That's not intelligence. Intelligence requires enrichment, and here's how we built it:

Google Places API: For every licensed dispensary, we pulled ratings, reviews, hours, phone numbers, and geographic coordinates. This turned a regulatory spreadsheet into a consumer-useful dataset.

Dispensary Menu Integration: Dutchie powers online ordering for most Missouri dispensaries. The platform architecture includes a full menu ingestion pipeline — strain names, prices, weights, categories, and availability — designed around the Dutchie API. Native menu integration is actively being developed through direct dispensary partnerships, with Metrc compliance certification in progress as a prerequisite for licensed operator relationships.

Claude Vision API: For dispensaries with product images but no structured descriptions, we used Claude's vision capability to extract strain information, product details, and categorization from images.

The result: 490 entities enriched to a depth that no manual process could match.

Why Next.js + Neon + Vercel

Stack choice: Next.js 14 (App Router), Neon PostgreSQL, Vercel, Tailwind CSS, Claude API.

Next.js because it's the fastest path from data to production web application. Server components for data-heavy pages, client components for interactivity, API routes for the chat and search features. One framework, one deployment.

Neon because serverless PostgreSQL scales to zero when nobody's using it and handles concurrent connections gracefully. For a platform that might have 10 users or 10,000, the autoscaling model is ideal.

Vercel because git-push deploys, automatic preview environments, and edge functions. The time between "git push" and "live on the internet" is about 45 seconds.

This stack has essentially zero marginal cost per additional user. The Neon bill is under $20/month. Vercel's free tier handles the traffic. The only variable cost is Claude API calls, and those are pennies per query.

Stripe Integration and Monetization

MOGanja monetizes through featured dispensary listings at $100/month. Dispensaries can claim their listing and get priority placement, enhanced profiles, and analytics.

The Stripe integration was straightforward: Customer creation, Subscription with a single price ID, webhook listener for subscription lifecycle events, and a simple admin dashboard showing MRR and subscriber status.

Total time to implement billing: about 4 hours. Stripe's API is genuinely excellent.

The AI Layer

Two AI features went live with the platform:

Mo Knows — An AI chat assistant that answers cannabis questions using live MOGanja data. Built on Claude API with the same server-side architecture we use for LucidChat.

Missouri Strain Finder — Search 81K+ products by strain name, product type, or natural language query. Claude processes the query, generates the search parameters, and returns ranked results.

What Surprised Us

The speed of enrichment surprised us the most. We expected the Google Places integration to take days of debugging. It took hours. The API is well-documented, the data is structured, and our Bronze/Silver/Gold pipeline pattern made it straightforward to ingest, normalize, and serve.

What We'd Do Differently

We'd add market analytics from day one. HHI concentration analysis, operator network mapping, and market trends were added after launch. They should have been part of the initial architecture because they're the most valuable features for B2B users.

We'd also implement email alerts earlier. The dispensary leads table (1,704 records) and the watchlist feature could have been launched simultaneously with the platform.

The Replicable Part

The most important takeaway: the MOGanja build wasn't a one-off. The same pattern — regulatory data + enrichment APIs + medallion architecture + AI layer + Next.js SaaS — applies to any vertical with public data and no unified intelligence product.

Real estate. Healthcare. Legal. Federal contracting. Agriculture. Any industry where licensed entities exist and data is fragmented.

Want a platform like this for your vertical? Schedule a scoping call at luciddatamind.com/contact.

Ready to build your data platform?

Let's talk about what a modern data platform looks like for your organization — no pressure, no sales pitch.

Book a Consultation