From 865d74ff3716b44b5cb6cd494e6f105033abc0c7 Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Tue, 25 Nov 2025 18:20:17 +0100 Subject: [PATCH] Feat: Landingpages centralized, new app news integrated --- chat/apps/landing/src/components/Footer.astro | 80 + .../landing/src/components/Navigation.astro | 86 + .../apps/landing/src/layouts/BaseLayout.astro | 28 - chat/apps/landing/src/layouts/Layout.astro | 47 + chat/apps/landing/src/pages/index.astro | 339 ++- chat/apps/landing/src/styles/global.css | 103 + chat/apps/landing/tailwind.config.mjs | 43 +- news/.env.example | 12 + news/.gitignore | 52 + news/MigrationPlan-Unified-App.md | 1526 ++++++++++++ news/README.md | 178 ++ news/apps/api/nest-cli.json | 8 + news/apps/api/package.json | 38 + news/apps/api/src/app.module.ts | 24 + .../api/src/articles/articles.controller.ts | 81 + news/apps/api/src/articles/articles.module.ts | 12 + .../apps/api/src/articles/articles.service.ts | 147 ++ news/apps/api/src/auth/auth.controller.ts | 88 + news/apps/api/src/auth/auth.module.ts | 10 + news/apps/api/src/auth/auth.service.ts | 159 ++ .../src/categories/categories.controller.ts | 12 + .../api/src/categories/categories.module.ts | 10 + .../api/src/categories/categories.service.ts | 31 + .../decorators/current-user.decorator.ts | 8 + news/apps/api/src/common/guards/auth.guard.ts | 31 + .../content-extraction.controller.ts | 51 + .../content-extraction.module.ts | 13 + .../content-extraction.service.ts | 79 + news/apps/api/src/database/database.module.ts | 25 + news/apps/api/src/main.ts | 37 + news/apps/api/src/users/users.controller.ts | 59 + news/apps/api/src/users/users.module.ts | 12 + news/apps/api/src/users/users.service.ts | 51 + news/apps/api/tsconfig.json | 25 + news/apps/landing/astro.config.mjs | 11 + news/apps/landing/package.json | 26 + news/apps/landing/src/components/Footer.astro | 80 + .../landing/src/components/Navigation.astro | 86 + news/apps/landing/src/layouts/Layout.astro | 47 + news/apps/landing/src/pages/index.astro | 259 ++ news/apps/landing/src/styles/global.css | 103 + news/apps/landing/tailwind.config.mjs | 39 + news/apps/landing/tsconfig.json | 9 + news/apps/web/.env.example | 2 + news/apps/web/package.json | 41 + news/apps/web/src/app.css | 8 + news/apps/web/src/app.d.ts | 33 + news/apps/web/src/app.html | 12 + news/apps/web/src/lib/services/api.ts | 95 + news/apps/web/src/lib/stores/auth.svelte.ts | 81 + .../web/src/routes/(protected)/+layout.svelte | 97 + .../src/routes/(protected)/feed/+page.svelte | 80 + .../routes/(protected)/in-depth/+page.svelte | 69 + .../src/routes/(protected)/saved/+page.svelte | 73 + .../routes/(protected)/summaries/+page.svelte | 66 + news/apps/web/src/routes/+layout.svelte | 17 + news/apps/web/src/routes/+page.svelte | 21 + .../web/src/routes/auth/login/+page.svelte | 76 + .../web/src/routes/auth/register/+page.svelte | 89 + news/apps/web/svelte.config.js | 13 + news/apps/web/tsconfig.json | 14 + news/apps/web/vite.config.ts | 25 + news/docker/docker-compose.yml | 36 + news/docker/init.sql | 6 + news/packages/browser-extension/README.md | 125 + news/packages/browser-extension/background.js | 64 + news/packages/browser-extension/content.js | 85 + news/packages/browser-extension/debug.html | 28 + news/packages/browser-extension/debug.js | 51 + news/packages/browser-extension/manifest.json | 35 + news/packages/browser-extension/popup.html | 165 ++ news/packages/browser-extension/popup.js | 178 ++ package.json | 13 +- packages/news-database/drizzle.config.ts | 15 + packages/news-database/package.json | 43 + packages/news-database/src/index.ts | 19 + packages/news-database/src/schema/articles.ts | 64 + packages/news-database/src/schema/auth.ts | 47 + .../news-database/src/schema/categories.ts | 16 + packages/news-database/src/schema/index.ts | 5 + .../news-database/src/schema/interactions.ts | 31 + packages/news-database/src/schema/users.ts | 29 + packages/news-database/tsconfig.json | 21 + pnpm-lock.yaml | 2099 +++++++++++++++-- pnpm-workspace.yaml | 3 + uload/apps/landing/package.json | 1 + .../src/components/FeaturesSection.astro | 76 - .../src/components/PricingSection.astro | 185 -- uload/apps/landing/src/pages/index.astro | 219 +- uload/apps/landing/src/styles/global.css | 91 +- uload/apps/landing/tailwind.config.mjs | 25 +- 91 files changed, 8242 insertions(+), 610 deletions(-) create mode 100644 chat/apps/landing/src/components/Footer.astro create mode 100644 chat/apps/landing/src/components/Navigation.astro delete mode 100644 chat/apps/landing/src/layouts/BaseLayout.astro create mode 100644 chat/apps/landing/src/layouts/Layout.astro create mode 100644 chat/apps/landing/src/styles/global.css create mode 100644 news/.env.example create mode 100644 news/.gitignore create mode 100644 news/MigrationPlan-Unified-App.md create mode 100644 news/README.md create mode 100644 news/apps/api/nest-cli.json create mode 100644 news/apps/api/package.json create mode 100644 news/apps/api/src/app.module.ts create mode 100644 news/apps/api/src/articles/articles.controller.ts create mode 100644 news/apps/api/src/articles/articles.module.ts create mode 100644 news/apps/api/src/articles/articles.service.ts create mode 100644 news/apps/api/src/auth/auth.controller.ts create mode 100644 news/apps/api/src/auth/auth.module.ts create mode 100644 news/apps/api/src/auth/auth.service.ts create mode 100644 news/apps/api/src/categories/categories.controller.ts create mode 100644 news/apps/api/src/categories/categories.module.ts create mode 100644 news/apps/api/src/categories/categories.service.ts create mode 100644 news/apps/api/src/common/decorators/current-user.decorator.ts create mode 100644 news/apps/api/src/common/guards/auth.guard.ts create mode 100644 news/apps/api/src/content-extraction/content-extraction.controller.ts create mode 100644 news/apps/api/src/content-extraction/content-extraction.module.ts create mode 100644 news/apps/api/src/content-extraction/content-extraction.service.ts create mode 100644 news/apps/api/src/database/database.module.ts create mode 100644 news/apps/api/src/main.ts create mode 100644 news/apps/api/src/users/users.controller.ts create mode 100644 news/apps/api/src/users/users.module.ts create mode 100644 news/apps/api/src/users/users.service.ts create mode 100644 news/apps/api/tsconfig.json create mode 100644 news/apps/landing/astro.config.mjs create mode 100644 news/apps/landing/package.json create mode 100644 news/apps/landing/src/components/Footer.astro create mode 100644 news/apps/landing/src/components/Navigation.astro create mode 100644 news/apps/landing/src/layouts/Layout.astro create mode 100644 news/apps/landing/src/pages/index.astro create mode 100644 news/apps/landing/src/styles/global.css create mode 100644 news/apps/landing/tailwind.config.mjs create mode 100644 news/apps/landing/tsconfig.json create mode 100644 news/apps/web/.env.example create mode 100644 news/apps/web/package.json create mode 100644 news/apps/web/src/app.css create mode 100644 news/apps/web/src/app.d.ts create mode 100644 news/apps/web/src/app.html create mode 100644 news/apps/web/src/lib/services/api.ts create mode 100644 news/apps/web/src/lib/stores/auth.svelte.ts create mode 100644 news/apps/web/src/routes/(protected)/+layout.svelte create mode 100644 news/apps/web/src/routes/(protected)/feed/+page.svelte create mode 100644 news/apps/web/src/routes/(protected)/in-depth/+page.svelte create mode 100644 news/apps/web/src/routes/(protected)/saved/+page.svelte create mode 100644 news/apps/web/src/routes/(protected)/summaries/+page.svelte create mode 100644 news/apps/web/src/routes/+layout.svelte create mode 100644 news/apps/web/src/routes/+page.svelte create mode 100644 news/apps/web/src/routes/auth/login/+page.svelte create mode 100644 news/apps/web/src/routes/auth/register/+page.svelte create mode 100644 news/apps/web/svelte.config.js create mode 100644 news/apps/web/tsconfig.json create mode 100644 news/apps/web/vite.config.ts create mode 100644 news/docker/docker-compose.yml create mode 100644 news/docker/init.sql create mode 100644 news/packages/browser-extension/README.md create mode 100644 news/packages/browser-extension/background.js create mode 100644 news/packages/browser-extension/content.js create mode 100644 news/packages/browser-extension/debug.html create mode 100644 news/packages/browser-extension/debug.js create mode 100644 news/packages/browser-extension/manifest.json create mode 100644 news/packages/browser-extension/popup.html create mode 100644 news/packages/browser-extension/popup.js create mode 100644 packages/news-database/drizzle.config.ts create mode 100644 packages/news-database/package.json create mode 100644 packages/news-database/src/index.ts create mode 100644 packages/news-database/src/schema/articles.ts create mode 100644 packages/news-database/src/schema/auth.ts create mode 100644 packages/news-database/src/schema/categories.ts create mode 100644 packages/news-database/src/schema/index.ts create mode 100644 packages/news-database/src/schema/interactions.ts create mode 100644 packages/news-database/src/schema/users.ts create mode 100644 packages/news-database/tsconfig.json delete mode 100644 uload/apps/landing/src/components/FeaturesSection.astro delete mode 100644 uload/apps/landing/src/components/PricingSection.astro diff --git a/chat/apps/landing/src/components/Footer.astro b/chat/apps/landing/src/components/Footer.astro new file mode 100644 index 000000000..7afdc7a06 --- /dev/null +++ b/chat/apps/landing/src/components/Footer.astro @@ -0,0 +1,80 @@ +--- +const footerLinks = { + product: [ + { href: '#features', label: 'Features' }, + { href: '#pricing', label: 'Preise' }, + { href: '#faq', label: 'FAQ' } + ], + legal: [ + { href: '/privacy', label: 'Datenschutz' }, + { href: '/terms', label: 'AGB' }, + { href: '/imprint', label: 'Impressum' } + ] +}; + +const currentYear = new Date().getFullYear(); +--- + + diff --git a/chat/apps/landing/src/components/Navigation.astro b/chat/apps/landing/src/components/Navigation.astro new file mode 100644 index 000000000..3e650e61e --- /dev/null +++ b/chat/apps/landing/src/components/Navigation.astro @@ -0,0 +1,86 @@ +--- +const navLinks = [ + { href: '#features', label: 'Features' }, + { href: '#how-it-works', label: 'So funktioniert\'s' }, + { href: '#pricing', label: 'Preise' }, + { href: '#faq', label: 'FAQ' } +]; +--- + + + + diff --git a/chat/apps/landing/src/layouts/BaseLayout.astro b/chat/apps/landing/src/layouts/BaseLayout.astro deleted file mode 100644 index 6ddbd1850..000000000 --- a/chat/apps/landing/src/layouts/BaseLayout.astro +++ /dev/null @@ -1,28 +0,0 @@ ---- -interface Props { - title: string; - description?: string; -} - -const { title, description = 'ManaChat - AI Chat Assistant' } = Astro.props; ---- - - - - - - - - - {title} - - - - - - - diff --git a/chat/apps/landing/src/layouts/Layout.astro b/chat/apps/landing/src/layouts/Layout.astro new file mode 100644 index 000000000..f28155302 --- /dev/null +++ b/chat/apps/landing/src/layouts/Layout.astro @@ -0,0 +1,47 @@ +--- +import '../styles/global.css'; + +interface Props { + title: string; + description?: string; +} + +const { + title, + description = 'ManaChat - Dein intelligenter KI-Chat-Assistent mit GPT-4o und mehr' +} = Astro.props; +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {title} + + + + + diff --git a/chat/apps/landing/src/pages/index.astro b/chat/apps/landing/src/pages/index.astro index ba96864c4..4c1fe9b86 100644 --- a/chat/apps/landing/src/pages/index.astro +++ b/chat/apps/landing/src/pages/index.astro @@ -1,100 +1,259 @@ --- -import BaseLayout from '../layouts/BaseLayout.astro'; +import Layout from '../layouts/Layout.astro'; +import Navigation from '../components/Navigation.astro'; +import Footer from '../components/Footer.astro'; + +// Shared components +import HeroSection from '@manacore/shared-landing-ui/sections/HeroSection.astro'; +import FeatureSection from '@manacore/shared-landing-ui/sections/FeatureSection.astro'; +import StepsSection from '@manacore/shared-landing-ui/sections/StepsSection.astro'; +import FAQSection from '@manacore/shared-landing-ui/sections/FAQSection.astro'; +import CTASection from '@manacore/shared-landing-ui/sections/CTASection.astro'; +import PricingSection from '@manacore/shared-landing-ui/sections/PricingSection.astro'; + +// Feature data +const features = [ + { + icon: '🤖', + title: 'Mehrere KI-Modelle', + description: 'Wähle zwischen GPT-4o, GPT-4o-Mini und weiteren leistungsstarken Modellen für deine Gespräche.' + }, + { + icon: '💬', + title: 'Konversationen speichern', + description: 'Alle deine Chats werden sicher in der Cloud gespeichert und sind jederzeit abrufbar.' + }, + { + icon: '📱', + title: 'Plattformübergreifend', + description: 'Nutze ManaChat auf iOS, Android und im Web - deine Daten sind überall synchronisiert.' + }, + { + icon: '📝', + title: 'Dokument-Modus', + description: 'Arbeite mit der KI an längeren Texten im speziellen Dokument-Modus mit Versionierung.' + }, + { + icon: '🎨', + title: 'Vorlagen', + description: 'Nutze vorgefertigte Vorlagen für häufige Aufgaben wie Texte schreiben, Code erklären oder Übersetzungen.' + }, + { + icon: '🔒', + title: 'Privatsphäre', + description: 'Deine Daten sind sicher. Wir verkaufen keine Nutzerdaten und sind DSGVO-konform.' + } +]; + +// Steps data +const steps = [ + { + number: '1', + title: 'App herunterladen', + description: 'Lade ManaChat kostenlos im App Store oder Google Play Store herunter.', + image: '/screenshots/download.png' + }, + { + number: '2', + title: 'Konto erstellen', + description: 'Registriere dich in wenigen Sekunden mit E-Mail oder Google-Account.', + image: '/screenshots/register.png' + }, + { + number: '3', + title: 'Loslegen', + description: 'Starte dein erstes Gespräch mit der KI - einfach und intuitiv.', + image: '/screenshots/chat.png' + } +]; + +// Pricing data +const pricingPlans = [ + { + name: 'Free', + price: '0', + period: '/Monat', + description: 'Perfekt zum Ausprobieren', + features: [ + { text: '50 Nachrichten/Tag', included: true }, + { text: 'GPT-4o-Mini Zugang', included: true }, + { text: 'Chat-Verlauf speichern', included: true }, + { text: 'Basis-Vorlagen', included: true }, + { text: 'GPT-4o Zugang', included: false }, + { text: 'Dokument-Modus', included: false } + ], + cta: { + text: 'Kostenlos starten', + href: '#download' + } + }, + { + name: 'Pro', + price: '9,99', + period: '/Monat', + description: 'Für Power-User', + features: [ + { text: 'Unbegrenzte Nachrichten', included: true }, + { text: 'Alle KI-Modelle', included: true }, + { text: 'Dokument-Modus', included: true }, + { text: 'Alle Vorlagen', included: true }, + { text: 'Prioritäts-Antworten', included: true }, + { text: 'Premium-Support', included: true } + ], + cta: { + text: 'Pro werden', + href: '#download' + }, + highlighted: true, + badge: 'Beliebt' + }, + { + name: 'Team', + price: '24,99', + period: '/Monat', + description: 'Für Teams und Unternehmen', + features: [ + { text: 'Alles aus Pro', included: true }, + { text: 'Team-Verwaltung', included: true }, + { text: 'Geteilte Chats', included: true }, + { text: 'Admin-Dashboard', included: true }, + { text: 'API-Zugang', included: true }, + { text: 'Dedizierter Support', included: true } + ], + cta: { + text: 'Team starten', + href: '#download' + } + } +]; + +// FAQ data +const faqs = [ + { + question: 'Welche KI-Modelle sind verfügbar?', + answer: 'ManaChat bietet Zugang zu GPT-4o, GPT-4o-Mini und weiteren Modellen. Du kannst das Modell für jedes Gespräch individuell auswählen, je nach Komplexität deiner Anfrage.' + }, + { + question: 'Wie sicher sind meine Daten?', + answer: 'Deine Daten werden verschlüsselt übertragen und gespeichert. Wir verkaufen keine Nutzerdaten an Dritte und sind vollständig DSGVO-konform. Du kannst deine Daten jederzeit exportieren oder löschen.' + }, + { + question: 'Was ist der Dokument-Modus?', + answer: 'Im Dokument-Modus kannst du mit der KI an längeren Texten arbeiten. Die KI hilft dir beim Schreiben, Überarbeiten und Verbessern. Alle Änderungen werden versioniert, sodass du jederzeit frühere Versionen wiederherstellen kannst.' + }, + { + question: 'Kann ich ManaChat offline nutzen?', + answer: 'Da ManaChat auf Cloud-KI-Modellen basiert, ist eine Internetverbindung erforderlich. Dein Chat-Verlauf wird jedoch lokal zwischengespeichert und synchronisiert, sobald du wieder online bist.' + }, + { + question: 'Wie funktioniert die Synchronisierung?', + answer: 'Alle deine Chats werden automatisch in der Cloud gespeichert und sind auf allen deinen Geräten verfügbar. Melde dich einfach mit dem gleichen Account an und du hast sofort Zugriff auf alle Gespräche.' + }, + { + question: 'Kann ich mein Abo jederzeit kündigen?', + answer: 'Ja, du kannst dein Pro- oder Team-Abo jederzeit kündigen. Nach der Kündigung hast du noch bis zum Ende des Abrechnungszeitraums Zugang zu allen Premium-Features.' + } +]; --- - -
- -
-
-

- ManaChat -

-

- Dein intelligenter KI-Chat-Assistent -

-

- Chatte mit den leistungsstärksten KI-Modellen. GPT-4o, GPT-4o-Mini und mehr - - alles in einer einfachen, eleganten Oberfläche. -

- -
-
+ + - -
-
-

- Funktionen -

-
-
-
🤖
-

- Mehrere KI-Modelle -

-

- Wähle zwischen GPT-4o, GPT-4o-Mini und weiteren Modellen für deine Gespräche. -

-
-
-
💬
-

- Konversationen speichern -

-

- Alle deine Chats werden sicher gespeichert und sind jederzeit abrufbar. -

-
-
-
📱
-

- Plattformübergreifend -

-

- Nutze ManaChat auf iOS, Android und im Web - deine Daten sind überall synchronisiert. -

-
-
-
-
+
+ - -
-
-

- Bereit für intelligente Gespräche? -

-

- Starte jetzt kostenlos mit ManaChat. -

- - Jetzt herunterladen + + + + + + + + + + + -
- -
-
-

© 2024 ManaChat. Powered by Mana Core.

+ +
+
+ + + + 100% Kostenlos starten +
+
+ + + + DSGVO-konform +
+
+ + + + Keine Kreditkarte nötig +
-
+
- + +