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':
|
||||
return <SDKDemoSlide lang={lang} />
|
||||
case 'annex-strategy':
|
||||
return <StrategySlide lang={lang} />
|
||||
return <StrategySlide lang={lang} isWandeldarlehen={isWandeldarlehen} />
|
||||
case 'annex-finanzplan':
|
||||
return <FinanzplanSlide lang={lang} investorId={investor?.id || null} preferredScenarioId={preferredScenarioId} />
|
||||
case 'annex-glossary':
|
||||
|
||||
@@ -9,11 +9,98 @@ import { Shield, ScanLine, FileText, Rocket, Users, Building2, Globe, TrendingUp
|
||||
|
||||
interface StrategySlideProps {
|
||||
lang: Language
|
||||
isWandeldarlehen?: boolean
|
||||
}
|
||||
|
||||
export default function StrategySlide({ lang }: StrategySlideProps) {
|
||||
export default function StrategySlide({ lang, isWandeldarlehen }: StrategySlideProps) {
|
||||
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 (
|
||||
<div className="max-w-6xl mx-auto">
|
||||
<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'}
|
||||
</h3>
|
||||
<div className="grid md:grid-cols-4 gap-3">
|
||||
{[
|
||||
{
|
||||
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) => {
|
||||
{(isWandeldarlehen ? phasesLean : phases1M).map((phase, idx) => {
|
||||
const Icon = phase.icon
|
||||
return (
|
||||
<GlassCard key={idx} delay={0.25 + idx * 0.05} hover={false} className={`p-3 ${phase.bg} border`}>
|
||||
|
||||
Reference in New Issue
Block a user