From a6c95371959f19e90191e97b83be74ac2e40e4a9 Mon Sep 17 00:00:00 2001 From: Zaid Marzguioui Date: Thu, 2 Apr 2026 16:13:54 +0200 Subject: [PATCH] feat(billing): update pricing tiers to MyEasyCMS plans (EUR) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace MakerKit sample billing config with actual MyEasyCMS tiers: - Starter: 29€/mo (250 members) — Mitgliederverwaltung, SEPA, Website, Newsletter - Pro: 59€/mo (1.000 members) — Kursverwaltung, Buchungen, unbegrenzte Benutzer - Verband: 199€/mo (10.000 members) — Mehrebenen-Hierarchie, Verbandssuche - Enterprise: 349€/mo (unlimited) — dedizierte Infrastruktur, SLA, API All plans: EUR currency, German feature labels, yearly = ~2 months free. Also update marketing i18n subtitles. --- apps/web/config/billing.config.ts | 220 ++++++++++++++++++++++- apps/web/i18n/messages/de/marketing.json | 15 +- apps/web/i18n/messages/en/marketing.json | 21 +-- 3 files changed, 219 insertions(+), 37 deletions(-) diff --git a/apps/web/config/billing.config.ts b/apps/web/config/billing.config.ts index d0780c35f..71b08b732 100644 --- a/apps/web/config/billing.config.ts +++ b/apps/web/config/billing.config.ts @@ -1,8 +1,216 @@ -/* -Replace this file with your own billing configuration file. -Copy it from billing.sample.config.ts and update the configuration to match your billing provider and products. -This file will never be overwritten by git updates +/** + * MyEasyCMS Billing Configuration + * + * Four tiers based on club/organization size: + * Starter — 29 €/mo (up to 250 members) + * Pro — 59 €/mo (up to 1.000 members) + * Verband — 199 €/mo (up to 10.000 members, multi-level hierarchy) + * Enterprise — 349 €/mo (unlimited, dedicated support) + * + * Yearly plans get ~2 months free (billed annually). */ -import sampleSchema from './billing.sample.config'; +import { BillingProviderSchema, createBillingSchema } from '@kit/billing'; -export default sampleSchema; +const provider = BillingProviderSchema.parse( + process.env.NEXT_PUBLIC_BILLING_PROVIDER, +); + +export default createBillingSchema({ + provider, + products: [ + // ── Starter ────────────────────────────────────────────── + { + id: 'starter', + name: 'Starter', + description: 'Für kleine Vereine bis 250 Mitglieder', + currency: 'EUR', + badge: 'Einstieg', + plans: [ + { + name: 'Starter Monatlich', + id: 'starter-monthly', + paymentType: 'recurring', + interval: 'month', + lineItems: [ + { + id: 'price_starter_monthly', + name: 'Starter', + cost: 29, + type: 'flat' as const, + }, + ], + }, + { + name: 'Starter Jährlich', + id: 'starter-yearly', + paymentType: 'recurring', + interval: 'year', + lineItems: [ + { + id: 'price_starter_yearly', + name: 'Starter', + cost: 290, + type: 'flat' as const, + }, + ], + }, + ], + features: [ + 'Bis zu 250 Mitglieder', + 'Mitgliederverwaltung', + 'SEPA-Lastschrifteinzug', + 'Veranstaltungsmanagement', + 'Vereins-Website (Baukasten)', + 'Newsletter-Versand', + 'Dokumenten-Generator', + 'E-Mail-Support', + ], + }, + // ── Pro ─────────────────────────────────────────────────── + { + id: 'pro', + name: 'Pro', + badge: 'Beliebt', + highlighted: true, + description: 'Für aktive Vereine bis 1.000 Mitglieder', + currency: 'EUR', + plans: [ + { + name: 'Pro Monatlich', + id: 'pro-monthly', + paymentType: 'recurring', + interval: 'month', + lineItems: [ + { + id: 'price_pro_monthly', + name: 'Pro', + cost: 59, + type: 'flat' as const, + }, + ], + }, + { + name: 'Pro Jährlich', + id: 'pro-yearly', + paymentType: 'recurring', + interval: 'year', + lineItems: [ + { + id: 'price_pro_yearly', + name: 'Pro', + cost: 590, + type: 'flat' as const, + }, + ], + }, + ], + features: [ + 'Bis zu 1.000 Mitglieder', + 'Alles aus Starter', + 'Kursverwaltung (VHS-Modus)', + 'Buchungssystem (Räume & Gäste)', + 'Rechnungswesen & Mahnungen', + 'Unbegrenzte Benutzer', + 'Benutzerdefinierte Module', + 'Telefon-Support', + ], + }, + // ── Verband ────────────────────────────────────────────── + { + id: 'verband', + name: 'Verband', + badge: 'Verbände', + description: 'Für Verbände und Dachorganisationen', + currency: 'EUR', + plans: [ + { + name: 'Verband Monatlich', + id: 'verband-monthly', + paymentType: 'recurring', + interval: 'month', + lineItems: [ + { + id: 'price_verband_monthly', + name: 'Verband', + cost: 199, + type: 'flat' as const, + }, + ], + }, + { + name: 'Verband Jährlich', + id: 'verband-yearly', + paymentType: 'recurring', + interval: 'year', + lineItems: [ + { + id: 'price_verband_yearly', + name: 'Verband', + cost: 1990, + type: 'flat' as const, + }, + ], + }, + ], + features: [ + 'Bis zu 10.000 Mitglieder', + 'Alles aus Pro', + 'Mehrebenen-Verbandshierarchie', + 'Verbandsweite Mitgliedersuche', + 'Geteilte Vorlagen & Events', + 'Verbands-Berichtswesen', + 'Fischerei-Modul (optional)', + 'Sitzungsprotokolle (optional)', + 'Prioritäts-Support', + ], + }, + // ── Enterprise ─────────────────────────────────────────── + { + id: 'enterprise', + name: 'Enterprise', + description: 'Für große Organisationen mit individuellen Anforderungen', + currency: 'EUR', + plans: [ + { + name: 'Enterprise Monatlich', + id: 'enterprise-monthly', + paymentType: 'recurring', + interval: 'month', + lineItems: [ + { + id: 'price_enterprise_monthly', + name: 'Enterprise', + cost: 349, + type: 'flat' as const, + }, + ], + }, + { + name: 'Enterprise Jährlich', + id: 'enterprise-yearly', + paymentType: 'recurring', + interval: 'year', + lineItems: [ + { + id: 'price_enterprise_yearly', + name: 'Enterprise', + cost: 3490, + type: 'flat' as const, + }, + ], + }, + ], + features: [ + 'Unbegrenzte Mitglieder', + 'Alles aus Verband', + 'Dedizierte Infrastruktur', + 'Individuelle Modulentwicklung', + 'SLA & Uptime-Garantie', + 'Persönlicher Account-Manager', + 'Onboarding & Schulung', + 'API-Zugang', + 'Datenmigration inklusive', + ], + }, + ], +}); diff --git a/apps/web/i18n/messages/de/marketing.json b/apps/web/i18n/messages/de/marketing.json index b7327c99a..3059df287 100644 --- a/apps/web/i18n/messages/de/marketing.json +++ b/apps/web/i18n/messages/de/marketing.json @@ -13,7 +13,7 @@ "faq": "FAQ", "faqSubtitle": "Häufig gestellte Fragen", "pricing": "Preise", - "pricingSubtitle": "Tarife und Zahlungsoptionen", + "pricingSubtitle": "Faire Preise nach Vereinsgröße — alle Funktionen inklusive", "backToBlog": "Zurück zum Blog", "noPosts": "Keine Beiträge gefunden", "blogPaginationNext": "Nächste Seite", @@ -43,28 +43,23 @@ "contactErrorDescription": "Beim Senden ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut", "footerDescription": "Vereins- und Verbandsverwaltung aus Bayern — persönlich, zuverlässig und fair seit 2004. Entwickelt von Com.BISS GmbH, Schierling.", "copyright": "© 2004–{year} Com.BISS GmbH. Alle Rechte vorbehalten.", - "heroPill": "Seit 2004 — 22 Jahre Erfahrung", "heroTitle": "Vereinsverwaltung, die mitwächst", "heroTitleLine1": "Vereinsverwaltung, die", "heroTitleLine2": "mitwächst", "heroSubtitle": "Von der Mitgliederverwaltung bis zum SEPA-Einzug — die Software, der Vereine und Verbände in ganz Bayern seit zwei Jahrzehnten vertrauen. 69.000 verwaltete Mitglieder, 90+ angebundene Vereine.", - "trustedBy": "Vertraut von Vereinen und Verbänden in ganz Bayern", "trustAssociations": "3 Bezirksfischereiverbände", "trustSchools": "VHS & Bildungseinrichtungen", "trustClubs": "90+ Vereine angebunden", "trustOrganizations": "Stadt Regensburg seit 2010", - "statMembers": "Verwaltete Mitglieder", "statOrganizations": "Organisationen", "statYears": "Jahre Erfahrung", "statFederations": "Bezirksverbände", - "featuresHeading": "Alles, was Ihr Verein braucht", "featuresSubheading": "MYeasyCMS wurde speziell für die Bedürfnisse von Vereinen und Verbänden entwickelt — modular aufgebaut, webbasiert und über jeden Browser nutzbar.", "featuresLabel": "Kernmodule", - "featureMembersTitle": "Mitgliederverwaltung", "featureMembersDesc": "Stammdaten, Kontaktinformationen, Mandate, Ehrungen, Historie und Notizen — alles an einem Ort. Mit Abteilungen, Beitragsverfolgung und Mitgliedsausweisen.", "featureCoursesTitle": "Kursverwaltung", @@ -77,10 +72,8 @@ "featureFinanceDesc": "Beitrags- und Gebührenverwaltung, SEPA-Lastschriftmandate, XML-Export und Kontenführung nach Geschäftsjahren. Rechnungen und Zahlungen im Griff.", "featureNewsletterTitle": "E-Mail & Newsletter", "featureNewsletterDesc": "E-Mail-Kommunikation mit Mitgliedern und Newsletter-Versand mit Vorlagen. Halten Sie Ihre Mitglieder informiert.", - "showcaseHeading": "Ein leistungsstarkes Dashboard auf einen Blick", "showcaseDescription": "Erhalten Sie einen vollständigen Überblick über Ihre Organisation — Mitglieder, Kurse, offene Rechnungen und Veranstaltungen — alles von einer zentralen Stelle aus. Schnellaktionen für die häufigsten Aufgaben.", - "testimonialsHeading": "Was unsere Kunden sagen", "testimonialsSubheading": "Vereine in ganz Bayern vertrauen MYeasyCMS für ihre tägliche Arbeit.", "testimonial1Quote": "MYeasyCMS hat unsere Mitgliederverwaltung enorm vereinfacht. Der persönliche Support ist unübertroffen.", @@ -92,18 +85,15 @@ "testimonial3Quote": "Allein die SEPA-Integration spart uns monatlich Stunden. Und das Team setzt unsere Wünsche schneller um als jeder andere Anbieter.", "testimonial3Name": "Sportverein", "testimonial3Role": "Schierling, Kunde seit 2010", - "additionalFeaturesHeading": "Und es gibt noch mehr", "additionalFeaturesSubheading": "Zusätzliche Werkzeuge, die jeden Aspekt der täglichen Vereinsarbeit vereinfachen.", "additionalFeaturesLabel": "Weitere Funktionen", - "featureDocumentsTitle": "Dokumente & Ausweise", "featureDocumentsDesc": "Mitgliedsausweise, Rechnungen, Etiketten, Berichte, Briefe und Zertifikate — aus Vorlagen generiert, exportierbar als PDF und Excel.", "featureSiteBuilderTitle": "Vereins-Website", "featureSiteBuilderDesc": "Erstellen Sie die öffentliche Website Ihres Vereins ohne Programmierkenntnisse — mit Drag-and-Drop-Editor, Veranstaltungen und Kursangebot direkt aus dem CMS.", "featureModulesTitle": "Individuelle Module", "featureModulesDesc": "Erweitern Sie die Plattform mit eigenen Datenmodulen für Gewässer, Fangbücher, Arbeitsdienste oder beliebige weitere Vereinsdaten.", - "whyChooseHeading": "Warum Vereine Com.BISS vertrauen", "whyChooseDescription": "2004 schlossen sich fünf Frauen zusammen und gründeten eine Web-Agentur. Seitdem arbeiten wir Hand in Hand mit unseren Kunden — persönlich, fair und zuverlässig. Geschäftsführerinnen: Brit Schiergl und Elisabeth Zehetbauer.", "whyResponsiveTitle": "Persönlich", @@ -114,7 +104,6 @@ "whySupportDesc": "Faire Preise, schnelle und flexible Umsetzung der Kundenwünsche. Neuentwicklungen und Änderungen zu festen Preisen — keine Überraschungen.", "whyGdprTitle": "100% Server in Deutschland", "whyGdprDesc": "Sitz in Schierling bei Regensburg. Server in Deutschland. DSGVO-konform. Ihre Daten bleiben hier.", - "howItWorksHeading": "In drei einfachen Schritten loslegen", "howItWorksSubheading": "Die Einrichtung Ihres Vereins auf MYeasyCMS dauert nur wenige Minuten.", "howStep1Title": "Testzugang anfragen", @@ -123,12 +112,10 @@ "howStep2Desc": "Aktivieren Sie die benötigten Module — Mitglieder, Beiträge, Gewässer, SEPA — und passen Sie diese an Ihren Verein an.", "howStep3Title": "Vereinsverwaltung starten", "howStep3Desc": "Importieren Sie Ihre bestehenden Mitgliederlisten und legen Sie sofort los — mit persönlicher Unterstützung durch unser Team.", - "pricingPillLabel": "Faire Preise", "pricingPillText": "Keine Begrenzung der Benutzeranzahl", "pricingHeading": "Faire Preise nach Vereinsgröße", "pricingSubheading": "Alle Funktionen inklusive. Keine versteckten Kosten. Persönliche Einrichtung bei jedem Tarif.", - "ctaHeading": "Bereit für eine Verwaltung, die einfach funktioniert?", "ctaDescription": "Fordern Sie einen kostenlosen Testzugang an — oder lassen Sie sich persönlich beraten. Telefon: 09451 9499-09.", "ctaButtonPrimary": "Kostenlosen Testzugang anfragen", diff --git a/apps/web/i18n/messages/en/marketing.json b/apps/web/i18n/messages/en/marketing.json index c6d9d4cfa..28dc7a4b8 100644 --- a/apps/web/i18n/messages/en/marketing.json +++ b/apps/web/i18n/messages/en/marketing.json @@ -13,7 +13,7 @@ "faq": "FAQ", "faqSubtitle": "Frequently asked questions about MYeasyCMS", "pricing": "Pricing", - "pricingSubtitle": "Plans and pricing options", + "pricingSubtitle": "Fair pricing by club size — all features included", "backToBlog": "Back to blog", "noPosts": "No posts found", "blogPaginationNext": "Next Page", @@ -43,28 +43,23 @@ "contactErrorDescription": "An error occurred while sending your message. Please try again later", "footerDescription": "Association and federation management from Bavaria — personal, reliable, and fair since 2004. Developed by Com.BISS GmbH, Schierling.", "copyright": "© 2004–{year} Com.BISS GmbH. All Rights Reserved.", - "heroPill": "Since 2004 — 22 years of experience", "heroTitle": "Association management that grows with you", "heroTitleLine1": "Association management that", "heroTitleLine2": "grows with you", "heroSubtitle": "From member management to SEPA direct debit — the software trusted by associations and federations across Bavaria for two decades. 69,000 managed members, 90+ connected organizations.", - "trustedBy": "Trusted by associations and federations across Bavaria", "trustAssociations": "3 District Fishing Federations", "trustSchools": "Adult Education Centers", "trustClubs": "90+ Connected Clubs", "trustOrganizations": "City of Regensburg since 2010", - "statMembers": "Members managed", "statOrganizations": "Organizations", "statYears": "Years of experience", "statFederations": "District federations", - "featuresHeading": "Everything your organization needs", "featuresSubheading": "MYeasyCMS was built specifically for associations and federations — modular, web-based, accessible from any browser.", "featuresLabel": "Core Modules", - "featureMembersTitle": "Member Management", "featureMembersDesc": "Master data, contact information, mandates, honors, history, and notes — all in one place. With departments, dues tracking, and membership cards.", "featureCoursesTitle": "Course Management", @@ -77,10 +72,8 @@ "featureFinanceDesc": "Dues and fee management, SEPA direct debit mandates, XML export, and account management by fiscal year. Invoices and payments under control.", "featureNewsletterTitle": "Email & Newsletter", "featureNewsletterDesc": "Email communication with members and newsletter distribution with templates. Keep your members informed.", - "showcaseHeading": "A powerful dashboard at a glance", "showcaseDescription": "Get a complete overview of your organization — members, courses, open invoices, and events — all from one central place. Quick actions for the most common tasks.", - "testimonialsHeading": "What our customers say", "testimonialsSubheading": "Organizations across Bavaria trust MYeasyCMS for their daily work.", "testimonial1Quote": "MYeasyCMS has simplified our member management enormously. The personal support is unmatched.", @@ -92,18 +85,15 @@ "testimonial3Quote": "The SEPA integration alone saves us hours every month. And the team implements our requests faster than any provider we have worked with.", "testimonial3Name": "Sports Association", "testimonial3Role": "Schierling, Customer since 2010", - "additionalFeaturesHeading": "And there's more", "additionalFeaturesSubheading": "Additional tools that simplify every aspect of daily association work.", "additionalFeaturesLabel": "More Features", - "featureDocumentsTitle": "Documents & Cards", "featureDocumentsDesc": "Membership cards, invoices, labels, reports, letters, and certificates — generated from templates, exportable as PDF and Excel.", "featureSiteBuilderTitle": "Club Website", "featureSiteBuilderDesc": "Create your club's public website without programming — with a drag-and-drop editor, events, and course offerings directly from the CMS.", "featureModulesTitle": "Custom Modules", "featureModulesDesc": "Extend the platform with custom data modules for waters, catch books, work duties, or any other club data.", - "whyChooseHeading": "Why organizations trust Com.BISS", "whyChooseDescription": "In 2004, five women came together and founded a web agency. Since then, we've worked hand in hand with our customers — personal, fair, and reliable. Managing directors: Brit Schiergl and Elisabeth Zehetbauer.", "whyResponsiveTitle": "Personal", @@ -114,7 +104,6 @@ "whySupportDesc": "Fair prices, fast and flexible implementation of customer requests. New features and changes at fixed prices — no surprises.", "whyGdprTitle": "100% Servers in Germany", "whyGdprDesc": "Based in Schierling near Regensburg. Servers in Germany. GDPR compliant. Your data stays here.", - "howItWorksHeading": "Get started in three simple steps", "howItWorksSubheading": "Setting up your organization on MYeasyCMS takes just minutes.", "howStep1Title": "Request test access", @@ -123,12 +112,10 @@ "howStep2Desc": "Activate the modules you need — members, dues, waters, SEPA — and customize them to fit your organization.", "howStep3Title": "Start managing", "howStep3Desc": "Import your existing member lists and get started right away — with personal support from our team.", - "pricingPillLabel": "Fair Pricing", - "pricingPillText": "No limit on number of users", - "pricingHeading": "Fair pricing based on club size", - "pricingSubheading": "All features included. No hidden costs. Personal setup with every plan.", - + "pricingPillText": "No user limits", + "pricingHeading": "Fair pricing by club size", + "pricingSubheading": "All features included. No hidden costs. Personal onboarding with every plan.", "ctaHeading": "Ready for management that simply works?", "ctaDescription": "Request a free test account — or get personal consultation. Phone: 09451 9499-09.", "ctaButtonPrimary": "Request free test access",