fix: Onepager — CE-Software-Risiko, Roadmap größer, 3 neue Kacheln
- CE-Risikobeurteilung → CE-Software-Risikobeurteilung überall - Wettbewerber: Spaltenheader "Umsatz" + "Invest" - Go-to-Market Roadmap: Schrift größer (text-xs Items, text-sm Titel) - 3 neue Kacheln: Umsatzerwartung (ARR 2026-2030), Mitarbeiterentwicklung (5→25), Pricing nach Unternehmensgröße Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -431,11 +431,11 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
|
||||
{ title: de ? 'Phase 3: Expansion (2028+)' : 'Phase 3: Expansion (2028+)', color: 'bg-emerald-500/10 border-emerald-500/20', textColor: 'text-emerald-300',
|
||||
items: de ? ['Enterprise-Kunden (50-500 MA)', 'EU-Expansion: AT, CH, Benelux', 'Distributor-Partnerschaften', 'Break-Even Q3/2029'] : ['Enterprise customers (50-500 emp.)', 'EU expansion: AT, CH, Benelux', 'Distributor partnerships', 'Break-even Q3/2029'] },
|
||||
].map((phase, idx) => (
|
||||
<div key={idx} className={`${phase.color} border rounded-lg px-3 py-2`}>
|
||||
<p className={`text-xs font-bold ${phase.textColor} mb-1`}>{phase.title}</p>
|
||||
<div key={idx} className={`${phase.color} border rounded-lg px-3 py-3`}>
|
||||
<p className={`text-sm font-bold ${phase.textColor} mb-1.5`}>{phase.title}</p>
|
||||
{phase.items.map((item, i) => (
|
||||
<p key={i} className="text-[10px] text-white/50 pl-2 relative">
|
||||
<span className="absolute left-0">→</span>{item}
|
||||
<p key={i} className="text-xs text-white/60 pl-3 relative leading-relaxed">
|
||||
<span className="absolute left-0 top-1 w-1.5 h-1.5 rounded-full bg-white/20" />{item}
|
||||
</p>
|
||||
))}
|
||||
</div>
|
||||
@@ -449,7 +449,7 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
|
||||
<div className="grid grid-cols-2 md:grid-cols-4 gap-3">
|
||||
{[
|
||||
{ name: 'Code Security', desc: de ? 'SAST, DAST, SBOM, kontinuierliches Pentesting' : 'SAST, DAST, SBOM, continuous pentesting', color: '#ef4444', icon: ScanLine },
|
||||
{ name: de ? 'CE-Risikobeurteilung' : 'CE Risk Assessment', desc: de ? 'Software-Risikoanalyse für CE-Kennzeichnung' : 'Software risk assessment for CE marking', color: '#f97316', icon: Shield },
|
||||
{ name: de ? 'CE-Software-Risikobeurteilung' : 'CE Software Risk Assessment', desc: de ? 'Software-Risikoanalyse für CE-Kennzeichnung' : 'Software risk assessment for CE marking', color: '#f97316', icon: Shield },
|
||||
{ name: de ? 'Compliance-Dokumente' : 'Compliance Documents', desc: de ? 'VVT, DSFA, TOMs, Löschfristen, AGB, DSE' : 'RoPA, DPIA, TOMs, retention, T&Cs, privacy', color: '#6366f1', icon: FileText },
|
||||
{ name: 'Audit Manager', desc: de ? 'Abweichungen, Nachweise, Stichtage, Eskalation' : 'Deviations, evidence, deadlines, escalation', color: '#10b981', icon: CheckCircle2 },
|
||||
{ name: 'Compliance LLM', desc: de ? 'GPT für Text und Audio — sicher in der EU' : 'GPT for text and audio — securely in EU', color: '#a855f7', icon: Brain },
|
||||
@@ -469,6 +469,62 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
|
||||
</div>
|
||||
</FadeInView>
|
||||
|
||||
{/* Umsatzerwartung + Mitarbeiter + Pricing */}
|
||||
<div className="grid md:grid-cols-3 gap-3 mb-4">
|
||||
<GlassCard delay={0.5} hover={false} className="p-3">
|
||||
<h3 className="text-xs font-bold text-indigo-400 uppercase tracking-wider mb-1.5">{de ? 'Umsatzerwartung (ARR)' : 'Revenue Forecast (ARR)'}</h3>
|
||||
<div className="space-y-1 text-xs">
|
||||
{[
|
||||
{ year: '2026', arr: de ? '~22k EUR' : '~EUR 22k' },
|
||||
{ year: '2027', arr: de ? '~588k EUR' : '~EUR 588k' },
|
||||
{ year: '2028', arr: de ? '~1,7 Mio. EUR' : '~EUR 1.7M' },
|
||||
{ year: '2029', arr: de ? '~3,4 Mio. EUR' : '~EUR 3.4M' },
|
||||
{ year: '2030', arr: de ? '~5,4 Mio. EUR' : '~EUR 5.4M' },
|
||||
].map((r, idx) => (
|
||||
<div key={idx} className="flex justify-between">
|
||||
<span className="text-white/40">{r.year}</span>
|
||||
<span className={`font-mono ${idx >= 3 ? 'text-emerald-300 font-bold' : 'text-white/70'}`}>{r.arr}</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</GlassCard>
|
||||
|
||||
<GlassCard delay={0.55} hover={false} className="p-3">
|
||||
<h3 className="text-xs font-bold text-purple-400 uppercase tracking-wider mb-1.5">{de ? 'Mitarbeiterentwicklung' : 'Headcount Growth'}</h3>
|
||||
<div className="space-y-1 text-xs">
|
||||
{[
|
||||
{ year: '2026 (ab Aug)', count: '5 → 10' },
|
||||
{ year: '2027', count: '10 → 17' },
|
||||
{ year: '2028', count: '17' },
|
||||
{ year: '2029', count: '17 → 20' },
|
||||
{ year: '2030', count: '20 → 25' },
|
||||
].map((r, idx) => (
|
||||
<div key={idx} className="flex justify-between">
|
||||
<span className="text-white/40">{r.year}</span>
|
||||
<span className="text-white/70 font-mono">{r.count}</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</GlassCard>
|
||||
|
||||
<GlassCard delay={0.6} hover={false} className="p-3">
|
||||
<h3 className="text-xs font-bold text-amber-400 uppercase tracking-wider mb-1.5">{de ? 'Pricing nach Unternehmensgröße' : 'Pricing by Company Size'}</h3>
|
||||
<div className="space-y-1.5">
|
||||
{[
|
||||
{ tier: 'Startup / < 10', price: de ? 'ab 3.600 EUR/Jahr' : 'from EUR 3,600/yr', note: de ? '14 Tage Test' : '14-day trial' },
|
||||
{ tier: '10 – 50 MA', price: de ? 'ab 15.000 EUR/Jahr' : 'from EUR 15,000/yr' },
|
||||
{ tier: '50 – 250 MA', price: de ? 'ab 30.000 EUR/Jahr' : 'from EUR 30,000/yr' },
|
||||
{ tier: '250+ MA', price: de ? 'ab 40.000 EUR/Jahr' : 'from EUR 40,000/yr', highlight: true },
|
||||
].map((t, idx) => (
|
||||
<div key={idx} className={`flex justify-between items-center text-xs ${t.highlight ? 'text-amber-300 font-bold' : 'text-white/60'}`}>
|
||||
<span>{t.tier}</span>
|
||||
<span className="font-mono text-[10px]">{t.price}</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</GlassCard>
|
||||
</div>
|
||||
|
||||
{/* Bottom: Kundenersparnis + Wettbewerber + Markt */}
|
||||
<div className="grid md:grid-cols-3 gap-3 mb-4">
|
||||
<GlassCard delay={0.5} hover={false} className="p-3">
|
||||
@@ -483,6 +539,9 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
|
||||
|
||||
<GlassCard delay={0.55} hover={false} className="p-3">
|
||||
<h3 className="text-xs font-bold text-red-400 uppercase tracking-wider mb-1.5">{de ? 'Wettbewerber' : 'Competitors'}</h3>
|
||||
<div className="flex justify-between text-[8px] text-white/30 uppercase tracking-wider mb-1 px-0.5">
|
||||
<span></span><span>{de ? 'Umsatz' : 'Revenue'}</span><span>Invest</span>
|
||||
</div>
|
||||
<div className="space-y-0.5">
|
||||
{[
|
||||
{ name: 'Vanta', flag: '🇺🇸', rev: '$220M ARR', invest: '$504M' },
|
||||
@@ -494,8 +553,8 @@ export default function ExecutiveSummarySlide({ lang, data }: ExecutiveSummarySl
|
||||
].map((c, idx) => (
|
||||
<div key={idx} className="flex items-center justify-between text-[10px] gap-1">
|
||||
<span className="text-white/70 shrink-0">{c.flag} {c.name}</span>
|
||||
<span className="text-white/30 text-[9px]">{c.rev}</span>
|
||||
<span className="text-white/50 font-mono text-[9px] shrink-0">{c.invest}</span>
|
||||
<span className="text-white/40 text-[9px]">{c.rev}</span>
|
||||
<span className="text-white/60 font-mono text-[9px] shrink-0">{c.invest}</span>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user