Case Study

njlegalize.me isn't a new idea — the original site ran from 2017 to 2023 tracking New Jersey's path toward legalization, following the news as the state's cannabis laws took shape. We brought it back with a new focus: building the bridge between NJ cannabis + business communities. Now that the market is live, the open question isn't "will this happen," it's "where does someone go to find a licensed cannabis business in New Jersey?" The state's market had launched without a centralized, accurate directory — consumers couldn't verify who was actually licensed, and businesses had no cannabis focused place online to claim their presence. We rebuilt njlegalize.me end-to-end to answer that: a Laravel backend with server-rendered Blade templates, Alpine.js for interactivity, and MySQL, indexing every licensed dispensary, brand, and legal service in the state.
That launch was the starting point, not the finish line. Over the two months since, we've kept building on the same platform:
We also spent a concentrated stretch on the unglamorous work: converting the image pipeline to WebP, fixing largest-contentful-paint and layout-shift issues, splitting JS and CSS bundles per view type, and correcting color contrast sitewide for WCAG AA. None of it changes what the site does, but it's why the site stays fast as it grows.
A growing, actively maintained directory of NJ cannabis businesses — searchable by type, location, and license status, with one-click favoriting.
Location-aware search with a live events layer, shareable filtered map links, and favoriting straight from the map popups.
A points economy earned through searches, shares, reviews, and referrals — redeemable in a points-only store checkout.
Laravel backend with server-rendered Blade templates, Alpine.js for interactivity, and Filament for content management.
Alpine.js
Lightweight reactivity for dropdowns, modals, and interactive UI in Blade templates
Laravel
REST API, business logic, auth, background jobs
MySQL
Production-parity database — no SQLite shortcuts
Filament
Admin UI for content editors and business moderation
Tailwind CSS
Design system with dark/light variants throughout
Pest
TDD from day one, full feature and unit test coverage
DigitalOcean
Single-droplet deploy: PM2 + PHP-FPM + Nginx
GitHub Actions
CI on every push with a MySQL service container
Leaflet
Interactive directory map with location search and an events layer
GA4
Custom event tracking for loyalty-program earn/redeem and map engagement





We built njlegalize.me end-to-end — design, API, database, CI/CD, and deployment. If you need a production-grade platform built by people who understand the cannabis market, let's talk.
Directory listings cross-referenced against the official NJ Cannabis Regulatory Commission registry — mismatches flag for admin review, not silent errors.
Community ratings and reviews, with claimed business owners able to respond directly — plus admin moderation tooling.
Real photos, verified hours, and maps pulled from Google Places — authoritative data, not self-reported.
