managarten/services/it-landing/src/data/infrastructure.ts
Till JS fea6a8e64b 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>
2026-03-24 10:04:59 +01:00

116 lines
2.7 KiB
TypeScript

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,
};