Skip to content

Latest commit

Β 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌱 CI Seed Map β€” Find Cannabis Seeds Near You

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 Problem

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.

The Solution

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.


Features

πŸ“ Location Mode

  • 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

🌱 Breeder Mode

  • 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 +N badge
  • Deduplicated by parent_id for multi-location breeders

πŸ” Search & Locate

  • 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

πŸ“‹ Rich Popups

  • 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

πŸ”’ Data Protection

  • 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

πŸ“± Fully Responsive

  • Mobile-first with collapsible filter panel
  • Hamburger navigation menu
  • Touch-optimized popups and controls
  • Adaptive zoom levels for portrait/landscape

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                   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)          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Data

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

Schema (25 columns)

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.


Tech Stack

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)

Project Structure

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

Local Development

# 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.py

Note: 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').


AWS Resources

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

Environment Variables (Lambda)

  • TOKEN_SECRET β€” HMAC signing key
  • SESSION_MINUTES β€” Token TTL (default: 30)

Credits

Data & Research

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.

Development & Architecture

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

Built With


License

Β© 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.


Contact


Cannabis Intelligence for a changing landscape. 🌱

About

An interactive, intelligence-driven map of cannabis seed breeders, seed banks, dispensaries, and cultivators across the United States, designed to help growers navigate state-specific genetic availability.

Topics

Resources

Code of conduct

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages