PHASE 12: Startup Operations

Trigger: "Execute Phase 12 as per masterplan."

Goal: Membership One GmbH is legally established, Hetzner Cloud infrastructure is operational, the company uses its own platform (dogfooding), legal compliance documents are templated, marketing channels are active, and go-to-market is executing.

Prerequisite: Phase 11 is completed. Software is deployed and beta-tested.

Reference: Chapter 16 — Startup Operations

Note: Steps are classified as [SOFTWARE], [BUSINESS], or [HYBRID]. [BUSINESS] steps require human action and cannot be fully automated.

(reference: Chapter 16 — Startup Operations, Section 1)

Establish Membership One GmbH as the legal entity.

Formation Checklist (6 weeks):

Week Action Cost
1 Draft Gesellschaftsvertrag (Musterprotokoll), WZ code 62.01 EUR 0 (template)
1 Notarize at Notar EUR 300-500
1-2 Open Geschaeftskonto (Qonto/FYRST), SEPA-capable EUR 0
2 Deposit Stammkapital EUR 25,000 EUR 25,000
2 Notar files Handelsregister (Amtsgericht) EUR 150
2-6 Receive HRB number
3 Gewerbeanmeldung (Gewerbeamt) EUR 20-60
3-4 Finanzamt: Fragebogen, Steuernummer, USt-IdNr. (BZSt) EUR 0
3-4 Insurance: Betriebshaftpflicht (~EUR 300/yr), Cyber (~EUR 500/yr), D&O (~EUR 400/yr) EUR 1,200/yr total
2-3 Engage Steuerberater with DATEV access (~EUR 300/mo) EUR 300/mo
4-5 DATEV Unternehmen Online setup (via Steuerberater) included
1 Register domains (membership-one.com, membership.app) + corporate email ~EUR 30/yr

Total Formation Cost: ~EUR 26,500 (incl. EUR 25,000 Stammkapital) + ~EUR 1,500/yr recurring

Ongoing Compliance: - USt-Voranmeldung (quarterly, 10th of following month) - Lohnsteuer-Anmeldung (monthly, when employees exist) - Jahresabschluss (annually, 12 months after fiscal year end) - Bundesanzeiger Offenlegung (annually) - IHK Beitrag (~EUR 150/yr, automatic upon Gewerbeanmeldung) - DSGVO Verarbeitungsverzeichnis (update annually or on change)

Validation: - [ ] HRB number received - [ ] Bank account active with Stammeinlage deposited - [ ] Steuernummer and USt-IdNr. obtained - [ ] Insurance policies active (Betriebshaftpflicht, Cyber, D&O) - [ ] Steuerberater engaged with DATEV access

Result: Membership One GmbH legally incorporated.


Step 12.1b — [BUSINESS] Service Provider Contracts

(reference: Chapter 16 — Service Provider Registry)

# Provider Service Monthly Cost
1 My-Factura Invoicing, SEPA mandates Variable
2 CashControl Debt collection (via My-Factura) Included
3 Hetzner Cloud Infrastructure ~EUR 100
4 DATEV Tax integration (via Steuerberater) Included
5 Steuerberater Tax advisory ~EUR 300
6 Cloudflare CDN, DNS, WAF EUR 0 (Free)
7 GitLab Source code, CI/CD EUR 0 (Free)
8 SMTP Provider Email delivery ~EUR 10
9 Insurance Business, Cyber, D&O ~EUR 100
10 Domain membership-one.com ~EUR 3
11 Vaultwarden Team credential management Self-hosted
12 Icinga Infrastructure monitoring Self-hosted
13 Dehydrated ACME/TLS certificates Self-hosted

Monthly Fixed Costs Summary (Phase A):

Category EUR/month
Hetzner Cloud (all resources) 97.41
Domains (.com + .app) 2.50
SMTP (Mailgun Flex) 10.00
Steuerberater (retainer + DATEV) 300.00
Insurance (Betriebs + Cyber + D&O, amortized) 100.00
IHK Beitrag (amortized) 12.50
Virtual office (for Handelsregister) 30.00
Marketing (LinkedIn Ads, content) 200.00
Contingency buffer 50.00
Total Fixed Costs ~802
Personnel (5 persons, Phase A) 30,000
Total Monthly Burn Rate ~30,802

Validation: - [ ] All contracts signed, API credentials tested - [ ] My-Factura API functional - [ ] Hetzner Cloud project active - [ ] Monthly burn rate within budget

Result: All service providers contracted. Fixed costs ~EUR 800/month.


Step 12.2 — [SOFTWARE] Hetzner Cloud Infrastructure

(reference: Chapter 14 — Infrastructure, Chapter 16 — Section 3)

Set up production on Hetzner Cloud. Primary: Nuremberg (nbg1), DR: Falkenstein (fsn1).

Server Specifications:

Resource Type Spec Purpose EUR/mo
App Node 1-3 CX32 4 vCPU, 8 GB RAM, 80 GB SSD API pods, worker, scheduler 3x 15.59 = 46.77
Infra Node 1-2 CX22 2 vCPU, 4 GB RAM, 40 GB SSD Redis, RabbitMQ, Prometheus, Grafana, Loki, Icinga, Vaultwarden 2x 5.39 = 10.78
Database Managed PG CPX21 3 vCPU, 4 GB RAM, 80 GB PostgreSQL 18, daily backups, PITR 17.85
Load Balancer LB11 25 targets, TLS termination HTTPS, health checks, Proxy Protocol v2 6.41
Object Storage S3-compatible ~100 GB Documents, backups ~3.00
Floating IPs 2x IPv4 Static Primary + failover 2x 5.05 = 10.10
Volume (Monitoring) Block Storage 50 GB SSD Prometheus TSDB, Loki 2.50
Hetzner Subtotal ~97.41
Cloudflare CDN + WAF + DNS Free plan Edge, DDoS, DNS 0.00
Domains .com + .app Primary + product ~2.50
Grand Total ~99.91

Setup Steps:

  1. Kubernetes: Create K8s cluster (3 app + 2 infra nodes), install: nginx-ingress, cert-manager, sealed-secrets, metrics-server
  2. Networking: Cloud Network 10.0.0.0/16, subnets: 10.0.1.0/24 (K8s), 10.0.2.0/24 (DB), 10.0.3.0/24 (storage)
  3. Firewall Rules: HTTPS (0.0.0.0/0:443), HTTP redirect (0.0.0.0/0:80), SSH (admin IPs only:22), internal (10.0.0.0/16:all), default deny inbound
  4. Managed PostgreSQL: CPX21 in DB subnet, daily backups, PITR via WAL archives, PgBouncer
  5. In-Cluster Services: Redis 7, RabbitMQ 4 (StatefulSets with persistent volumes)
  6. Object Storage: 3 buckets: membership-documents, membership-uploads, membership-backups
  7. Edge: Cloudflare DNS (A records to floating IPs), CDN for static assets, WAF rules, Full(Strict) TLS
  8. TLS: Let's Encrypt via Dehydrated (DNS-01 challenge via Cloudflare API), daily cron, auto-deploy to LB
  9. Backup: Velero daily cluster backup, pg_dump daily to object storage, cross-location replication to Falkenstein (fsn1)
  10. Monitoring Stack:
    • Prometheus (metrics), Grafana (dashboards), Loki + Promtail (logs)
    • Uptime Kuma (external health checks)
    • Icinga (SSL cert monitoring, DNS, SMTP, Cash360 API reachability)
    • Vaultwarden (team credentials, Bitwarden-compatible, MFA)
    • Alerts: email + Telegram bot for P1/P2

Key Alerts:

Alert Condition Severity
API pod down < 2 healthy pods for 2 min P1
API latency high p95 > 2s for 5 min P2
DB connections exhausted > 90% pool for 5 min P1
DB disk > 80% Threshold crossed P2
Certificate expiry < 14 days remaining P2
Pod OOMKilled Any pod P1
Backup failed Non-zero exit P1
Queue depth > 10,000 messages for 15 min P2
Error rate spike 5xx > 1% for 5 min P1

DR Targets: RTO 4h, RPO 1h, MTTR 2h

Validation: - [ ] K8s cluster healthy (kubectl get nodes — all Ready) - [ ] PostgreSQL reachable from app pods - [ ] HTTPS active (Cloudflare → LB → ingress → pods) - [ ] Monitoring operational (Grafana dashboards loaded, alerts configured) - [ ] Backup restore tested (Velero + pg_restore) - [ ] Dehydrated certificate auto-renewal verified - [ ] Icinga monitoring all external endpoints

Result: Production infrastructure operational at ~EUR 100/month.


Step 12.3 — [SOFTWARE] GitLab CI/CD

(reference: Chapter 14 — Infrastructure)

  1. GitLab: gitlab.com SaaS (Free tier initially), monorepo membership-one/membership
  2. Runner: On K8s cluster, Docker-in-Docker, auto-scaling 0-3, cached dependencies
  3. Container Registry: GitLab built-in, retention: 10 tagged images, 30-day cleanup
  4. Pipeline (.gitlab-ci.yml): - Stages: build -> test -> quality -> package -> deploy-dev -> deploy-staging -> deploy-production - Quality: SonarQube scan, Trivy image scan - Deploy: helm upgrade --install with environment-specific values
  5. Branch Strategy: main (prod), develop (integration), feature/, hotfix/

Validation: - [ ] Pipeline succeeds, Docker image pushed, staging deploy works

Result: CI/CD pipeline operational.


Step 12.4 — [HYBRID] Business Automation (Dogfooding)

(reference: Chapter 16 — Section 4)

Configure Membership One GmbH as "Tenant Zero" using own platform.

  1. Organization: Root entity "Membership One GmbH" as Vendor type, EUR, de_DE, Europe/Berlin
  2. CRM Pipeline: LEAD -> CONTACTED -> DEMO_SCHEDULED -> DEMO_COMPLETED -> TRIAL -> PROPOSAL_SENT -> NEGOTIATION -> WON -> ONBOARDING -> ACTIVE
  3. Support: Categories (Bug, Feature, Billing, Onboarding, General), SLA per tier
  4. Accounting: SKR03, cost centers (Dev, Infra, Marketing, Sales, Admin), monthly DATEV export
  5. Communication: Onboarding sequences, billing reminders, newsletter templates
  6. SaaS Billing: Customers as My-Factura Consumers, SEPA Lastschrift, MRR/ARR tracking
  7. Documents: Contract templates (AGB, AVV, NDA), auto-filled, version tracked

Zero External SaaS Result:

Function Tool External?
CRM Own module No
Support Own module No
Accounting Own module + DATEV DATEV only
Billing Own + My-Factura My-Factura
Communication Own + SMTP SMTP only
Documents Own module No
Monitoring Prometheus/Grafana/Icinga Self-hosted
CI/CD GitLab Free tier

Validation: - [ ] CRM pipeline functional, support ticket created/resolved, DATEV export valid, email templates render

Result: Membership One operates on own platform.


(reference: Chapter 16 — Section 5)

  1. AGB (Terms of Service): SaaS subscription, SLA 99.5%, SEPA, liability, termination per tier
  2. Datenschutzerklaerung (GDPR Art. 13/14): Controller, purposes, legal basis, retention, data subject rights, sub-processors
  3. AVV/DPA (GDPR Art. 28): Auto-generated per customer, TOM, sub-processor notification, audit rights
  4. Impressum (TMG Par. 5): Company, HRB, USt-IdNr., managing director, contact
  5. Cookie Policy: Essential only (no consent banner initially)
  6. Templates: Stored in Document module, variables auto-populated, PDF generation

Validation: - [ ] AGB PDF renders, AVV auto-fills, Datenschutzerklaerung complete, Impressum accurate

Result: All legal documents templated in platform.


Step 12.6 — [HYBRID] Website and Marketing

(reference: Chapter 16 — Section 6)

Website: 1. Tech: Hugo or Astro on Cloudflare Pages (free hosting, auto-deploy from Git) 2. Domain: membership-one.com (primary), membership.app (product) 3. Pages: Home, Features, Pricing, Demo Request, Blog, About, Impressum, Datenschutz 4. Pricing Page:

Tier Monthly Annual Member Limit Headline
Starter EUR 0.99 EUR 9.99 20 For evaluation
Team EUR 29 EUR 299 200 For small clubs/studios
Professional EUR 99 EUR 999 2,000 For mid-size organizations
Enterprise From EUR 249 Custom Unlimited For chains and franchises

All prices net (plus applicable VAT).

  1. Demo Flow: Website form → POST /api/crm/leads (via public API) → confirmation email → CRM pipeline → sales follow-up
  2. Blog: 2 articles/month, SEO optimized, schema.org LocalBusiness + SoftwareApplication structured data

Outreach Templates (stored in CRM):

  • Cold Email (to studio owners):

    Subject: [Studio Name] — eine Frage zu Ihrer Mitgliederverwaltung Hi [Name], ich habe [Studio Name] auf Google Maps gesehen — beeindruckende Bewertungen! Kurze Frage: Wie verwalten Sie aktuell Mitgliederbeiträge und Kursanmeldungen? [...]

  • LinkedIn Connection (to Vereinsvorstand):

    Hi [Name], ich sehe, Sie leiten [Verein]. Wir bauen ein modernes Verwaltungstool speziell für deutsche Sportvereine — automatischer Beitragseinzug, Mitglieder-Self-Service, klare Vorstandsberichte. [...]

  • Demo Follow-Up:

    Betreff: Ihr [Organisation] Demo — nächste Schritte [Pain Point 1] → [Feature 1], [Pain Point 2] → [Feature 2]. Ich habe eine 14-Tage-Testversion für Sie eingerichtet: [Link] [...]

Analytics: Plausible (self-hosted, GDPR-compliant, no cookies, no consent banner required)

Social Media: LinkedIn (B2B, 3x/week), Instagram (visual, 2x/week), content calendar managed in own CRM

Validation: - [ ] Website live at membership-one.com - [ ] Demo form creates CRM lead with source=WEBSITE - [ ] Blog section has 2+ articles - [ ] Plausible analytics tracking page views - [ ] Outreach templates stored in CRM

Result: Marketing channels active with website, outreach templates, and analytics.


Step 12.7 — [BUSINESS] Personnel Scaling Plan

(reference: Chapter 16 — Section 7)

Team Scaling by Phase:

Phase Months Team New Role Trigger EUR/mo (employer cost)
A Launch 1-6 5 CEO/GF 4,000
Sr. Backend Developer 7,150
Sr. Frontend Developer 7,150
Full Stack Developer 5,850
QA / DevOps Engineer 5,850
A Total 30,000
B Support 7-12 6 Customer Success Mgr 10 paying customers or CEO support >15h/week 5,200
B Total 35,200
C Growth 13-24 8 Sales Representative Pipeline >20 leads or revenue target 5,850
Marketing Manager Need for consistent lead generation 5,200
C Total 46,250
D Scale 25-36 11 Support Engineer Ticket volume >50/week or SLA <95% 4,550
DevOps Engineer Infrastructure complexity 6,500
Backend Developer Feature backlog exceeds capacity 5,850
D Total 63,150

Monthly Burn Rate Evolution:

Phase Headcount Personnel Fixed Costs Total Burn
A (M1-6) 5 30,000 802 30,802
B (M7-12) 6 35,200 900 36,100
C (M13-24) 8 46,250 1,100 47,350
D (M25-36) 11 63,150 1,500 64,650

Break-Even Analysis:

Scenario Customers MRR (EUR) Monthly Costs Status
Minimum viable 20 (mix) 650 30,802 Loss
Early traction 62 (mix) 2,448 30,802 Loss
Growth 120 (mix) 6,125 30,802 Loss
Break-even ~430 (mix) ~30,270 ~36,000 Near break-even
Profitable 620 (mix) ~46,620 40,000 Profit: ~+6,620

Break-even timeline: 18-24 months after launch (assuming 10-20 new customers/month from month 6).

Candidate tracking via own CRM (Recruitment pipeline: LEAD → SCREENING → INTERVIEW → OFFER → HIRED).

Result: Hiring roadmap with triggers and break-even projection.


Step 12.8 — [BUSINESS] Go-to-Market Strategy

(reference: Chapter 16 — Section 8)

GTM Timeline:

Phase Months Target Revenue Goal
Soft Launch 1-3 3-5 beta clients (free/discounted) Validate PMF, gather testimonials
Paid Launch 4-8 10 paying customers EUR 1,000+ MRR
Growth 9-18 100 customers EUR 10,000+ MRR
Scale 19-36 500+ customers EUR 30,000+ MRR (break-even)

3 Ideal Customer Profiles (ICPs):

ICP Organization Size Decision Maker Sales Cycle Target Tier
1 — Fitness Studio 50-300 members, 1 owner + 2-5 trainers Small Studio owner (single) 1-2 weeks Team/Professional
2 — Sports Club (Verein) 100-500 members, volunteer Vorstand Medium Board vote (2-4 people) 2-6 weeks Team
3 — Dance/Martial Arts 30-200 members, 1 owner/instructor Small School owner (single) 1-2 weeks Team

Channel Strategy:

Channel Phase EUR/mo Expected Leads/mo Cost/Lead
SEO / Blog A 50 5-10 EUR 5-10
LinkedIn Organic A 0 3-5 EUR 0
LinkedIn Ads B 150-300 10-20 EUR 15-30
Google Ads B 100-200 5-10 EUR 20-40
Referral Program B 0 2-5 EUR 0 (1 month free)
Partner / Associations C 50 5-10 EUR 5-10
Trade Shows C 200 20-30 EUR 7-10

Year 1 Priority: Direct outreach (CEO cold emails + LinkedIn) → SEO content → Referrals → LinkedIn Ads

KPIs: - MRR, ARR, monthly churn (<5%), CAC (EUR 1,500), LTV:CAC >3:1 - NPS (>30), trial-to-paid conversion (>20%), time-to-value (<7 days) - Track all in own CRM module + Grafana business dashboard

Result: GTM executing with 3 ICPs, multi-channel strategy, and revenue generation.


Step 12.9 — [SOFTWARE] Phase 12 Documentation

  1. Update doc/operations/deployment-guide.md (Hetzner specifics)
  2. Update doc/business/marketing-guide.md (GTM, pricing, content calendar)

Step 12.10 — [SOFTWARE] Update Intranet

Run python doc/intranet/build.py.


Phase 12 — Quality Gate

# Check Target
1 GmbH incorporated HRB number, Steuernummer, USt-IdNr.
2 Service providers all contracts active
3 Hetzner infrastructure K8s, PostgreSQL, monitoring operational
4 CI/CD pipeline deploying to staging + production
5 Dogfooding Tenant Zero using CRM, Support, Accounting
6 Legal documents AGB, Datenschutz, AVV, Impressum templated
7 Website live at membership-one.com
8 Beta customers 3+ onboarded and active
9 Documentation + intranet updated
10 CLAUDE.md updated

Report: "Phase 12 completed. Membership One GmbH operational. Infra ~EUR 100/month."

---