diff --git a/apps/mana/apps/landing/src/pages/features.astro b/apps/mana/apps/landing/src/pages/features.astro index 5198d5c82..edd40c825 100644 --- a/apps/mana/apps/landing/src/pages/features.astro +++ b/apps/mana/apps/landing/src/pages/features.astro @@ -36,7 +36,6 @@ const simpleUsps = [ 'Aufgaben, Kalender, Kontakte, Notizen, Finanzen, Fitness, Musik, KI-Assistent und vieles mehr — alles in einer einzigen App. Ein Login, fertig.', icon: icons.unified, gradient: 'from-blue-500 to-cyan-500', - rating: 5, details: [ 'Nie wieder zwischen 10 verschiedenen Apps wechseln', 'Alles teilt sich dieselben Daten — keine doppelte Eingabe', @@ -52,7 +51,6 @@ const simpleUsps = [ 'Mana speichert alles direkt auf deinem Gerät. Die App reagiert sofort, auch im Flugzeug oder bei schlechtem Empfang. Sobald du wieder online bist, wird automatisch synchronisiert.', icon: icons.localFirst, gradient: 'from-emerald-500 to-teal-500', - rating: 5, details: [ 'Keine Ladezeiten — alles reagiert sofort', 'Funktioniert komplett ohne Internetverbindung', @@ -68,7 +66,6 @@ const simpleUsps = [ 'Deine persönlichen Inhalte werden verschlüsselt, bevor sie gespeichert werden. Optional kannst du den Zero-Knowledge-Modus aktivieren — dann kann selbst unser Team nichts lesen.', icon: icons.encryption, gradient: 'from-violet-500 to-purple-500', - rating: 5, details: [ 'Alle sensiblen Daten werden automatisch verschlüsselt', 'Zero-Knowledge-Modus: Nur du hast den Schlüssel', @@ -84,7 +81,6 @@ const simpleUsps = [ 'Mana hat einen eingebauten KI-Assistenten und Spracherkennung, die komplett auf deinem Gerät laufen. Deine Gespräche und Notizen verlassen nie deinen Computer.', icon: icons.localAi, gradient: 'from-pink-500 to-rose-500', - rating: 4, details: [ 'KI-Chat direkt im Browser — ohne Server', 'Sprachnotizen werden lokal in Text umgewandelt', @@ -100,7 +96,6 @@ const simpleUsps = [ '1 Mana = 1 Cent. Deine Credits laden sich jeden Tag automatisch auf und verfallen nie. Keine versteckten Kosten, keine 10 verschiedenen Abos.', icon: icons.credits, gradient: 'from-amber-500 to-orange-500', - rating: 4, details: [ 'Credits regenerieren sich jeden Tag automatisch', 'Einmal kaufen, kein Abo nötig', @@ -116,7 +111,6 @@ const simpleUsps = [ 'Ändere etwas auf dem Laptop und es erscheint sofort auf dem Handy. Mana hält alle deine Geräte automatisch auf dem gleichen Stand.', icon: icons.sync, gradient: 'from-cyan-500 to-blue-500', - rating: 4, details: [ 'Änderungen erscheinen in Echtzeit auf allen Geräten', 'Nur das Nötigste wird übertragen — spart Datenvolumen', @@ -132,7 +126,6 @@ const simpleUsps = [ 'Mana trackt dich nicht, verkauft keine Daten und zeigt keine Werbung. Unsere Server stehen in Deutschland, und wir erfüllen die strengsten Datenschutz-Standards.', icon: icons.privacy, gradient: 'from-green-500 to-emerald-500', - rating: 5, details: [ 'Keine Tracking-Cookies, keine Werbung, nie', 'Server in Deutschland, DSGVO-konform', @@ -148,7 +141,6 @@ const simpleUsps = [ 'Wähle aus über 40 Modulen genau die aus, die zu deinem Leben passen. Von Aufgaben über Fitness bis Musik — du bestimmst, was auf deinem Dashboard erscheint.', icon: icons.modules, gradient: 'from-indigo-500 to-blue-500', - rating: 4, details: [ 'Produktivität, Kreativität, Gesundheit, Finanzen & mehr', 'Jedes Modul funktioniert eigenständig und zusammen', @@ -164,7 +156,6 @@ const simpleUsps = [ 'Die wichtigsten Module wie Aufgaben, Kalender und Kontakte sind kostenlos nutzbar. Neue Features probierst du als Early Adopter zuerst aus.', icon: icons.tiers, gradient: 'from-yellow-500 to-amber-500', - rating: 3, details: [ 'Kernmodule dauerhaft kostenlos', 'Neue Features früher testen als Early Adopter', @@ -180,7 +171,6 @@ const simpleUsps = [ 'Mana spricht Deutsch, Englisch und Italienisch — weitere Sprachen folgen. Die App erkennt deine Sprache automatisch.', icon: icons.i18n, gradient: 'from-teal-500 to-cyan-500', - rating: 3, details: [ 'Automatische Spracherkennung', 'Aktuell: Deutsch, Englisch, Italienisch', @@ -196,7 +186,6 @@ const simpleUsps = [ 'Verknüpfe einen Kontakt mit einer Aufgabe, erstelle aus einer Sprachnotiz automatisch To-Dos, oder plane ein Event direkt aus deinem Rezeptbuch. Alles greift ineinander.', icon: icons.crossmodule, gradient: 'from-rose-500 to-pink-500', - rating: 4, details: [ 'Per Drag & Drop Dinge zwischen Modulen verbinden', 'Dashboard-Widgets aus allen Bereichen kombinieren', @@ -212,7 +201,6 @@ const simpleUsps = [ 'Unser Entwicklungs-Tagebuch ist öffentlich. Du siehst jede Änderung, jeden Plan, und kannst aktiv mitgestalten, welche Features als nächstes kommen.', icon: icons.opensource, gradient: 'from-gray-400 to-slate-500', - rating: 3, details: [ 'Öffentliches Entwicklungstagebuch (Devlog)', 'Roadmap zeigt, was als nächstes kommt', @@ -232,7 +220,6 @@ const techUsps = [ '40+ Module unter einer SvelteKit 2 + Svelte 5 (Runes) App. Ein Dexie.js IndexedDB, ein EdDSA JWT Auth-Token, Deployment auf Cloudflare Pages. Turborepo-Monorepo mit pnpm Workspaces.', icon: icons.unified, gradient: 'from-blue-500 to-cyan-500', - rating: 5, details: [ 'SvelteKit 2, Svelte 5 Runes, TailwindCSS, Vite', '120+ Dexie Collections in einer IndexedDB ("mana")', @@ -248,7 +235,6 @@ const techUsps = [ 'Alle Reads/Writes gehen direkt an IndexedDB via Dexie.js. Dexie-Hooks stampen userId und __fieldTimestamps, tracken _pendingChanges mit appId-Tag. Debounced Sync (1s) POST an mana-sync.', icon: icons.localFirst, gradient: 'from-emerald-500 to-teal-500', - rating: 5, details: [ 'Dexie.js liveQuery Hooks fur reaktive UI via $derived', 'Field-Level Last-Write-Wins Merge in mana-sync (Go)', @@ -264,7 +250,6 @@ const techUsps = [ '27 sensitive Tabellen werden mit AES-GCM-256 vor dem IndexedDB-Write verschlüsselt. Master Key aus mana-auth ist KEK-wrapped (MANA_AUTH_KEK env). Explizites encryptRecord()/decryptRecords() per Store — kein Auto-Hook (Web Crypto ist async).', icon: icons.encryption, gradient: 'from-violet-500 to-purple-500', - rating: 5, details: [ 'Web Crypto API nativ — keine Drittanbieter-Crypto-Libs', 'Zero-Knowledge: Recovery Code only, Server sieht nichts', @@ -280,7 +265,6 @@ const techUsps = [ '@mana/local-llm: Gemma 4 E2B via Transformers.js v4, WebGPU-beschleunigt. @mana/local-stt: Whisper-basierte Spracherkennung. Kein Server-Roundtrip, CSP-safe, volle In-Browser Inferenz.', icon: icons.localAi, gradient: 'from-pink-500 to-rose-500', - rating: 4, details: [ 'Transformers.js v4 mit WebGPU Compute Shaders', '@mana/local-llm: Gemma 4 E2B, ~2B Parameter im Browser', @@ -296,7 +280,6 @@ const techUsps = [ 'Credit-basiertes Billing via mana-credits Service. Tägliche Regeneration bis zum Speicherlimit, One-Time Mana-Tränke, transparente Cost-Breakdown. JWT tier Claim gated den Zugang.', icon: icons.credits, gradient: 'from-amber-500 to-orange-500', - rating: 4, details: [ 'mana-credits Service mit REST API', 'Tier-Gating via JWT tier Claim + AuthGate Client-Side', @@ -312,7 +295,6 @@ const techUsps = [ 'Sync-Engine in Go (Port 3050). Debounced 1s, gruppiert _pendingChanges nach appId, POST an mana-sync. Field-Level LWW Merge in PostgreSQL (mana_sync Schema) mit Row-Level Security. SSE Push an verbundene Clients.', icon: icons.sync, gradient: 'from-cyan-500 to-blue-500', - rating: 4, details: [ 'Go-Backend auf Port 3050, PostgreSQL mana_sync Schema', 'Field-Level LWW: Nur geänderte Felder mergen', @@ -328,7 +310,6 @@ const techUsps = [ 'Eigene Infrastruktur auf Mac Mini (Production) via Cloudflare Tunnel. GPU-Server (RTX 3090, LAN) für STT/TTS/Image-Gen. Umami statt Google Analytics. Keine Cookies, keine Ad-Networks.', icon: icons.privacy, gradient: 'from-green-500 to-emerald-500', - rating: 5, details: [ 'Mac Mini Production via ssh mana-server (Cloudflare Tunnel)', 'GPU-Server: Windows, RTX 3090, 192.168.178.11 (LAN)', @@ -344,7 +325,6 @@ const techUsps = [ 'Jedes Modul unter apps/web/src/lib/modules/{name}/. Drei Dateien: collections.ts (Dexie Tables + Seeds), queries.ts (liveQuery Hooks + Type Converter), stores/*.svelte.ts (Mutations mit explizitem encrypt/decrypt).', icon: icons.modules, gradient: 'from-indigo-500 to-blue-500', - rating: 4, details: [ 'collections.ts: Dexie Table Refs, Schema, Seed Data', 'queries.ts: useLiveQueryWithDefault(), decryptRecords(), toEntity()', @@ -360,7 +340,6 @@ const techUsps = [ '5-stufiges Tier-System. requiredTier in MANA_APPS Registry (shared-branding), JWT tier Claim, AuthGate Client-Side Enforcement. Admin API: PUT /api/v1/admin/users/:id/tier.', icon: icons.tiers, gradient: 'from-yellow-500 to-amber-500', - rating: 3, details: [ 'MANA_APPS Registry mit requiredTier pro Modul', 'JWT Claim: { sub, email, role, sid, tier, exp, iss, aud }', @@ -376,7 +355,6 @@ const techUsps = [ 'Landing: Astro i18n mit URL-Prefix Routing (/de/, /en/, /it/). Web App: SvelteKit i18n mit Translation Keys. Content Collections unterstützen Übersetzungen per Locale-Ordner.', icon: icons.i18n, gradient: 'from-teal-500 to-cyan-500', - rating: 3, details: [ 'Astro i18n Config: defaultLang "de", 5 Sprachen', 'getLangFromUrl() + useTranslations(lang) Pattern', @@ -392,7 +370,6 @@ const techUsps = [ 'App Registry (apps.ts) deklariert entityCapabilities, viewConfigs und DnD-Targets pro Modul. Shared Dexie DB erlaubt Cross-Referenzen über gemeinsame UUIDs. Dashboard Widget-Grid aus allen Modulen.', icon: icons.crossmodule, gradient: 'from-rose-500 to-pink-500', - rating: 4, details: [ 'App Registry mit Entity Capabilities + View Configs', 'Drag & Drop: entityCapabilities.dragTargets pro Modul', @@ -408,7 +385,6 @@ const techUsps = [ 'Devlog als Astro Content Collection mit Frontmatter (date, category, commits, readTime). Blueprints dokumentieren Architektur-Entscheidungen. CI: GitHub Actions, CD: Mac Mini self-hosted Runner.', icon: icons.opensource, gradient: 'from-gray-400 to-slate-500', - rating: 3, details: [ 'Devlog: Astro Content Collection + Frontmatter Schema', 'CI: GitHub Actions (svelte-check, build, test)', @@ -417,49 +393,6 @@ const techUsps = [ ], }, ]; - -// Rating breakdown for simple view -const simpleRatingGroups = [ - { - stars: 5, - label: 'Unser Herzstück', - color: 'text-emerald-400', - items: simpleUsps.filter((u) => u.rating === 5), - }, - { - stars: 4, - label: 'Richtig stark', - color: 'text-blue-400', - items: simpleUsps.filter((u) => u.rating === 4), - }, - { - stars: 3, - label: 'Solides Extra', - color: 'text-amber-400', - items: simpleUsps.filter((u) => u.rating === 3), - }, -]; - -const techRatingGroups = [ - { - stars: 5, - label: 'Core Architecture', - color: 'text-emerald-400', - items: techUsps.filter((u) => u.rating === 5), - }, - { - stars: 4, - label: 'Key Systems', - color: 'text-blue-400', - items: techUsps.filter((u) => u.rating === 4), - }, - { - stars: 3, - label: 'Supporting', - color: 'text-amber-400', - items: techUsps.filter((u) => u.rating === 3), - }, -]; --- @@ -507,34 +440,26 @@ const techRatingGroups = [
-

Auf einen Blick

-
- { - simpleRatingGroups.map((group) => ( -
-
- {Array.from({ length: 5 }).map((_, i) => ( - - - - ))} -
- {group.label} -
- {group.items.map((item) => ( - - {item.title} - - ))} -
-
- )) - } -
+

+ Mana vereint alles in einer Appblitzschnell und offline nutzbar, mit starker Verschlüsselung und KI direkt auf deinem Gerät. Du zahlst nur was du brauchst dank fairem Credit-System, bleibst auf allen Geräten synchron und behältst + die volle Kontrolle mit echtem Datenschutz. + Wähle aus über 40 Modulen genau das, was zu dir + passt — kostenlos zum Starten, mehrsprachig, intelligent verknüpft und offen entwickelt. +

@@ -563,17 +488,6 @@ const techRatingGroups = [ {usp.subtitle}

{usp.title}

-
- {Array.from({ length: 5 }).map((_, i) => ( - - - - ))} -

{usp.description}