mirror of
https://github.com/Memo-2023/mana-monorepo.git
synced 2026-05-28 21:57:43 +02:00
feat: add it.mana.how landing page for European tech sovereignty
New Astro landing page at services/it-landing/ targeting European organizations that need independent, GDPR-compliant IT infrastructure. 10 sections: - Hero: "Technologische Souveränität für Europa" with 75% self-hosted stat - Problem: US Cloud Act, vendor lock-in, GDPR conflicts, Schrems II - Solution: IndependenceBar (animated 75% progress) + 3 principles - Infrastructure Grid: 21 components color-coded (green/amber/red) - GDPR: 6 compliance cards (all rights, breach notification, AI safety) - Open Source Stack: 8 comparisons (PostgreSQL vs DynamoDB, etc.) - Target Audiences: Government, healthcare, education, SMBs - Roadmap: Timeline from current state to 90%+ independence (2027) - FAQ: 8 questions about sovereignty, Cloud Act, local AI, costs - CTA: Contact for consultation Features: - Light EU Sovereign theme (#003399 EU blue, professional B2B design) - German (default) + English (/en/) with Astro i18n - Custom components: InfrastructureGrid, IndependenceBar (scroll animation) - Data from docs/TECH_STACK_INDEPENDENCE.md (real infrastructure stats) - Legal pages: Impressum, Datenschutz - Deploy: pnpm deploy:landing:it → Cloudflare Pages Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c27f6f88f0
commit
fea6a8e64b
20 changed files with 1209 additions and 0 deletions
26
services/it-landing/src/data/audiences.ts
Normal file
26
services/it-landing/src/data/audiences.ts
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
export const audiences = [
|
||||
{
|
||||
icon: '🏛️',
|
||||
title: 'Öffentliche Verwaltung',
|
||||
description:
|
||||
'Behörden und öffentliche Einrichtungen, die digitale Souveränität umsetzen müssen. DSGVO-konform, keine US-Cloud-Abhängigkeit, transparenter Open-Source-Stack.',
|
||||
},
|
||||
{
|
||||
icon: '🏥',
|
||||
title: 'Gesundheitswesen',
|
||||
description:
|
||||
'Krankenhäuser, Praxen und Gesundheitsorganisationen mit höchsten Datenschutzanforderungen. Patientendaten bleiben garantiert in Deutschland.',
|
||||
},
|
||||
{
|
||||
icon: '🎓',
|
||||
title: 'Bildung & Forschung',
|
||||
description:
|
||||
'Universitäten, Schulen und Forschungseinrichtungen, die unabhängige KI-Tools und sichere Kommunikation benötigen. Sonderkonditionen verfügbar.',
|
||||
},
|
||||
{
|
||||
icon: '🏢',
|
||||
title: 'Mittelstand (KMU)',
|
||||
description:
|
||||
'Europäische Unternehmen, die sich von Big-Tech-Abhängigkeit lösen und gleichzeitig modernste KI-Tools nutzen wollen. Flexibles Credit-System statt Abo-Falle.',
|
||||
},
|
||||
];
|
||||
42
services/it-landing/src/data/faq.ts
Normal file
42
services/it-landing/src/data/faq.ts
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
export const faqs = [
|
||||
{
|
||||
question: 'Was bedeutet technologische Souveränität?',
|
||||
answer:
|
||||
'Die Fähigkeit, Ihre IT-Infrastruktur unabhängig von ausländischen Anbietern zu betreiben und zu kontrollieren. Bei Mana heißt das: 75% unserer Infrastruktur läuft auf eigenen Servern in Deutschland — mit dem Ziel, 90%+ zu erreichen.',
|
||||
},
|
||||
{
|
||||
question: 'Warum ist der US Cloud Act ein Problem?',
|
||||
answer:
|
||||
'Der US Cloud Act verpflichtet amerikanische Unternehmen, US-Behörden Zugang zu Daten zu gewähren — auch wenn diese auf Servern in Europa gespeichert sind. Das steht im direkten Widerspruch zur DSGVO und gefährdet die Datenhoheit europäischer Organisationen.',
|
||||
},
|
||||
{
|
||||
question: 'Welche Cloud-Abhängigkeiten bleiben bestehen?',
|
||||
answer:
|
||||
'Nur zwei: Stripe für Zahlungsabwicklung (es gibt keinen vollständig europäischen Payment-Gateway-Ersatz) und Google OAuth für den optionalen Google-Kontakte-Import. Alle anderen Komponenten sind self-hosted oder werden aktiv migriert.',
|
||||
},
|
||||
{
|
||||
question: 'Wie funktioniert die lokale KI?',
|
||||
answer:
|
||||
'Wir betreiben Ollama mit Modellen wie Gemma 3 auf unserem Server in Deutschland. FLUX.2 generiert Bilder lokal, Whisper transkribiert Sprache, Piper und Kokoro synthetisieren Sprache — alles ohne Cloud-API-Aufrufe. Bei Überlastung gibt es einen optionalen Fallback auf Google Gemini.',
|
||||
},
|
||||
{
|
||||
question: 'Ist der Open-Source-Stack enterprise-tauglich?',
|
||||
answer:
|
||||
'Absolut. PostgreSQL, Redis und MinIO betreiben die Infrastruktur von Unternehmen wie Apple, Instagram und Netflix. Diese Technologien sind bewährter als viele proprietäre Alternativen.',
|
||||
},
|
||||
{
|
||||
question: 'Kann ich die Mana-Infrastruktur für meine Organisation nutzen?',
|
||||
answer:
|
||||
'Ja. Wir bieten Beratung und Implementierung für Organisationen, die eine ähnliche unabhängige Infrastruktur aufbauen möchten. Kontaktieren Sie uns für ein individuelles Angebot.',
|
||||
},
|
||||
{
|
||||
question: 'Was kostet der Wechsel weg von US-Cloud-Anbietern?',
|
||||
answer:
|
||||
'Langfristig sparen Sie. Open-Source-Software hat keine Lizenzkosten. Die Initialinvestition in eigene Server amortisiert sich typischerweise innerhalb von 12-18 Monaten gegenüber Cloud-Abonnements.',
|
||||
},
|
||||
{
|
||||
question: 'Wo stehen die Server?',
|
||||
answer:
|
||||
'In Deutschland. Die Produktionsinfrastruktur läuft auf eigener Hardware mit 74 Docker-Containern, erreichbar über einen Cloudflare Tunnel (der mittelfristig durch WireGuard ersetzt wird).',
|
||||
},
|
||||
];
|
||||
97
services/it-landing/src/data/features.ts
Normal file
97
services/it-landing/src/data/features.ts
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
export const problemFeatures = [
|
||||
{
|
||||
icon: '🛡️',
|
||||
title: 'US Cloud Act',
|
||||
description:
|
||||
'US-Behörden können jederzeit auf Daten zugreifen, die bei amerikanischen Cloud-Anbietern gespeichert sind — selbst wenn die Server in Europa stehen.',
|
||||
},
|
||||
{
|
||||
icon: '🔒',
|
||||
title: 'Vendor Lock-in',
|
||||
description:
|
||||
'Proprietäre Systeme von AWS, Google und Microsoft schaffen Abhängigkeiten, die Millionen kosten und Innovationsfreiheit einschränken.',
|
||||
},
|
||||
{
|
||||
icon: '⚠️',
|
||||
title: 'Fehlende Kontrolle',
|
||||
description:
|
||||
'Bei Cloud-Ausfällen oder Preisänderungen gibt es keinen Plan B. Europäische Organisationen sind den Entscheidungen US-amerikanischer Konzerne ausgeliefert.',
|
||||
},
|
||||
{
|
||||
icon: '⚖️',
|
||||
title: 'DSGVO-Konflikte',
|
||||
description:
|
||||
'Schrems II hat gezeigt: Der Datentransfer in die USA ist rechtlich problematisch. Jedes Unternehmen, das US-Cloud nutzt, trägt ein Compliance-Risiko.',
|
||||
},
|
||||
];
|
||||
|
||||
export const gdprFeatures = [
|
||||
{
|
||||
icon: '✅',
|
||||
title: 'Rechtmäßigkeit & Transparenz',
|
||||
description:
|
||||
'Nur technisch notwendige Cookies. Explizite Einwilligung für alle Datenverarbeitungen. Keine versteckten Datensammlungen.',
|
||||
},
|
||||
{
|
||||
icon: '📉',
|
||||
title: 'Datenminimierung',
|
||||
description:
|
||||
'Nur E-Mail bei Registrierung. Automatische Löschung nach Zweckerfüllung. Anonymisierte Analytics mit self-hosted Umami.',
|
||||
},
|
||||
{
|
||||
icon: '👤',
|
||||
title: 'Betroffenenrechte',
|
||||
description:
|
||||
'Alle 6 Rechte umgesetzt: Auskunft, Berichtigung, Löschung, Übertragbarkeit, Widerspruch, Einschränkung — per Self-Service im Dashboard.',
|
||||
},
|
||||
{
|
||||
icon: '🔐',
|
||||
title: 'Technische Sicherheit',
|
||||
description:
|
||||
'TLS 1.3, AES-256 Verschlüsselung, EdDSA JWT-Authentifizierung, regelmäßige Sicherheitsaudits.',
|
||||
},
|
||||
{
|
||||
icon: '🚨',
|
||||
title: '72h Breach Notification',
|
||||
description:
|
||||
'Automatisierte Erkennung von Datenschutzverletzungen. Sofortige interne Eskalation. Meldung an Aufsichtsbehörde innerhalb von 72 Stunden.',
|
||||
},
|
||||
{
|
||||
icon: '🤖',
|
||||
title: 'KI ohne Trainingsrisiko',
|
||||
description:
|
||||
'Keine Nutzerdaten für KI-Training. Lokale Modelle verarbeiten Daten direkt auf dem Server — nichts verlässt die Infrastruktur.',
|
||||
},
|
||||
];
|
||||
|
||||
export const stackFeatures = [
|
||||
{ icon: '🗄️', title: 'PostgreSQL 16', description: 'Statt DynamoDB / Firestore' },
|
||||
{ icon: '⚡', title: 'Redis 7', description: 'Statt ElastiCache' },
|
||||
{ icon: '📦', title: 'MinIO', description: 'Statt AWS S3' },
|
||||
{ icon: '🔐', title: 'Better Auth', description: 'Statt Auth0 / Okta' },
|
||||
{ icon: '🔍', title: 'SearXNG', description: 'Statt Google / Algolia' },
|
||||
{ icon: '💬', title: 'Matrix/Synapse', description: 'Statt Slack / Teams' },
|
||||
{ icon: '🤖', title: 'Ollama + Gemma', description: 'Statt OpenAI API' },
|
||||
{ icon: '📊', title: 'VictoriaMetrics', description: 'Statt Datadog' },
|
||||
];
|
||||
|
||||
export const principles = [
|
||||
{
|
||||
icon: 'shield' as const,
|
||||
title: 'Daten in Deutschland',
|
||||
description:
|
||||
'Alle Nutzerdaten verbleiben auf eigenen Servern in Deutschland. Kein Datentransfer in Drittländer. Keine US-Cloud-Abhängigkeit.',
|
||||
},
|
||||
{
|
||||
icon: 'code' as const,
|
||||
title: 'Open-Source-Stack',
|
||||
description:
|
||||
'PostgreSQL, Redis, MinIO, Matrix — unsere Infrastruktur basiert auf bewährten Open-Source-Technologien. Kein proprietäres Lock-in.',
|
||||
},
|
||||
{
|
||||
icon: 'rocket' as const,
|
||||
title: 'Lokale KI',
|
||||
description:
|
||||
'LLM, Bilderzeugung, Spracherkennung und Sprachsynthese laufen lokal auf eigener Hardware. Keine Daten verlassen den Server.',
|
||||
},
|
||||
];
|
||||
116
services/it-landing/src/data/infrastructure.ts
Normal file
116
services/it-landing/src/data/infrastructure.ts
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
export type InfraStatus = 'self-hosted' | 'replaceable' | 'unavoidable';
|
||||
|
||||
export interface InfraComponent {
|
||||
name: string;
|
||||
technology: string;
|
||||
status: InfraStatus;
|
||||
icon: string;
|
||||
}
|
||||
|
||||
export const infrastructure: InfraComponent[] = [
|
||||
// Self-hosted (green)
|
||||
{
|
||||
name: 'Datenbank',
|
||||
technology: 'PostgreSQL 16 + Drizzle ORM',
|
||||
status: 'self-hosted',
|
||||
icon: '🗄️',
|
||||
},
|
||||
{ name: 'Cache', technology: 'Redis 7', status: 'self-hosted', icon: '⚡' },
|
||||
{
|
||||
name: 'Object Storage',
|
||||
technology: 'MinIO (S3-kompatibel)',
|
||||
status: 'self-hosted',
|
||||
icon: '📦',
|
||||
},
|
||||
{
|
||||
name: 'Authentifizierung',
|
||||
technology: 'Better Auth (EdDSA JWT)',
|
||||
status: 'self-hosted',
|
||||
icon: '🔐',
|
||||
},
|
||||
{ name: 'Suche', technology: 'SearXNG + mana-search', status: 'self-hosted', icon: '🔍' },
|
||||
{ name: 'Messaging', technology: 'Matrix/Synapse + 13 Bots', status: 'self-hosted', icon: '💬' },
|
||||
{
|
||||
name: 'Monitoring',
|
||||
technology: 'VictoriaMetrics + Grafana',
|
||||
status: 'self-hosted',
|
||||
icon: '📊',
|
||||
},
|
||||
{ name: 'Analytics', technology: 'Umami', status: 'self-hosted', icon: '📈' },
|
||||
{
|
||||
name: 'Error Tracking',
|
||||
technology: 'GlitchTip (Sentry-kompatibel)',
|
||||
status: 'self-hosted',
|
||||
icon: '🐛',
|
||||
},
|
||||
{ name: 'Automation', technology: 'n8n', status: 'self-hosted', icon: '⚙️' },
|
||||
{ name: 'LLM / KI-Chat', technology: 'Ollama + Gemma 3', status: 'self-hosted', icon: '🤖' },
|
||||
{
|
||||
name: 'Spracherkennung',
|
||||
technology: 'Whisper Large V3 (mana-stt)',
|
||||
status: 'self-hosted',
|
||||
icon: '🎤',
|
||||
},
|
||||
{
|
||||
name: 'Sprachsynthese',
|
||||
technology: 'Piper + Kokoro (mana-tts)',
|
||||
status: 'self-hosted',
|
||||
icon: '🔊',
|
||||
},
|
||||
{
|
||||
name: 'Bildgenerierung',
|
||||
technology: 'FLUX.2 klein (mana-image-gen)',
|
||||
status: 'self-hosted',
|
||||
icon: '🎨',
|
||||
},
|
||||
|
||||
// Cloud but replaceable (amber)
|
||||
{ name: 'E-Mail', technology: 'Brevo SMTP → Postal geplant', status: 'replaceable', icon: '📧' },
|
||||
{
|
||||
name: 'Landing Pages',
|
||||
technology: 'Cloudflare Pages → Self-hosted geplant',
|
||||
status: 'replaceable',
|
||||
icon: '🌐',
|
||||
},
|
||||
{
|
||||
name: 'Tunnel/DNS',
|
||||
technology: 'Cloudflare Tunnel → WireGuard geplant',
|
||||
status: 'replaceable',
|
||||
icon: '🔗',
|
||||
},
|
||||
{
|
||||
name: 'Bild-API',
|
||||
technology: 'Replicate → mana-image-gen Migration',
|
||||
status: 'replaceable',
|
||||
icon: '🖼️',
|
||||
},
|
||||
{
|
||||
name: 'Vision-KI',
|
||||
technology: 'Google Gemini → lokale Modelle testen',
|
||||
status: 'replaceable',
|
||||
icon: '👁️',
|
||||
},
|
||||
|
||||
// Unavoidable cloud (red)
|
||||
{
|
||||
name: 'Zahlungen',
|
||||
technology: 'Stripe (kein EU-Alternative)',
|
||||
status: 'unavoidable',
|
||||
icon: '💳',
|
||||
},
|
||||
{
|
||||
name: 'Google OAuth',
|
||||
technology: 'Für Kontakte-Import nötig',
|
||||
status: 'unavoidable',
|
||||
icon: '🔑',
|
||||
},
|
||||
];
|
||||
|
||||
export const stats = {
|
||||
selfHosted: 14,
|
||||
replaceable: 5,
|
||||
unavoidable: 2,
|
||||
total: 21,
|
||||
percentSelfHosted: 75,
|
||||
targetPercent: 90,
|
||||
};
|
||||
55
services/it-landing/src/data/roadmap.ts
Normal file
55
services/it-landing/src/data/roadmap.ts
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
export const roadmapItems = [
|
||||
{
|
||||
badge: '✅ Abgeschlossen',
|
||||
title: 'Lokale KI-Infrastruktur',
|
||||
text: 'LLM (Ollama + Gemma 3), Bilderzeugung (FLUX.2 klein), Spracherkennung (Whisper Large V3) und Sprachsynthese (Piper + Kokoro) laufen vollständig lokal.',
|
||||
},
|
||||
{
|
||||
badge: 'Q2 2026',
|
||||
title: 'Cloud-KI eliminieren',
|
||||
text: 'Picture App auf lokales mana-image-gen migrieren. Alle LLM-Calls über zentrales mana-llm Gateway routen mit automatischem Google-Fallback.',
|
||||
},
|
||||
{
|
||||
badge: 'Q3 2026',
|
||||
title: 'E-Mail-Unabhängigkeit',
|
||||
text: 'Brevo SMTP durch self-hosted Postal oder Stalwart ersetzen. DNS bei eigenem europäischen Provider.',
|
||||
},
|
||||
{
|
||||
badge: 'Q4 2026',
|
||||
title: 'Landing Pages self-hosted',
|
||||
text: 'Statische Seiten direkt vom eigenen Server ausliefern statt über Cloudflare Pages. Nginx/Caddy Container.',
|
||||
},
|
||||
{
|
||||
badge: '2027',
|
||||
title: 'Server-Redundanz & 90%+ Unabhängigkeit',
|
||||
text: 'Zweiter Server für Hochverfügbarkeit. PostgreSQL Streaming Replication. Kein Single Point of Failure. Ziel: über 90% Self-Hosted.',
|
||||
},
|
||||
];
|
||||
|
||||
export const roadmapItemsEn = [
|
||||
{
|
||||
badge: '✅ Completed',
|
||||
title: 'Local AI Infrastructure',
|
||||
text: 'LLM (Ollama + Gemma 3), image generation (FLUX.2), speech recognition (Whisper), and text-to-speech (Piper + Kokoro) run fully locally.',
|
||||
},
|
||||
{
|
||||
badge: 'Q2 2026',
|
||||
title: 'Eliminate Cloud AI',
|
||||
text: 'Migrate Picture App to local mana-image-gen. Route all LLM calls through central mana-llm gateway with automatic Google fallback.',
|
||||
},
|
||||
{
|
||||
badge: 'Q3 2026',
|
||||
title: 'Email Independence',
|
||||
text: 'Replace Brevo SMTP with self-hosted Postal or Stalwart. DNS with own European provider.',
|
||||
},
|
||||
{
|
||||
badge: 'Q4 2026',
|
||||
title: 'Self-Hosted Landing Pages',
|
||||
text: 'Serve static sites directly from own server instead of Cloudflare Pages.',
|
||||
},
|
||||
{
|
||||
badge: '2027',
|
||||
title: 'Server Redundancy & 90%+ Independence',
|
||||
text: 'Second server for high availability. PostgreSQL streaming replication. No single point of failure.',
|
||||
},
|
||||
];
|
||||
Loading…
Add table
Add a link
Reference in a new issue