feat(pitch-deck): version-aware Strategy slide (Wandeldarlehen vs 1 Mio)
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m16s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 37s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 33s
All checks were successful
Build pitch-deck / build-push-deploy (push) Successful in 1m16s
CI / go-lint (push) Has been skipped
CI / python-lint (push) Has been skipped
CI / nodejs-lint (push) Has been skipped
CI / test-go-consent (push) Successful in 37s
CI / test-python-voice (push) Successful in 36s
CI / test-bqas (push) Successful in 33s
Strategy slide now shows different phases per pitch version: Wandeldarlehen (lean): - Phase 1: 3 Personen, ~60k ARR, Prototyp → Produktiv - Phase 2: 4-5 Personen, ~200k ARR, erster Dev + Security - Phase 3: 5-7 Personen, ~500k-1M ARR, Vertrieb + Break-Even - Phase 4: 7-10 Personen, ~2-3M ARR, profitabel organisch 1 Mio (unchanged): - Phase 1-4: 5→35 MA, 75k→10M ARR Risks slide already visible for both versions (in slide order). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -212,7 +212,7 @@ export default function PitchDeck({ lang, onToggleLanguage, investor, onLogout,
|
|||||||
case 'annex-sdk-demo':
|
case 'annex-sdk-demo':
|
||||||
return <SDKDemoSlide lang={lang} />
|
return <SDKDemoSlide lang={lang} />
|
||||||
case 'annex-strategy':
|
case 'annex-strategy':
|
||||||
return <StrategySlide lang={lang} />
|
return <StrategySlide lang={lang} isWandeldarlehen={isWandeldarlehen} />
|
||||||
case 'annex-finanzplan':
|
case 'annex-finanzplan':
|
||||||
return <FinanzplanSlide lang={lang} investorId={investor?.id || null} preferredScenarioId={preferredScenarioId} />
|
return <FinanzplanSlide lang={lang} investorId={investor?.id || null} preferredScenarioId={preferredScenarioId} />
|
||||||
case 'annex-glossary':
|
case 'annex-glossary':
|
||||||
|
|||||||
@@ -9,11 +9,98 @@ import { Shield, ScanLine, FileText, Rocket, Users, Building2, Globe, TrendingUp
|
|||||||
|
|
||||||
interface StrategySlideProps {
|
interface StrategySlideProps {
|
||||||
lang: Language
|
lang: Language
|
||||||
|
isWandeldarlehen?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function StrategySlide({ lang }: StrategySlideProps) {
|
export default function StrategySlide({ lang, isWandeldarlehen }: StrategySlideProps) {
|
||||||
const de = lang === 'de'
|
const de = lang === 'de'
|
||||||
|
|
||||||
|
const phasesLean = [
|
||||||
|
{
|
||||||
|
icon: Rocket, color: 'text-indigo-400', bg: 'bg-indigo-500/10 border-indigo-500/20',
|
||||||
|
title: de ? 'Phase 1: Gründung' : 'Phase 1: Foundation',
|
||||||
|
period: 'Aug 2026 – Jul 2027',
|
||||||
|
team: de ? '3 Personen' : '3 people',
|
||||||
|
arr: de ? '~60k EUR' : '~EUR 60k',
|
||||||
|
items: de
|
||||||
|
? ['Gründer + Rechtsanwalt/Datenschutz', 'Erste 5-6 Pilotkunden (SaaS)', 'Beratungsumsätze 5-10k/Mon', 'Prototyp → Produktivbetrieb']
|
||||||
|
: ['Founders + lawyer/data protection', 'First 5-6 pilot customers (SaaS)', 'Consulting revenue 5-10k/month', 'Prototype → production'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Building2, color: 'text-purple-400', bg: 'bg-purple-500/10 border-purple-500/20',
|
||||||
|
title: de ? 'Phase 2: Produkt' : 'Phase 2: Product',
|
||||||
|
period: 'Aug 2027 – Jul 2028',
|
||||||
|
team: de ? '4-5 Personen' : '4-5 people',
|
||||||
|
arr: de ? '~200k EUR' : '~EUR 200k',
|
||||||
|
items: de
|
||||||
|
? ['Erster Entwickler (Full-Stack)', 'Security Engineer für Scanner-Kern', '8-10 Bestandskunden', 'Beratung steigt auf 20k/Mon']
|
||||||
|
: ['First developer (full-stack)', 'Security engineer for scanner core', '8-10 active customers', 'Consulting grows to 20k/month'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Users, color: 'text-emerald-400', bg: 'bg-emerald-500/10 border-emerald-500/20',
|
||||||
|
title: de ? 'Phase 3: Vertrieb' : 'Phase 3: Sales',
|
||||||
|
period: 'Aug 2028 – Jul 2029',
|
||||||
|
team: de ? '5-7 Personen' : '5-7 people',
|
||||||
|
arr: de ? '~500k–1M EUR' : '~EUR 500k–1M',
|
||||||
|
items: de
|
||||||
|
? ['Erste dedizierte Vertriebsperson', 'Backend-Entwickler für Skalierung', '15-30 Bestandskunden', 'Break-Even in Sicht (2029)']
|
||||||
|
: ['First dedicated salesperson', 'Backend developer for scaling', '15-30 active customers', 'Break-even in sight (2029)'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Globe, color: 'text-amber-400', bg: 'bg-amber-500/10 border-amber-500/20',
|
||||||
|
title: de ? 'Phase 4: Wachstum' : 'Phase 4: Growth',
|
||||||
|
period: 'Aug 2029 – Dez 2030',
|
||||||
|
team: de ? '7-10 Personen' : '7-10 people',
|
||||||
|
arr: de ? '~2-3M EUR' : '~EUR 2-3M',
|
||||||
|
items: de
|
||||||
|
? ['Customer Success + Marketing', 'DevOps für Infrastruktur', '50-200+ Bestandskunden', 'Profitabel — organisches Wachstum']
|
||||||
|
: ['Customer success + marketing', 'DevOps for infrastructure', '50-200+ active customers', 'Profitable — organic growth'],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
|
const phases1M = [
|
||||||
|
{
|
||||||
|
icon: Rocket, color: 'text-indigo-400', bg: 'bg-indigo-500/10 border-indigo-500/20',
|
||||||
|
title: de ? 'Phase 1: Foundation' : 'Phase 1: Foundation',
|
||||||
|
period: 'Aug 2026 – Jun 2027',
|
||||||
|
team: de ? '5 Mitarbeiter' : '5 employees',
|
||||||
|
arr: '75–150k EUR',
|
||||||
|
items: de
|
||||||
|
? ['Security Engineer + CE-Risikoingenieur als erste Hires', '5 Pilotkunden im Maschinenbau', 'Gründer verkaufen selbst', 'Product-Market Fit beweisen']
|
||||||
|
: ['Security Engineer + CE Risk Engineer as first hires', '5 pilot customers in manufacturing', 'Founders sell themselves', 'Prove product-market fit'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Building2, color: 'text-purple-400', bg: 'bg-purple-500/10 border-purple-500/20',
|
||||||
|
title: de ? 'Phase 2: Traction' : 'Phase 2: Traction',
|
||||||
|
period: 'Jul 2027 – Jun 2028',
|
||||||
|
team: de ? '10 Mitarbeiter' : '10 employees',
|
||||||
|
arr: '0,5–1,2M EUR',
|
||||||
|
items: de
|
||||||
|
? ['Channel Manager für Bechtle/CANCOM', 'DevSecOps + KI-Ingenieur', 'Lösungsberater für Partner-Demos', 'Wiederholbarer Vertriebsprozess']
|
||||||
|
: ['Channel Manager for Bechtle/CANCOM', 'DevSecOps + AI engineer', 'Solutions engineer for partner demos', 'Repeatable sales process'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Users, color: 'text-emerald-400', bg: 'bg-emerald-500/10 border-emerald-500/20',
|
||||||
|
title: de ? 'Phase 3: Scale' : 'Phase 3: Scale',
|
||||||
|
period: 'Jul 2028 – Jun 2029',
|
||||||
|
team: de ? '17→25 Mitarbeiter' : '17→25 employees',
|
||||||
|
arr: '2–4M EUR',
|
||||||
|
items: de
|
||||||
|
? ['Erster Direktvertrieb neben Channel', 'Compliance-Jurist für Glaubwürdigkeit', 'Security-Analyst / Pentester', 'VP Sales übernimmt vom CEO']
|
||||||
|
: ['First direct sales alongside channel', 'Compliance lawyer for credibility', 'Security analyst / pentester', 'VP Sales takes over from CEO'],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
icon: Globe, color: 'text-amber-400', bg: 'bg-amber-500/10 border-amber-500/20',
|
||||||
|
title: de ? 'Phase 4: Leadership' : 'Phase 4: Leadership',
|
||||||
|
period: 'Jul 2029 – Dez 2030',
|
||||||
|
team: de ? '25→35 Mitarbeiter' : '25→35 employees',
|
||||||
|
arr: '4–10M EUR',
|
||||||
|
items: de
|
||||||
|
? ['EU-Expansion (AT, CH, Benelux)', 'Enterprise-Vertrieb', 'Developer Relations (Snyk-Modell)', 'Break-Even oder Series A']
|
||||||
|
: ['EU expansion (AT, CH, Benelux)', 'Enterprise sales', 'Developer Relations (Snyk model)', 'Break-even or Series A'],
|
||||||
|
},
|
||||||
|
]
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="max-w-6xl mx-auto">
|
<div className="max-w-6xl mx-auto">
|
||||||
<FadeInView className="text-center mb-6">
|
<FadeInView className="text-center mb-6">
|
||||||
@@ -77,48 +164,7 @@ export default function StrategySlide({ lang }: StrategySlideProps) {
|
|||||||
{de ? 'Firmenaufbau in 4 Phasen' : 'Company Building in 4 Phases'}
|
{de ? 'Firmenaufbau in 4 Phasen' : 'Company Building in 4 Phases'}
|
||||||
</h3>
|
</h3>
|
||||||
<div className="grid md:grid-cols-4 gap-3">
|
<div className="grid md:grid-cols-4 gap-3">
|
||||||
{[
|
{(isWandeldarlehen ? phasesLean : phases1M).map((phase, idx) => {
|
||||||
{
|
|
||||||
icon: Rocket, color: 'text-indigo-400', bg: 'bg-indigo-500/10 border-indigo-500/20',
|
|
||||||
title: de ? 'Phase 1: Foundation' : 'Phase 1: Foundation',
|
|
||||||
period: 'Aug 2026 – Jun 2027',
|
|
||||||
team: de ? '5 Mitarbeiter' : '5 employees',
|
|
||||||
arr: '75–150k EUR',
|
|
||||||
items: de
|
|
||||||
? ['Security Engineer + CE-Risikoingenieur als erste Hires', '5 Pilotkunden im Maschinenbau', 'Gründer verkaufen selbst', 'Product-Market Fit beweisen']
|
|
||||||
: ['Security Engineer + CE Risk Engineer as first hires', '5 pilot customers in manufacturing', 'Founders sell themselves', 'Prove product-market fit'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: Building2, color: 'text-purple-400', bg: 'bg-purple-500/10 border-purple-500/20',
|
|
||||||
title: de ? 'Phase 2: Traction' : 'Phase 2: Traction',
|
|
||||||
period: 'Jul 2027 – Jun 2028',
|
|
||||||
team: de ? '10 Mitarbeiter' : '10 employees',
|
|
||||||
arr: '0,5–1,2M EUR',
|
|
||||||
items: de
|
|
||||||
? ['Channel Manager für Bechtle/CANCOM', 'DevSecOps + KI-Ingenieur', 'Lösungsberater für Partner-Demos', 'Wiederholbarer Vertriebsprozess']
|
|
||||||
: ['Channel Manager for Bechtle/CANCOM', 'DevSecOps + AI engineer', 'Solutions engineer for partner demos', 'Repeatable sales process'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: Users, color: 'text-emerald-400', bg: 'bg-emerald-500/10 border-emerald-500/20',
|
|
||||||
title: de ? 'Phase 3: Scale' : 'Phase 3: Scale',
|
|
||||||
period: 'Jul 2028 – Jun 2029',
|
|
||||||
team: de ? '17→25 Mitarbeiter' : '17→25 employees',
|
|
||||||
arr: '2–4M EUR',
|
|
||||||
items: de
|
|
||||||
? ['Erster Direktvertrieb neben Channel', 'Compliance-Jurist für Glaubwürdigkeit', 'Security-Analyst / Pentester', 'VP Sales übernimmt vom CEO']
|
|
||||||
: ['First direct sales alongside channel', 'Compliance lawyer for credibility', 'Security analyst / pentester', 'VP Sales takes over from CEO'],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
icon: Globe, color: 'text-amber-400', bg: 'bg-amber-500/10 border-amber-500/20',
|
|
||||||
title: de ? 'Phase 4: Leadership' : 'Phase 4: Leadership',
|
|
||||||
period: 'Jul 2029 – Dez 2030',
|
|
||||||
team: de ? '25→35 Mitarbeiter' : '25→35 employees',
|
|
||||||
arr: '4–10M EUR',
|
|
||||||
items: de
|
|
||||||
? ['EU-Expansion (AT, CH, Benelux)', 'Enterprise-Vertrieb', 'Developer Relations (Snyk-Modell)', 'Break-Even oder Series A']
|
|
||||||
: ['EU expansion (AT, CH, Benelux)', 'Enterprise sales', 'Developer Relations (Snyk model)', 'Break-even or Series A'],
|
|
||||||
},
|
|
||||||
].map((phase, idx) => {
|
|
||||||
const Icon = phase.icon
|
const Icon = phase.icon
|
||||||
return (
|
return (
|
||||||
<GlassCard key={idx} delay={0.25 + idx * 0.05} hover={false} className={`p-3 ${phase.bg} border`}>
|
<GlassCard key={idx} delay={0.25 + idx * 0.05} hover={false} className={`p-3 ${phase.bg} border`}>
|
||||||
|
|||||||
Reference in New Issue
Block a user