# 🌿 CannaManage β€” Cannabis Club Management SaaS ## Strategic Plan & Feasibility Assessment **Author:** Patrick (Lumen, 2026-04-04)** **Status:** Draft for review --- ## Executive Summary Germany's **Konsumcannabisgesetz (CanG)**, in force since April 1, 2024, legalised cannabis for personal use and established a framework for **Anbauvereinigungen** (cannabis social clubs / CSCs). These clubs face significant mandatory compliance burdens with almost **zero software tooling** available to help them. This is the market gap. **CannaManage** is a **B2B SaaS platform** for cannabis social clubs in Germany. It handles their mandatory member management, distribution tracking, stock management, compliance reporting, and member portal β€” replacing Excel sheets and pen-and-paper with a purpose-built regulated-sector management tool. **Verdict: βœ… LEGAL β€” βœ… MONETIZABLE β€” ⚠️ WITH SPECIFIC CAUTION** --- ## 1. Legal Feasibility Check ### 1.1 The Law: Konsumcannabisgesetz (CanG) β€” Key Facts Source: Federal Health Ministry FAQ (verified 2026-04-04 via bundesgesundheitsministerium.de) | Rule | Detail | |------|--------| | Personal possession | 25g in public, 50g at home | | Home growing | Max 3 plants per adult | | CSC distribution | 25g/day, 50g/month per adult member | | Members 18-21 | Max 30g/month, max 10% THC | | Max club density | 1 club per 6,000 residents per district (state-optional) | | **Advertising ban** | **TOTAL ban on advertising and sponsoring of cannabis AND Anbauvereinigungen** | | Documentation | Mandatory tracking: who received what, when, contamination traceability | | Prevention officer | Clubs must designate a PrΓ€ventionsbeauftragter | | Youth protection concept | Mandatory health & youth protection plan required | | Reporting obligations | Regular documentation and reporting to authorities | ### 1.2 The Critical Question: Does a SaaS Platform Violate the Advertising Ban? **Β§ CanG: "Generelles Werbe- und Sponsoringverbot fΓΌr Cannabis und Anbauvereinigungen"** This is the key legal boundary. The advertising ban applies to: - Advertising **for** cannabis - Advertising **for** Anbauvereinigungen (the clubs themselves) **A B2B management tool is NOT advertising.** Here is why: | Scenario | Legal Status | Reasoning | |----------|-------------|-----------| | Public directory "Find clubs near you" | ❌ Illegal | Constitutes advertising for clubs | | "Sign up to discover CSCs in your city" | ❌ Illegal | Discovery = advertising | | B2B dashboard used by club admins | βœ… Legal | Internal operations software | | Member portal (member logs in to see their club's stock) | βœ… Legal | Member already joined; no advertising | | Compliance reporting tools for clubs | βœ… Legal | Administrative software, like tax software | | Payment processing for member fees | βœ… Legal | Financial operations, not advertising | | Marketing the SaaS **to clubs** via B2B channels | βœ… Legal | Selling software to businesses is normal | **The analogy:** Shopify doesn't become a drug dealer when a pharmacist uses it. A POS system for a bar doesn't make the bar illegal. We sell **operational software** to licensed, regulated entities. We are not in the cannabis business. ### 1.3 Positioning β€” Critical Architecture Decision The platform **MUST NOT** include: - Public-facing club discovery (no "find clubs near you") - Any feature that functions as advertising for a specific club to non-members - Stock information visible to non-members (which could look like advertising) The platform **SHOULD** include: - Member login restricted to verified club members only - Club admin portal (sign-up via direct B2B sales / word-of-mouth β€” not public listing) - Explicit "this software is for existing clubs and their verified members" framing ### 1.4 DSGVO / Data Privacy Clubs handle sensitive personal data (membership, health-adjacent data). Our platform must: - Store all data in Germany/EU (Hetzner, not AWS us-east) - Provide DSGVO-compliant data processing agreements (DPA/AVV) - Enable data export and deletion per member request - Have clear privacy policies in German ### 1.5 Legal Risk Register | Risk | Probability | Impact | Mitigation | |------|-------------|--------|-----------| | Advertising ban reinterpretation to include B2B SaaS | Low | High | Legal opinion before launch; strict no-discovery design | | New German government rolls back CanG | Medium | High | Modular architecture β€” pivot to compliance-only if needed | | Payment processors (Stripe) block cannabis-adjacent businesses | Medium | High | Use Stripe (they allow compliance software); never process cannabis payments | | Club licenses revoked / clubs fail | Medium | Medium | Diversified customer base; per-month billing (easy to cancel) | | DSGVO violation | Low | Very High | EU hosting, DPA agreements, security audit | **Bottom line:** The legal risk is manageable with correct product positioning. We are selling **compliance management software**, not cannabis. --- ## 2. Market Analysis ### 2.1 Market Size **Potential CSC count in Germany:** - Germany population: ~83 million - If 1 club per 6,000 residents (theoretical maximum): ~13,800 clubs - Realistic 2025-2028 formation rate: **500–3,000 active clubs** - Reason: complex licensing process, LΓ€nder-specific delays, conservative uptake initially **Consumer backdrop:** - **5.05 million adults** consumed cannabis in the past 12 months (2024 survey) - **670–823 tonnes** consumed in 2024 β€” huge demand - This is not a niche; it is a mainstream market with a regulatory moat **Total Addressable Market (TAM):** - 3,000 clubs Γ— €79/month average = €2.85M ARR - 500 clubs Γ— €79/month = €475K ARR (conservative bootstrap target) - Even 100 paying clubs = €94,800 ARR β€” a solid side hustle ### 2.2 Why Clubs Desperately Need This The CanG creates massive administrative burden on clubs: | Requirement | Pain Without Software | |------------|----------------------| | Track every distribution (who, what, how much, when) | Excel sheets, manual errors | | Monthly quantity caps per member | Manual math, compliance risk | | Youth protection (18-21 THC cap, quantity cap) | Manual age checks | | Contamination traceability | Paper trail disaster | | Prevention officer reporting | No standard format exists | | Member data management (DSGVO) | Illegal if done on personal email/phone) | | Annual reporting to authorities | No tooling from the state | These clubs are **legally required** to do this. They will pay for something that makes compliance manageable. ### 2.3 Competition Check **Current competitors (estimated):** - **None known** at launch time specifically for German CSCs (market is <2 years old) - General club management software (e.g., ClubDesk, easyVerein) β€” not cannabis-compliant, lack distribution tracking - Generic SaaS tools (Airtable, Notion) β€” no compliance features, no German legal mapping **Timing advantage is critical.** The window to establish market leadership is 2026-2027 before larger players notice. --- ## 3. Product: Feature Specification ### 3.1 MVP (Version 1 β€” Ship First) **For Club Admins:** - Club registration and setup wizard - Member management (add/remove, age, contact, membership date) - Age verification flag (18+, 18-21 restricted category) - Distribution log: record each handout (member, strain, weight, date/time) - Monthly limit enforcement: system warns/blocks if member exceeds 50g (or 30g for under-21) - Stock management: strains, quantities, batch info - Simple dashboard: total members, distributions this month, stock levels **For Members (Member Portal):** - Login with club-issued credentials - View personal distribution history - View current stock availability (what strains are available) - View remaining monthly quota - Request distribution appointment (optional, club configures) **Compliance Tools:** - Monthly distribution report export (PDF + CSV) for authority reporting - Member list export for inspections - Contamination alert: flag a batch and see all members who received it - Prevention officer information tracking ### 3.2 Version 2 (Growth Features) - Payment processing for membership fees (Stripe β€” no cannabis payments) - Automated waiting list management - Email/SMS notifications to members - Multi-strain grow tracking (integrate growing calendar) - **Mobile: PWA first** β€” Spring Boot serves a responsive web app; works on all Android/iOS browsers, no App Store submission needed - **Mobile: Kotlin Android app** β€” native Android app for Play Store distribution (covers ~70% of German users); Kotlin is essentially better Java, Patrick can leverage existing JVM knowledge directly - API for custom integrations - Analytics dashboard (club-level, anonymised trends) ### 3.3 Version 3 (Scale Features) - **Kotlin Multiplatform (KMP)** β€” shared business logic in Kotlin + Compose Multiplatform UI deployed to Android + iOS + web from one codebase; natural step after the Kotlin Android app - Multi-location club support - White-label option for large club networks - Legal template library (Satzungen, Jugendschutzkonzept, etc.) - Integration with German authority reporting portals (if they exist) - Prevention officer training module --- ## 4. Revenue Model ### 4.1 Pricing Tiers (SaaS) | Plan | Price/month | Members | Key Features | |------|-------------|---------|-------------| | **Starter** | Free | Up to 30 | Distribution log, basic member management | | **Basic** | €29/month | Up to 100 | + Compliance reports, stock management | | **Professional** | €79/month | Up to 500 | + Member portal, batch tracking, exports | | **Enterprise** | €179/month | Unlimited | + API, multi-location, priority support | **Rationale:** - Free tier creates word-of-mouth in the club community - Professional is the sweet spot for a typical club (100-300 members) - Freemium-to-paid conversion pressure: "your club hit 30 members, upgrade to continue" ### 4.2 Revenue Projections | Scenario | Paying Clubs | Average Plan | MRR | ARR | |----------|-------------|-------------|-----|-----| | Bootstrap (Year 1) | 30 | €49 | €1,470 | €17,640 | | Growth (Year 2) | 150 | €65 | €9,750 | €117,000 | | Scale (Year 3) | 500 | €79 | €39,500 | €474,000 | **Year 1 is realistic as a side hustle while working at ADP.** ### 4.3 Additional Revenue Streams - **Setup fee:** Optional one-time €99–299 onboarding fee for Professional/Enterprise - **Legal templates:** Sell standardised Satzung, Jugendschutzkonzept templates (€49 one-time) - **Training:** Webinars for PrΓ€ventionsbeauftragter (€149/person) β€” high-value, low-effort - **Affiliate/referral:** Partner with lawyers who advise clubs (they refer clients, we pay commission) --- ## 5. Tech Stack ### 5.1 Skills Assessment β€” ⚠️ CORRECTED (Java is Patrick's primary language) > **Important correction:** The initial plan had this backwards. Python is *Lumen's* language, used for MCP servers. Patrick's real expertise is **Java** β€” JPA/EclipseLink, JAXB, PrimeFaces, Maven, Jakarta EE. He built the entire wellmann-shop without AI, and wrote a custom JPA-annotation-style flatfile parser for euBP/DSAK. The stack below is redesigned around Java as the primary language. | Technology | Patrick's Level | Required? | |-----------|----------------|-----------| | Java (Spring Boot / Quarkus) | βœ… **Expert** | Yes β€” backend | | JPA / EclipseLink | βœ… **Expert** | Yes β€” ORM layer | | JAXB | βœ… Expert | Yes β€” report generation | | PrimeFaces / JSF | βœ… Expert | Optional β€” one frontend path | | Maven | βœ… Expert | Yes β€” build tool | | PostgreSQL | βœ… Good | Yes β€” database | | Docker | βœ… Comfortable | Yes β€” deployment | | Spring Security / JWT | 🟑 Familiar | Yes β€” auth | | Kotlin (Android / KMP) | 🟑 **Natural transition** β€” same JVM, IntelliJ | Yes β€” mobile v2/v3 | | Compose Multiplatform | 🟑 New but Kotlin-based | Yes β€” cross-platform UI v3 | | Vaadin Flow (Java UI) | 🟑 New, Java-native | Alternative fast frontend | | React / Next.js | ❌ Needs learning | Best long-term web frontend | | Stripe Java SDK | 🟑 New (REST, documented) | Yes β€” billing | | German DSGVO practical | ⚠️ Basic | Critical β€” legal | ### 5.2 Frontend Choice β€” The Real Decision With Java as the primary language, three paths exist: **Option A: Vaadin Flow β€” Full Java, zero JavaScript (fastest start)** - Write UI in pure Java β€” no HTML/CSS/JS required - Deeply integrated with Spring Boot, component-based - Patrick can start immediately with zero new language learning - Downside: Vaadin commercial license for some features; UI looks enterprise-y **Option B: PrimeFaces + JSF β€” Patrick already knows this cold** - Built wellmann-shop entirely from scratch with PrimeFaces - Runs on Quarkus, WildFly, or Payara - Zero learning curve β€” known patterns, fast to ship - Downside: JSF is considered legacy by the wider web community; not ideal for modern SaaS polish **Option C: Spring Boot backend + Next.js/React frontend (Best long-term)** - Java stays the backend β€” Patrick's full existing strength - React/Next.js frontend β€” one-time learning investment - Standard modern SaaS architecture (2024+); best hiring/community ecosystem - Downside: React/Next.js learning curve (~4-6 weeks) **Recommendation:** Start with **Option B (PrimeFaces)** to ship an MVP fast with zero learning overhead. Migrate the frontend to **Option C (Next.js)** in Version 2 when revenue justifies the investment. This is pragmatic β€” ship first, polish later. ### 5.3 Recommended Stack ``` Frontend: PrimeFaces + JSF (MVP) β†’ Next.js/React (v2+) Backend: Spring Boot 3.x (Java 21) β€” REST API + JPA/Hibernate ORM: JPA/Hibernate (Patrick's core expertise) Database: PostgreSQL + Flyway migrations Auth: Spring Security + JWT (stateless sessions) Payments: Stripe Java SDK (subscriptions, webhooks) PDF Reports: iText 7 or Apache PDFBox (Java, battle-tested) Email: Jakarta Mail / Resend.com REST API Hosting: Hetzner Cloud VPS (German DC, GDPR, €5-20/month) β€” TrueNAS.local Docker for dev/staging CI/CD: Gitea Actions β†’ Hetzner (Maven build pipeline) Monitoring: Sentry Java SDK (free tier) ``` **Why this stack:** - Spring Boot + JPA = Patrick's natural habitat β€” fastest possible iteration on the backend - PrimeFaces MVP = zero new tools, ship in weeks not months - PostgreSQL + Flyway = production-grade, schema migrations Patrick knows from JPA patterns - Hetzner = German hosting, cheap, GDPR-compliant by design - Stripe Java SDK = mature, handles EU VAT + subscription billing - iText/PDFBox = Java-native PDF generation for compliance reports (no Python dependency) ### 5.4 Architecture Overview ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ CannaManage Platform β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Admin Portal β”‚ β”‚ Member Portal β”‚ β”‚ β”‚ β”‚ PrimeFaces/JSF β”‚ β”‚ PrimeFaces/JSF (MVP) β”‚ β”‚ β”‚ β”‚ Next.js (v2+) β”‚ β”‚ Next.js/React (v2+) β”‚ β”‚ β”‚ β”‚ - Club setup β”‚ β”‚ - Login (club-issued) β”‚ β”‚ β”‚ β”‚ - Member mgmt β”‚ β”‚ - Stock view β”‚ β”‚ β”‚ β”‚ - Distribution β”‚ β”‚ - My quota / history β”‚ β”‚ β”‚ β”‚ - Compliance β”‚ β”‚ - Request pickup β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ ↓ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Spring Boot 3.x Backend (Java 21) β”‚ β”‚ β”‚ β”‚ - REST API (Spring MVC) β”‚ β”‚ β”‚ β”‚ - JPA/Hibernate entities β”‚ β”‚ β”‚ β”‚ - Business logic + compliance rules β”‚ β”‚ β”‚ β”‚ - PDF report generation (iText 7) β”‚ β”‚ β”‚ β”‚ - Spring Security + JWT β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ ↓ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ PostgreSQL β”‚ β”‚ β”‚ β”‚ - Multi-tenant β”‚ β”‚ β”‚ β”‚ (tenant_id on all β”‚ β”‚ β”‚ β”‚ JPA entities) β”‚ β”‚ β”‚ β”‚ - Flyway migrations β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β”‚ β”‚ β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ β”‚ β”‚ Stripe Java SDK β”‚ Email (Jakarta Mail) β”‚ β”‚ β”‚ β”‚ (subscription billing) β”‚ (notifications) β”‚ β”‚ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### 5.5 New Skills Needed β€” Revised Learning Path | Skill | Priority | Patrick's Starting Point | Resource | |-------|----------|--------------------------|----------| | Spring Boot 3.x REST | 🟑 Medium | Knows Jakarta EE β€” similar model | spring.io/guides | | Spring Security + JWT | 🟑 Medium | Security concepts from JEE | Baeldung tutorials | | Flyway migrations | 🟑 Medium | Knows JPA schema generation | flyway.io/docs | | Stripe Java SDK | 🟑 High | Knows REST from Java | stripe.com/docs/billing | | Next.js / React | πŸ”΄ For v2+ | Zero JS framework experience | nextjs.org/learn (free) | | Docker + Compose | 🟑 Medium | Comfortable with Docker basics | Hetzner deploy guides | | German DSGVO practical | πŸ”΄ Critical | Basic awareness | Legal counsel + AVV templates | **Pragmatic MVP path:** Use PrimeFaces (Patrick knows it cold) β†’ ship MVP β†’ earn first revenue β†’ invest time in Next.js for v2. --- ## 6. Go-To-Market Strategy ### 6.1 Phase 0 β€” Build & Validate (Private Beta) **Goal:** Working MVP, 3-5 beta clubs, collect real feedback **Actions:** - Join German cannabis clubs online community (Telegram groups, Reddit r/cannabisde) - Find 3-5 club admins willing to test for free - Build MVP focused on distribution tracking + compliance reports (the biggest pain) - Do NOT launch publicly until legally reviewed **Where to find early adopters:** - Hanfverband Deutschland (German Hemp Association) β€” they represent clubs - Online forums: Rollitup.de German section, GreenPassion.de - Local cannabis clubs in your area - LinkedIn outreach to CSC founders ### 6.2 Phase 1 β€” Soft Launch (€0 β†’ First €1K MRR) **Target:** 30+ paying clubs, Basic plan minimum **Channels (all B2B, no cannabis advertising):** - Word of mouth between club admins (community is small and tight-knit) - Content marketing: blog posts about "how to manage CanG compliance" (targets club admins searching for help) - Partner with lawyers advising clubs (they refer clients) - Hanfverband newsletter mention (not advertising β€” editorial content about compliance tools) - LinkedIn / XING posts targeted to "Vereinsvorstand" / "VereinsgrΓΌnder" keywords ### 6.3 Phase 2 β€” Growth (€1K β†’ €10K MRR) - Referral program (clubs refer other clubs for free months) - German startup press (GrΓΌnderszene, t3n) - Templates marketplace (Satzungen, Jugendschutzkonzepte) - Webinar series for PrΓ€ventionsbeauftragte --- ## 7. Business Structure & Risk ### 7.1 Legal Entity **Recommendation:** Register as a **Gewerbetreibender / Einzelunternehmen** first (simplest), then transition to **GmbH** when revenue exceeds €50K/year. - No special license needed to sell software to cannabis clubs - You are NOT a cannabis business β€” you sell management software - Standard software VAT applies (19% German USt) ### 7.2 Banking & Payments - **DO NOT** describe your business as "cannabis software" to banks - Describe it as: "Vereinsverwaltungs-Software" (club management software) - Stripe works fine for compliance software β€” they block cannabis sales, not software for cannabis-adjacent industries - Open a separate business account early (Kontist, Finom, or Deutsche Bank business) ### 7.3 Exit Scenarios | Scenario | When | Valuation Range | |----------|------|----------------| | Keep as passive income | Year 2+ at €5K MRR | N/A | | Sell to larger SaaS player | Year 3+ at €20K MRR | 3-5Γ— ARR (~€720K-1.2M) | | Raise seed funding | Year 2 with 200+ clubs | €500K-€2M round | | Pivot to EU expansion | Year 3 | Same platform, localised | --- ## 8. Development Roadmap ### Phase 0 β€” Foundation (Weeks 1-8, solo) - [ ] Set up Spring Boot 3.x project (Maven, JPA/Hibernate, PostgreSQL, Flyway) - [ ] Design JPA entities: Club, Member, Distribution, Strain, Batch (multi-tenant via tenant_id) - [ ] Build core REST API (member CRUD, distribution log) - [ ] Build admin portal with PrimeFaces (Patrick already knows this) - [ ] Distribution limit enforcement logic (25g/day, 50g/month, 30g/month under-21) - [ ] Simple PDF compliance report export (iText 7) - [ ] Spring Security + JWT auth (club admin login) - [ ] Deploy to Hetzner VPS (Docker Compose) ### Phase 1 β€” MVP (Weeks 9-16) - [ ] Member portal (PrimeFaces, login with club-issued creds, quota view, stock view) - [ ] Stock management module (strains, batches, quantities) - [ ] Contamination batch recall feature - [ ] Stripe Java SDK integration (subscription billing) - [ ] DSGVO: privacy policy, data processing agreement (AVV), cookie consent - [ ] Beta launch with 5 clubs (free, feedback-only) ### Phase 2 β€” Launch (Months 5-8) - [ ] Payment flows live (Stripe webhooks, subscription lifecycle) - [ ] Email notification system (Jakarta Mail / Resend API) - [ ] Marketing site (cannamanage.de β€” example name, separate Next.js landing page) - [ ] Legal review of terms, privacy, advertising compliance - [ ] Formal soft launch to club community - [ ] First paying customers ### Phase 3 β€” Growth (Months 9-18) - [ ] Frontend migration: PrimeFaces β†’ Next.js/React (when revenue justifies it) - [ ] Mobile-optimised (PWA) - [ ] Legal template marketplace (Satzungen, Jugendschutzkonzepte) - [ ] Referral program - [ ] Webinar series for PrΓ€ventionsbeauftragte - [ ] Hire first part-time support person --- ## 9. Honest Assessment β€” Strengths & Weaknesses ### Strengths βœ… - **First mover advantage** β€” nobody is doing this well yet - **Regulatory moat** β€” the compliance burden creates permanent demand - **B2B SaaS** β€” predictable recurring revenue - **Patrick's Java expertise** β€” Spring Boot + JPA = fastest possible backend iteration (this is his daily tool at ADP) - **PrimeFaces knowledge** β€” built a full shop UI from scratch; zero learning curve for MVP frontend - **Low competition** β€” niche market overlooked by big players - **Low infra cost** β€” Hetzner VPS €5-20/month, manageable ### Weaknesses / Challenges ⚠️ - **Modern frontend gap** β€” Next.js/React must eventually be learned for v2 polish (deferred, not blocking) - **Market is young** β€” clubs are still forming, slow regulatory licensing in some LΓ€nder - **Political risk** β€” new German government could tighten the law - **Churn risk** β€” if a club closes, subscription ends immediately - **Payment friction** β€” some processors are cannabis-adjacent-averse (mitigated by correct positioning) - **Two-sided attention** β€” building while working full-time at ADP is slow (nights/weekends) - **Spring Boot learning curve** β€” Patrick knows Jakarta EE / JEE; Spring Boot 3.x is adjacent but not identical ### The Honest Path This is a **18-24 month project** to meaningful passive income: - Months 1-3: Spring Boot setup + PrimeFaces MVP (using existing Java knowledge β€” fast!) - Months 4-6: Beta with 5 clubs, Stripe integration, DSGVO compliance - Months 7-12: Paid launch, first 30-50 paying clubs - Year 2+: €5-10K MRR is realistic, genuine passive with <10h/week --- ## 10. Immediate Next Steps 1. **Join 2-3 German cannabis club communities** (Telegram, Reddit) β€” listen, don't sell yet 2. **Start Next.js tutorial** (nextjs.org/learn) β€” 1 hour/day, 4 weeks 3. **Create a Supabase project** β€” explore multi-tenancy with Row Level Security 4. **Set up the project repo** (pi_mcps/cannamanage or separate Gitea repo) 5. **Talk to 3 club admins** β€” validate the pain before writing a line of code 6. **Get a legal opinion** (€300-500 from a cannabis law specialist β€” worth it before launch) --- ## Appendix: Key CanG References | Provision | Content | |-----------|---------| | Β§2 CanG | Definitions β€” Anbauvereinigung, Mitglied | | Β§Β§15-26 CanG | Anbauvereinigungen β€” formation, rights, obligations | | Β§22 CanG | Distribution limits (25g/day, 50g/month) | | Β§23 CanG | Under-21 restrictions (30g/month, 10% THC) | | Β§Β§6-7 CanG | Advertising and sponsoring ban | | Β§26 CanG | Documentation and reporting obligations | | Β§27 CanG | Prevention officer requirements | --- *Plan created: 2026-04-04 | Next review: 2026-05-01 | Status: Awaiting Patrick's approval*