All checks were successful
CI / test-bqas (push) Successful in 32s
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 46s
CI / test-python-voice (push) Successful in 38s
- Install Gitleaks, Trivy, Grype, Syft, Semgrep, Bandit in backend-core Dockerfile - Add Woodpecker SQLite proxy API (fallback without API token) - Mount woodpecker_data volume read-only to backend-core - Add backend proxy fallback in admin-core Woodpecker route - Add Vault file-based persistent storage (config.hcl, init-vault.sh) - Auto-init, unseal and root-token persistence for Vault - Add 6 pitch-deck annex slides (Assumptions, Architecture, GTM, Regulatory, Engineering, AI Pipeline) - Dynamic margin/amortization KPIs in BusinessModelSlide - Market sources modal with citations in MarketSlide - Redesign nginx landing page to 3-column layout (Lehrer/Compliance/Core) - Extend MkDocs nav with Services and SDK documentation sections - Add SDK Protection architecture doc Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
471 lines
14 KiB
TypeScript
471 lines
14 KiB
TypeScript
import { Language } from './types'
|
|
|
|
const translations = {
|
|
de: {
|
|
nav: {
|
|
slides: 'Slides',
|
|
fullscreen: 'Vollbild',
|
|
language: 'Sprache',
|
|
},
|
|
slideNames: [
|
|
'Cover',
|
|
'Das Problem',
|
|
'Die Loesung',
|
|
'Produkte',
|
|
'So funktioniert\'s',
|
|
'Markt',
|
|
'Geschaeftsmodell',
|
|
'Traction',
|
|
'Wettbewerb',
|
|
'Team',
|
|
'Finanzen',
|
|
'The Ask',
|
|
'KI Q&A',
|
|
'Anhang: Annahmen',
|
|
'Anhang: Architektur',
|
|
'Anhang: Go-to-Market',
|
|
'Anhang: Regulatorik',
|
|
],
|
|
cover: {
|
|
tagline: 'Datensouveraenitaet meets KI-Compliance',
|
|
subtitle: 'Pre-Seed · Q4 2026',
|
|
cta: 'Pitch starten',
|
|
},
|
|
problem: {
|
|
title: 'Das Problem',
|
|
subtitle: 'Compliance-Komplexitaet ueberfordert den Mittelstand',
|
|
cards: [
|
|
{
|
|
title: 'DSGVO',
|
|
stat: '4.1 Mrd EUR',
|
|
desc: 'Bussgelder seit 2018 in der EU. 83% der KMUs sind nicht vollstaendig konform.',
|
|
},
|
|
{
|
|
title: 'AI Act',
|
|
stat: 'Aug 2025',
|
|
desc: 'Neue EU-Verordnung tritt in Kraft. Unternehmen muessen KI-Systeme klassifizieren und dokumentieren.',
|
|
},
|
|
{
|
|
title: 'NIS2',
|
|
stat: '30.000+',
|
|
desc: 'Unternehmen in Deutschland neu betroffen. Cybersecurity-Anforderungen steigen massiv.',
|
|
},
|
|
],
|
|
quote: 'Unternehmen brauchen keine weiteren Compliance-Tools — sie brauchen eine KI, die Compliance fuer sie erledigt.',
|
|
},
|
|
solution: {
|
|
title: 'Die Loesung',
|
|
subtitle: 'ComplAI — Compliance auf Autopilot',
|
|
pillars: [
|
|
{
|
|
title: 'Self-Hosted',
|
|
desc: 'Eigene Hardware im Serverraum. Kein Byte verlaesst das Unternehmen. Volle Datensouveraenitaet.',
|
|
icon: 'server',
|
|
},
|
|
{
|
|
title: 'Auto-Compliance',
|
|
desc: 'KI erledigt DSGVO, AI Act und NIS2 automatisch. Dokumentation, Audits und Updates — alles KI-gesteuert.',
|
|
icon: 'shield',
|
|
},
|
|
{
|
|
title: 'KI-Assistent',
|
|
desc: 'Vollautonomer Kundensupport. Beantwortet Fragen, aendert Dokumente, bereitet Audits vor — 24/7.',
|
|
icon: 'bot',
|
|
},
|
|
],
|
|
},
|
|
product: {
|
|
title: 'Unsere Produkte',
|
|
subtitle: 'Drei Tiers fuer jede Unternehmensgroesse',
|
|
monthly: '/Monat',
|
|
hardware: 'Hardware',
|
|
llm: 'KI-Modell',
|
|
popular: 'Beliebt',
|
|
features: 'Features',
|
|
},
|
|
howItWorks: {
|
|
title: 'So funktioniert\'s',
|
|
subtitle: 'In 4 Schritten zur vollstaendigen Compliance',
|
|
steps: [
|
|
{
|
|
title: 'Hardware aufstellen',
|
|
desc: 'Mac Mini oder Mac Studio im Serverraum anschliessen. Plug & Play — keine Cloud noetig.',
|
|
},
|
|
{
|
|
title: 'KI konfigurieren',
|
|
desc: 'Branche, Groesse und Regularien angeben. Die KI erstellt automatisch alle Compliance-Dokumente.',
|
|
},
|
|
{
|
|
title: 'Compliance automatisieren',
|
|
desc: 'Laufende Ueberwachung, automatische Updates bei Rechtsaenderungen und Audit-Vorbereitung.',
|
|
},
|
|
{
|
|
title: 'Audit bestehen',
|
|
desc: 'Vollstaendige Dokumentation auf Knopfdruck. Behoerdenanfragen werden KI-gestuetzt beantwortet.',
|
|
},
|
|
],
|
|
},
|
|
market: {
|
|
title: 'Marktchance',
|
|
subtitle: 'Der Compliance-Markt waechst zweistellig',
|
|
tam: 'TAM',
|
|
sam: 'SAM',
|
|
som: 'SOM',
|
|
tamLabel: 'Total Addressable Market',
|
|
samLabel: 'Serviceable Addressable Market',
|
|
somLabel: 'Serviceable Obtainable Market',
|
|
source: 'Quelle',
|
|
growth: 'Wachstum p.a.',
|
|
},
|
|
businessModel: {
|
|
title: 'Geschaeftsmodell',
|
|
subtitle: 'Recurring Revenue mit Hardware-Moat',
|
|
unitEconomics: 'Unit Economics',
|
|
amortization: 'Amortisation',
|
|
margin: 'Marge',
|
|
months: 'Monate',
|
|
recurringRevenue: 'Recurring Revenue',
|
|
hardwareCost: 'Hardware-EK',
|
|
operatingCost: 'Betriebskosten',
|
|
},
|
|
traction: {
|
|
title: 'Traction & Meilensteine',
|
|
subtitle: 'Unser bisheriger Fortschritt',
|
|
completed: 'Abgeschlossen',
|
|
inProgress: 'In Arbeit',
|
|
planned: 'Geplant',
|
|
},
|
|
competition: {
|
|
title: 'Wettbewerb',
|
|
subtitle: 'Was uns differenziert',
|
|
feature: 'Feature',
|
|
selfHosted: 'Self-Hosted',
|
|
integratedAI: 'Integrierte KI',
|
|
autonomousSupport: 'Autonomer Support',
|
|
yes: 'Ja',
|
|
no: 'Nein',
|
|
partial: 'Teilweise',
|
|
},
|
|
team: {
|
|
title: 'Das Team',
|
|
subtitle: 'Gruender mit Domain-Expertise',
|
|
equity: 'Equity',
|
|
expertise: 'Expertise',
|
|
},
|
|
financials: {
|
|
title: 'Finanzprognose',
|
|
subtitle: 'AI-First Kostenstruktur — skaliert ohne lineares Personalwachstum',
|
|
revenue: 'Umsatz',
|
|
costs: 'Kosten',
|
|
customers: 'Kunden',
|
|
mrr: 'MRR',
|
|
arr: 'ARR',
|
|
burnRate: 'Burn Rate',
|
|
employees: 'Mitarbeiter',
|
|
year: 'Jahr',
|
|
sliderGrowth: 'Wachstumsrate',
|
|
sliderChurn: 'Churn Rate',
|
|
sliderArpu: 'ARPU',
|
|
adjustAssumptions: 'Annahmen anpassen',
|
|
},
|
|
theAsk: {
|
|
title: 'The Ask',
|
|
subtitle: 'Pre-Seed Finanzierung',
|
|
amount: 'Funding',
|
|
instrument: 'Instrument',
|
|
useOfFunds: 'Use of Funds',
|
|
engineering: 'Engineering',
|
|
sales: 'Vertrieb',
|
|
hardware: 'Hardware',
|
|
legal: 'Legal',
|
|
reserve: 'Reserve',
|
|
targetDate: 'Zieldatum',
|
|
},
|
|
aiqa: {
|
|
title: 'Fragen? Die KI antwortet.',
|
|
subtitle: 'Stellen Sie Ihre Investorenfragen — unser AI Agent antwortet mit Echtdaten.',
|
|
placeholder: 'Stellen Sie eine Frage zum Investment...',
|
|
send: 'Senden',
|
|
thinking: 'Denke nach...',
|
|
suggestions: [
|
|
'Wie skaliert das Geschaeftsmodell?',
|
|
'Was ist der unfaire Vorteil?',
|
|
'Wie sieht die Exit-Strategie aus?',
|
|
'Warum Self-Hosting statt Cloud?',
|
|
],
|
|
},
|
|
annex: {
|
|
assumptions: {
|
|
title: 'Annahmen & Sensitivitaet',
|
|
subtitle: 'Drei Szenarien fuer robuste Planung',
|
|
},
|
|
architecture: {
|
|
title: 'Technische Architektur',
|
|
subtitle: 'Self-Hosted KI-Stack fuer maximale Datensouveraenitaet',
|
|
},
|
|
gtm: {
|
|
title: 'Go-to-Market Strategie',
|
|
subtitle: 'Vom Pilot zum skalierbaren Vertrieb',
|
|
},
|
|
regulatory: {
|
|
title: 'Regulatorische Details',
|
|
subtitle: 'Die drei Saeulen der EU-Compliance',
|
|
},
|
|
engineering: {
|
|
title: 'Engineering Deep Dive',
|
|
subtitle: '691K Zeilen Code \u00b7 45 Container \u00b7 100% Self-Hosted',
|
|
},
|
|
aipipeline: {
|
|
title: 'KI-Pipeline Deep Dive',
|
|
subtitle: 'RAG \u00b7 Multi-Agent-System \u00b7 Document Intelligence \u00b7 Quality Assurance',
|
|
},
|
|
},
|
|
},
|
|
en: {
|
|
nav: {
|
|
slides: 'Slides',
|
|
fullscreen: 'Fullscreen',
|
|
language: 'Language',
|
|
},
|
|
slideNames: [
|
|
'Cover',
|
|
'The Problem',
|
|
'The Solution',
|
|
'Products',
|
|
'How It Works',
|
|
'Market',
|
|
'Business Model',
|
|
'Traction',
|
|
'Competition',
|
|
'Team',
|
|
'Financials',
|
|
'The Ask',
|
|
'AI Q&A',
|
|
'Appendix: Assumptions',
|
|
'Appendix: Architecture',
|
|
'Appendix: Go-to-Market',
|
|
'Appendix: Regulatory',
|
|
],
|
|
cover: {
|
|
tagline: 'Data Sovereignty meets AI Compliance',
|
|
subtitle: 'Pre-Seed · Q4 2026',
|
|
cta: 'Start Pitch',
|
|
},
|
|
problem: {
|
|
title: 'The Problem',
|
|
subtitle: 'Compliance complexity overwhelms SMEs',
|
|
cards: [
|
|
{
|
|
title: 'GDPR',
|
|
stat: 'EUR 4.1B',
|
|
desc: 'in fines since 2018 across the EU. 83% of SMEs are not fully compliant.',
|
|
},
|
|
{
|
|
title: 'AI Act',
|
|
stat: 'Aug 2025',
|
|
desc: 'New EU regulation takes effect. Companies must classify and document AI systems.',
|
|
},
|
|
{
|
|
title: 'NIS2',
|
|
stat: '30,000+',
|
|
desc: 'companies newly affected in Germany. Cybersecurity requirements increase massively.',
|
|
},
|
|
],
|
|
quote: 'Companies don\'t need more compliance tools — they need an AI that handles compliance for them.',
|
|
},
|
|
solution: {
|
|
title: 'The Solution',
|
|
subtitle: 'ComplAI — Compliance on Autopilot',
|
|
pillars: [
|
|
{
|
|
title: 'Self-Hosted',
|
|
desc: 'Own hardware in your server room. No data leaves the company. Full data sovereignty.',
|
|
icon: 'server',
|
|
},
|
|
{
|
|
title: 'Auto-Compliance',
|
|
desc: 'AI handles GDPR, AI Act and NIS2 automatically. Documentation, audits and updates — all AI-powered.',
|
|
icon: 'shield',
|
|
},
|
|
{
|
|
title: 'AI Assistant',
|
|
desc: 'Fully autonomous customer support. Answers questions, modifies documents, prepares audits — 24/7.',
|
|
icon: 'bot',
|
|
},
|
|
],
|
|
},
|
|
product: {
|
|
title: 'Our Products',
|
|
subtitle: 'Three tiers for every company size',
|
|
monthly: '/month',
|
|
hardware: 'Hardware',
|
|
llm: 'AI Model',
|
|
popular: 'Popular',
|
|
features: 'Features',
|
|
},
|
|
howItWorks: {
|
|
title: 'How It Works',
|
|
subtitle: 'Full compliance in 4 steps',
|
|
steps: [
|
|
{
|
|
title: 'Set Up Hardware',
|
|
desc: 'Connect Mac Mini or Mac Studio in your server room. Plug & Play — no cloud needed.',
|
|
},
|
|
{
|
|
title: 'Configure AI',
|
|
desc: 'Specify industry, size, and regulations. The AI automatically creates all compliance documents.',
|
|
},
|
|
{
|
|
title: 'Automate Compliance',
|
|
desc: 'Continuous monitoring, automatic updates for regulatory changes and audit preparation.',
|
|
},
|
|
{
|
|
title: 'Pass Audits',
|
|
desc: 'Complete documentation at the push of a button. Authority inquiries answered AI-powered.',
|
|
},
|
|
],
|
|
},
|
|
market: {
|
|
title: 'Market Opportunity',
|
|
subtitle: 'The compliance market grows double-digit',
|
|
tam: 'TAM',
|
|
sam: 'SAM',
|
|
som: 'SOM',
|
|
tamLabel: 'Total Addressable Market',
|
|
samLabel: 'Serviceable Addressable Market',
|
|
somLabel: 'Serviceable Obtainable Market',
|
|
source: 'Source',
|
|
growth: 'Growth p.a.',
|
|
},
|
|
businessModel: {
|
|
title: 'Business Model',
|
|
subtitle: 'Recurring Revenue with Hardware Moat',
|
|
unitEconomics: 'Unit Economics',
|
|
amortization: 'Amortization',
|
|
margin: 'Margin',
|
|
months: 'months',
|
|
recurringRevenue: 'Recurring Revenue',
|
|
hardwareCost: 'Hardware Cost',
|
|
operatingCost: 'Operating Cost',
|
|
},
|
|
traction: {
|
|
title: 'Traction & Milestones',
|
|
subtitle: 'Our progress so far',
|
|
completed: 'Completed',
|
|
inProgress: 'In Progress',
|
|
planned: 'Planned',
|
|
},
|
|
competition: {
|
|
title: 'Competition',
|
|
subtitle: 'What differentiates us',
|
|
feature: 'Feature',
|
|
selfHosted: 'Self-Hosted',
|
|
integratedAI: 'Integrated AI',
|
|
autonomousSupport: 'Autonomous Support',
|
|
yes: 'Yes',
|
|
no: 'No',
|
|
partial: 'Partial',
|
|
},
|
|
team: {
|
|
title: 'The Team',
|
|
subtitle: 'Founders with domain expertise',
|
|
equity: 'Equity',
|
|
expertise: 'Expertise',
|
|
},
|
|
financials: {
|
|
title: 'Financial Projections',
|
|
subtitle: 'AI-First cost structure — scales without linear headcount growth',
|
|
revenue: 'Revenue',
|
|
costs: 'Costs',
|
|
customers: 'Customers',
|
|
mrr: 'MRR',
|
|
arr: 'ARR',
|
|
burnRate: 'Burn Rate',
|
|
employees: 'Employees',
|
|
year: 'Year',
|
|
sliderGrowth: 'Growth Rate',
|
|
sliderChurn: 'Churn Rate',
|
|
sliderArpu: 'ARPU',
|
|
adjustAssumptions: 'Adjust Assumptions',
|
|
},
|
|
theAsk: {
|
|
title: 'The Ask',
|
|
subtitle: 'Pre-Seed Funding',
|
|
amount: 'Funding',
|
|
instrument: 'Instrument',
|
|
useOfFunds: 'Use of Funds',
|
|
engineering: 'Engineering',
|
|
sales: 'Sales',
|
|
hardware: 'Hardware',
|
|
legal: 'Legal',
|
|
reserve: 'Reserve',
|
|
targetDate: 'Target Date',
|
|
},
|
|
aiqa: {
|
|
title: 'Questions? The AI answers.',
|
|
subtitle: 'Ask your investor questions — our AI agent responds with real data.',
|
|
placeholder: 'Ask a question about the investment...',
|
|
send: 'Send',
|
|
thinking: 'Thinking...',
|
|
suggestions: [
|
|
'How does the business model scale?',
|
|
'What is the unfair advantage?',
|
|
'What does the exit strategy look like?',
|
|
'Why self-hosting instead of cloud?',
|
|
],
|
|
},
|
|
annex: {
|
|
assumptions: {
|
|
title: 'Assumptions & Sensitivity',
|
|
subtitle: 'Three scenarios for robust planning',
|
|
},
|
|
architecture: {
|
|
title: 'Technical Architecture',
|
|
subtitle: 'Self-hosted AI stack for maximum data sovereignty',
|
|
},
|
|
gtm: {
|
|
title: 'Go-to-Market Strategy',
|
|
subtitle: 'From pilot to scalable sales',
|
|
},
|
|
regulatory: {
|
|
title: 'Regulatory Details',
|
|
subtitle: 'The three pillars of EU compliance',
|
|
},
|
|
engineering: {
|
|
title: 'Engineering Deep Dive',
|
|
subtitle: '691K Lines of Code \u00b7 45 Containers \u00b7 100% Self-Hosted',
|
|
},
|
|
aipipeline: {
|
|
title: 'AI Pipeline Deep Dive',
|
|
subtitle: 'RAG \u00b7 Multi-Agent System \u00b7 Document Intelligence \u00b7 Quality Assurance',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
export function t(lang: Language): typeof translations.de {
|
|
return translations[lang]
|
|
}
|
|
|
|
export function formatEur(value: number, lang: Language): string {
|
|
if (value >= 1_000_000_000) {
|
|
const v = (value / 1_000_000_000).toFixed(1)
|
|
return lang === 'de' ? `${v} Mrd. EUR` : `EUR ${v}B`
|
|
}
|
|
if (value >= 1_000_000) {
|
|
const v = (value / 1_000_000).toFixed(1)
|
|
return lang === 'de' ? `${v} Mio. EUR` : `EUR ${v}M`
|
|
}
|
|
if (value >= 1_000) {
|
|
const v = (value / 1_000).toFixed(0)
|
|
return lang === 'de' ? `${v}k EUR` : `EUR ${v}k`
|
|
}
|
|
return lang === 'de' ? `${value} EUR` : `EUR ${value}`
|
|
}
|
|
|
|
export function formatNumber(value: number): string {
|
|
return new Intl.NumberFormat('de-DE').format(value)
|
|
}
|
|
|
|
export default translations
|