*p5.brush
p5.brush.js is a versatile library for the p5.js ecosystem, tailored for artists, designers, and hobbyists who wish to explore natural textures in generative art. This library extends the drawing capa
Chrome extension for cannabissage.app: badges, compare, and Pro filters, taste-map match, and multi-store support on dispensary menus. Stripe Checkout — not medical advice.
PluginsJavaScript · TypeScriptGitHub @shaissOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Loading the full README. The saved excerpt is shown below.
Chrome extension (Manifest V3, v1.3) that enhances supported dispensary listing and product pages with retailer-published cannabinoid and terpene information, comparison, filters, sorting, and a local taste-map match score. Optional Pro unlocks via Stripe Checkout on the website (never inside the extension).
Stores: Supported dispensary menus via in-repo adapters — see docs/ADAPTERS.md. The public Supported list is the partner registry — see docs/PARTNERS.md. Ops can pause a host without a rebuild — see docs/DENYLIST.md.
Monetization: docs/MONETIZATION.md · landing + API in web/.Read the full README ↗Chrome extension (Manifest V3, v1.3) that enhances supported dispensary listing and product pages with retailer-published cannabinoid and terpene information, comparison, filters, sorting, and a local taste-map match score. Optional Pro unlocks via Stripe Checkout on the website (never inside the extension).
Stores: Supported dispensary menus via in-repo adapters — see docs/ADAPTERS.md. The public Supported list is the partner registry — see docs/PARTNERS.md. Ops can pause a host without a rebuild — see docs/DENYLIST.md.
Monetization: docs/MONETIZATION.md · landing + API in web/.
Displays information published by the retailer. Not medical advice.
chrome://extensionsextension/ folder./scripts/pack-extension.sh
Creates dist/cannabis-sage-<version>.zip.
Free: hover tooltips, basic badges, compare tray, PDP panel on supported dispensary menus, optional on-device taste profile.
Pro (launch promo $9/yr or $4/mo for 30 days after LAUNCH_DATE, then $59/yr or $9/mo): taste-map match, filters/sort, export, deal badges, chem insights across more stores you shop, picks for you from your local profile + cached menus.
P0–P2: compare, PDP, badges, TTL cache, taste-map/filters/sort/glossary/export/deals, in-repo store adapters.
P3: Stripe Checkout website, webhooks, license keys, extension entitlement gates.
| Piece | Role |
|---|---|
extension/adapters/* | Store registry + site-specific parsing |
extension/lib/csi-entitlement.js / csi-features.js | License + Free/Pro gates |
web/ | Next.js landing, Checkout, webhooks, activate/validate/portal APIs |
bridge.js | MAIN-world React/client props + SPA notify |
cd web && cp .env.example .env.local # add Stripe test keys + price id
npm install && npm run dev
stripe listen --forward-to localhost:3000/api/webhook
Extension defaults to prod API https://cannabissage.app (Vercel alias https://cannabissage.vercel.app remains in host_permissions as fallback). For local entitlement against npm run dev, set chrome.storage.local.csi_api_base to http://localhost:3000 (or temporarily edit extension/data/config.json).
See PRIVACY.md and STORE_LISTING.md.
localStorage.setItem('cannabisSageDebug', '1');
location.reload();
node scripts/smoke-adapters.mjs
node scripts/smoke-partners.mjs
node scripts/smoke-profile.mjs
node scripts/smoke-picks.mjs
node web/scripts/smoke-monetization.mjs
Personal / educational project. Use at your own discretion and in line with retailer terms and local law.