feat: Sprint 14 — Marketing & Monetization
Deploy to TrueNAS / deploy (push) Failing after 33s

- Landing page with hero, feature grid, trust signals
- Split-layout login redesign (admin + portal)
- Pricing page with storage tiers (5GB/50GB/unlimited)
- StorageQuotaService backend (V36 migration, 402 on exceeded)
- Frontend storage integration + 402 error handling
- StorageController uses TenantContext for tenant isolation
- onTierChange() hook for subscription tier updates
This commit is contained in:
Patrick Plate
2026-06-18 20:27:54 +02:00
parent 52d23053e7
commit dad798a904
24 changed files with 2485 additions and 212 deletions
+77 -2
View File
@@ -44,7 +44,8 @@
"emailInvalid": "Bitte gib eine gültige E-Mail-Adresse ein.",
"passwordRequired": "Bitte gib dein Passwort ein.",
"passwordTooShort": "Passwort muss mindestens 8 Zeichen lang sein.",
"footerText": "Sichere Verwaltung für deinen Cannabis-Anbauverein"
"footerText": "Sichere Verwaltung für deinen Cannabis-Anbauverein",
"loginTitle": "Anmelden"
},
"dashboard": {
"title": "Dashboard",
@@ -668,6 +669,18 @@
"starter": "E-Mail",
"pro": "Priorität",
"enterprise": "Dediziert"
},
"compStorage": {
"label": "Speicher",
"starter": "5 GB",
"pro": "50 GB",
"enterprise": "Individuell"
},
"compOverage": {
"label": "Überschreitung",
"starter": "Upgrade nötig",
"pro": "0,15 €/GB/Mo",
"enterprise": "—"
}
},
"faq": {
@@ -690,7 +703,29 @@
"migration": {
"question": "Kann ich den Plan später wechseln?",
"answer": "Ja, du kannst jederzeit zwischen Starter und Pro wechseln. Ein Upgrade wird sofort wirksam, ein Downgrade zum nächsten Abrechnungszeitraum."
},
"storage": {
"question": "Was passiert, wenn mein Speicher voll ist?",
"answer": "Im Starter-Plan kannst du auf Pro upgraden. Im Pro-Plan wird zusätzlicher Speicher mit 0,15 €/GB/Monat berechnet. Enterprise-Kunden haben individuelle Speichervereinbarungen."
}
},
"storage": {
"starter": "5 GB Speicher",
"pro": "50 GB Speicher",
"proOverage": "(danach 0,15 €/GB/Monat)",
"enterprise": "Individueller Speicher",
"comparisonTitle": "Funktionen im Vergleich",
"featureMembers": "Mitglieder",
"featureStorage": "Speicher",
"featureOverage": "Überschreitung",
"featureGrow": "Grow-Kalender",
"featureApi": "API-Zugang",
"featureMultiClub": "Multi-Club",
"overageUpgrade": "Upgrade erforderlich",
"overagePro": "0,15 €/GB/Mo",
"overageEnterprise": "—",
"unlimited": "Unbegrenzt",
"custom": "Individuell"
}
},
"impressum": {
@@ -753,6 +788,46 @@
"s9Content": "Der Anbieter verarbeitet personenbezogene Daten gemäß der Datenschutzerklärung und den Bestimmungen der DSGVO. Soweit der Anbieter Daten im Auftrag des Nutzers verarbeitet, wird ein gesonderter Auftragsverarbeitungsvertrag geschlossen.",
"s10Title": "§ 10 Schlussbestimmungen",
"s10Content": "Es gilt das Recht der Bundesrepublik Deutschland. Gerichtsstand ist, soweit gesetzlich zulässig, der Sitz des Anbieters. Sollten einzelne Bestimmungen dieser AGB unwirksam sein, bleibt die Wirksamkeit der übrigen Bestimmungen unberührt. Änderungen der AGB werden dem Nutzer rechtzeitig mitgeteilt."
},
"home": {
"heroTitle": "Die smarte Verwaltung für deinen Anbauverein",
"heroSubtitle": "Compliance, Anbau, Mitglieder und Abgaben — alles in einer Plattform. Rechtssicher nach KCanG.",
"ctaPrimary": "Preise ansehen",
"ctaSecondary": "Jetzt anmelden",
"featuresTitle": "Alles, was dein Verein braucht",
"featuresSubtitle": "Von der Mitgliederverwaltung bis zur Behördenmeldung — CannaManage deckt den gesamten Vereinsbetrieb ab.",
"feature1Title": "Compliance Tracking",
"feature1Desc": "Automatische Überwachung der KCanG-Vorgaben mit Fristen und Checklisten.",
"feature2Title": "Grow Management",
"feature2Desc": "Anbaukalender, Wachstumsphasen und Sensorintegration.",
"feature3Title": "Mitglieder-Portal",
"feature3Desc": "Self-Service für Mitglieder: Profil, Abgabehistorie, Dokumente.",
"feature4Title": "Abgabe-Quotas",
"feature4Desc": "Automatische Einhaltung der 25g/Tag und 50g/Monat Grenzen.",
"feature5Title": "Dokumenten-Archiv",
"feature5Desc": "GoBD-konforme Ablage mit Aufbewahrungsfristen und Versionierung.",
"feature6Title": "Finanzverwaltung",
"feature6Desc": "Mitgliedsbeiträge, SEPA-Export und Bankimport.",
"trustTitle": "Vertrauen durch Compliance",
"trustCanverg": "CanVerG-konform",
"trustDsgvo": "DSGVO & GoBD",
"trustEncryption": "TLS-verschlüsselt",
"trustGerman": "Hosting in Deutschland",
"ctaFinalTitle": "Bereit für den nächsten Schritt?",
"ctaFinalSubtitle": "Starte jetzt mit CannaManage und bring deinen Verein auf das nächste Level.",
"ctaFinalButton": "Kostenlos testen"
},
"nav": {
"features": "Features",
"pricing": "Preise",
"login": "Anmelden",
"footerTagline": "Die sichere Verwaltungssoftware für Cannabis-Anbauvereine in Deutschland.",
"footerProduct": "Produkt",
"footerLegal": "Rechtliches",
"impressum": "Impressum",
"datenschutz": "Datenschutz",
"agb": "AGB",
"allRightsReserved": "Alle Rechte vorbehalten."
}
},
"infoBoard": {
@@ -1210,4 +1285,4 @@
"size": "Größe"
}
}
}
}
+77 -2
View File
@@ -44,7 +44,8 @@
"emailInvalid": "Please enter a valid email address.",
"passwordRequired": "Please enter your password.",
"passwordTooShort": "Password must be at least 8 characters.",
"footerText": "Secure management for your cannabis cultivation club"
"footerText": "Secure management for your cannabis cultivation club",
"loginTitle": "Sign In"
},
"dashboard": {
"title": "Dashboard",
@@ -668,6 +669,18 @@
"starter": "Email",
"pro": "Priority",
"enterprise": "Dedicated"
},
"compStorage": {
"label": "Storage",
"starter": "5 GB",
"pro": "50 GB",
"enterprise": "Custom"
},
"compOverage": {
"label": "Overage",
"starter": "Upgrade required",
"pro": "€0.15/GB/mo",
"enterprise": "—"
}
},
"faq": {
@@ -690,7 +703,29 @@
"migration": {
"question": "Can I switch plans later?",
"answer": "Yes, you can switch between Starter and Pro at any time. Upgrades take effect immediately, downgrades at the next billing period."
},
"storage": {
"question": "What happens when my storage is full?",
"answer": "On the Starter plan, you can upgrade to Pro. On the Pro plan, additional storage is billed at €0.15/GB/month. Enterprise customers have custom storage agreements."
}
},
"storage": {
"starter": "5 GB Storage",
"pro": "50 GB Storage",
"proOverage": "(then €0.15/GB/month)",
"enterprise": "Custom Storage",
"comparisonTitle": "Feature Comparison",
"featureMembers": "Members",
"featureStorage": "Storage",
"featureOverage": "Overage",
"featureGrow": "Grow Calendar",
"featureApi": "API Access",
"featureMultiClub": "Multi-Club",
"overageUpgrade": "Upgrade required",
"overagePro": "€0.15/GB/mo",
"overageEnterprise": "—",
"unlimited": "Unlimited",
"custom": "Custom"
}
},
"impressum": {
@@ -753,6 +788,46 @@
"s9Content": "The provider processes personal data in accordance with the privacy policy and GDPR provisions. Where the provider processes data on behalf of the user, a separate data processing agreement is concluded.",
"s10Title": "§ 10 Final Provisions",
"s10Content": "The law of the Federal Republic of Germany applies. The place of jurisdiction is, to the extent legally permissible, the registered office of the provider. Should individual provisions of these terms be invalid, the validity of the remaining provisions remains unaffected. Changes to these terms will be communicated to the user in good time."
},
"home": {
"heroTitle": "The Smart Management for Your Cannabis Club",
"heroSubtitle": "Compliance, growing, members and distributions — all in one platform. Legally compliant under KCanG.",
"ctaPrimary": "View Pricing",
"ctaSecondary": "Sign In",
"featuresTitle": "Everything Your Club Needs",
"featuresSubtitle": "From member management to regulatory reporting — CannaManage covers all aspects of your club operations.",
"feature1Title": "Compliance Tracking",
"feature1Desc": "Automatic monitoring of KCanG requirements with deadlines and checklists.",
"feature2Title": "Grow Management",
"feature2Desc": "Growing calendar, growth phases and sensor integration.",
"feature3Title": "Member Portal",
"feature3Desc": "Self-service for members: profile, distribution history, documents.",
"feature4Title": "Distribution Quotas",
"feature4Desc": "Automatic enforcement of 25g/day and 50g/month limits.",
"feature5Title": "Document Archive",
"feature5Desc": "GoBD-compliant storage with retention periods and versioning.",
"feature6Title": "Financial Management",
"feature6Desc": "Membership fees, SEPA export and bank import.",
"trustTitle": "Trust Through Compliance",
"trustCanverg": "CanVerG compliant",
"trustDsgvo": "GDPR & GoBD",
"trustEncryption": "TLS encrypted",
"trustGerman": "Hosted in Germany",
"ctaFinalTitle": "Ready for the Next Step?",
"ctaFinalSubtitle": "Start with CannaManage now and take your club to the next level.",
"ctaFinalButton": "Try for Free"
},
"nav": {
"features": "Features",
"pricing": "Pricing",
"login": "Sign In",
"footerTagline": "The secure management software for cannabis cultivation clubs in Germany.",
"footerProduct": "Product",
"footerLegal": "Legal",
"impressum": "Imprint",
"datenschutz": "Privacy Policy",
"agb": "Terms",
"allRightsReserved": "All rights reserved."
}
},
"infoBoard": {
@@ -1219,4 +1294,4 @@
"size": "Size"
}
}
}
}