An interactive, intelligence-driven map of cannabis seed breeders, seed banks, dispensaries, and cultivators across the United States. Built to solve a real problem: with pending federal hemp legislation prohibiting cannabis seeds from crossing state lines, growers need to know what genetics are available within their state β right now.
Live: seed-map.poweredbyci.live
The 2025 hemp law will end the free flow of cannabis genetics across state borders. Once it takes effect, the seeds available within your state become your only legal options. Most growers don't know what's available locally β and there was no single resource mapping the entire US seed distribution network.
CI Seed Map is the most comprehensive, independently researched directory of cannabis seed sellers in the United States. Every entry was manually verified β documenting who they are, where they operate, what genetics they carry, and how to reach them.
- 763 geocoded pins across 27+ states and international locations
- Red pins for physical storefronts, blue pins for online sellers
- Filter by type: Breeder, Seed Bank, Dispensary, Cultivator
- Filter by state, toggle online sellers
- Marker clustering with brand-colored density indicators
- Select one or more breeders from a scrollable, searchable list of 924 unique breeders
- Map shows every location that carries the selected breeder(s) using logo markers
- Priority stack β when a location carries multiple selected breeders, the first-checked breeder's logo shows with a green ring and
+Nbadge - Deduplicated by
parent_idfor multi-location breeders
- Live search by name, city, or state with logo-enhanced results
- Geolocation "Find Me" button β zooms to user's location with a branded radius circle
- Logo + name + type badge
- Address, phone, hours, website
- Brand logo grid β clickable logos of carried breeders (up to 12, with "+N more")
- Accordion β expandable "More Info" with strain highlights and editorial audit notes
- AWS API Gateway + Lambda β data served via authenticated API, not a static JSON file
- Time-limited session tokens (30-minute HMAC-signed tokens)
- Age gate (21+) β must accept before accessing data
- Private S3 bucket β no public access to raw data
- Anti-scraping by design
- Mobile-first with collapsible filter panel
- Hamburger navigation menu
- Touch-optimized popups and controls
- Adaptive zoom levels for portrait/landscape
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Frontend β
β index.html (Leaflet.js + MarkerCluster) β
β βββ Age Gate β sessionStorage β
β βββ GET /token β session token β
β βββ GET /data (+ token header) β map renders β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββ
β API Gateway (Regional) β
β seed-map-api (2u8vskmld7) β
β βββ GET /token β
β βββ GET /data β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββ
β Lambda (Python 3.12) β
β seed-map-api β
β βββ Token generation (HMAC-SHA256) β
β βββ Token validation + expiry check β
β βββ S3 read β return JSON β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββΌββββββββββββββββββββββββββββ
β S3 (Private) β
β seed-map-data-170377509849 β
β βββ breeder_data.json (1,039 entries) β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
| Metric | Count |
|---|---|
| Total entries | 1,039 |
| Unique breeders (parent_id) | 924 |
| Geocoded locations | 763 |
| States covered | 27+ |
| Brand logos | 700+ |
| Brand relationships mapped | 1,155 |
id Β· parent_id Β· img_root Β· name Β· legal_name Β· url Β· type Β· location Β· street_address Β· city Β· state Β· zip_code Β· country Β· phone Β· email Β· order Β· delivery Β· hours Β· status Β· audit_note Β· links Β· highlights Β· brands Β· last_verified Β· lat Β· lng
Every entry includes hand-written editorial audit notes documenting the breeder's history, breeding philosophy, notable strains, and distribution channels.
| Layer | Technology |
|---|---|
| Map | Leaflet.js 1.9.4 + MarkerCluster |
| Tiles | OpenStreetMap |
| Icons | Font Awesome 6.5 |
| Geocoding | Nominatim (via geopy) |
| Backend | AWS Lambda (Python 3.12) |
| API | AWS API Gateway (Regional) |
| Storage | AWS S3 (private) |
| Auth | HMAC-SHA256 session tokens |
| Forms | Formspree (20k/month free tier) |
| Hosting | Static (S3/CloudFront or any CDN) |
seed-map-usa/
βββ index.html # Main map application
βββ mission.html # Mission statement & hemp law context
βββ contact.html # Dynamic contact forms (Formspree)
βββ privacy.html # Privacy Policy
βββ terms.html # Terms of Service
βββ disclaimer.html # Disclaimer
βββ footer.js # Shared footer (single source of truth)
βββ assets/
β βββ img/ # Favicon, CI badge, preview, payment badges
β βββ logo/ # 700+ brand logos (mapped by parent_id)
βββ breeders/ # Breeder hero images
βββ aws/
β βββ lambda_function.py # Lambda source
β βββ lambda.zip # Deployment package
β βββ trust-policy.json # IAM trust policy
β βββ lambda-policy.json # IAM permissions policy
βββ README.md
# Serve locally (requires breeder_data.json for offline dev)
python -m http.server 8000
# Rebuild JSON from CSV (if editing data locally)
python build_json.py
# Geocode new entries
python geocode.pyNote: The production map fetches data from AWS. For local development without API access, place a breeder_data.json in the root directory and temporarily swap the fetchData() call to fetch('breeder_data.json').
All resources are prefixed with seed-map- to avoid conflicts with other projects in the same account.
| Resource | Name/ID |
|---|---|
| S3 Bucket | seed-map-data-170377509849 |
| Lambda | seed-map-api |
| API Gateway | seed-map-api (2u8vskmld7) |
| IAM Role | seed-map-lambda-role |
| Stage | prod |
| Endpoint | https://2u8vskmld7.execute-api.us-east-1.amazonaws.com/prod |
TOKEN_SECRETβ HMAC signing keySESSION_MINUTESβ Token TTL (default: 30)
Shannon Goddard β 3 weeks of manual research, verification, and editorial writing. 1,039 entries with hand-written audit notes, 700+ logos sourced and processed, relationship mapping across 1,155 brand connections. The dataset that powers this map is the result of deep industry knowledge and relentless digging.
Amazon Q Developer β Full-stack build including:
- Interactive map with dual-mode UI (Location + Breeder mode)
- Logo marker system with priority stack logic
- Responsive design with mobile-first approach
- AWS backend architecture (S3 + Lambda + API Gateway)
- Session token authentication system
- Age gate with legal compliance
- Geocoding pipeline (Nominatim batch processing)
- Contact forms with intelligent routing
- Legal documents (Privacy, Terms, Disclaimer)
- Navigation system (hamburger menu, sticky bars)
- Loading animations, search, geolocation
- Data protection strategy
- Leaflet.js β Interactive maps
- OpenStreetMap β Map tiles
- Nominatim β Geocoding
- Formspree β Form handling
- Font Awesome β Icons
- AWS β Backend infrastructure
Β© 2026 Loyal9 LLC. All rights reserved.
The data, editorial content, and compiled database are proprietary. The source code for the frontend map interface is available for reference but may not be used commercially without permission.
- Admin: admin@loyal9.app
- Partnerships: shannon@loyal9.app
- Legal: legal@loyal9.app
- Web: poweredby.ci
Cannabis Intelligence for a changing landscape. π±