From 623b1a21b13261e9f7bae145bea886a0890d334e Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Tue, 2 Dec 2025 13:06:38 +0100 Subject: [PATCH] feat(landing): add Presi landing page and improve Zitare landing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Create complete Presi landing page with Astro + Tailwind - Orange theme (#f97316) matching Presi branding - Use shared-landing-ui components (HeroSection, FeatureSection, FAQSection, CTASection) - Add "How it works" section with 4-step guide - Fix Zitare landing styling with proper Tailwind config - Add CSS custom properties for consistent theming - Add deploy:landing:presi script and update deploy:landing:all - Add dev:presi:landing script 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- apps/presi/apps/landing/astro.config.mjs | 8 + apps/presi/apps/landing/package.json | 26 + apps/presi/apps/landing/public/favicon.svg | 10 + .../apps/landing/src/components/Footer.astro | 74 ++ .../landing/src/components/Navigation.astro | 36 + .../apps/landing/src/layouts/Layout.astro | 50 ++ apps/presi/apps/landing/src/pages/index.astro | 224 ++++++ apps/presi/apps/landing/src/styles/global.css | 101 +++ apps/presi/apps/landing/tailwind.config.mjs | 36 + apps/presi/apps/landing/tsconfig.json | 9 + apps/presi/apps/landing/wrangler.toml | 3 + apps/zitare/apps/landing/package.json | 1 + .../apps/landing/src/components/Footer.astro | 74 ++ .../landing/src/components/Navigation.astro | 36 + .../apps/landing/src/layouts/Layout.astro | 89 +-- .../zitare/apps/landing/src/pages/index.astro | 280 +++++--- .../zitare/apps/landing/src/styles/global.css | 99 +++ apps/zitare/apps/landing/tailwind.config.mjs | 38 ++ package.json | 4 +- pnpm-lock.yaml | 640 +++++++++++++++--- 20 files changed, 1582 insertions(+), 256 deletions(-) create mode 100644 apps/presi/apps/landing/astro.config.mjs create mode 100644 apps/presi/apps/landing/package.json create mode 100644 apps/presi/apps/landing/public/favicon.svg create mode 100644 apps/presi/apps/landing/src/components/Footer.astro create mode 100644 apps/presi/apps/landing/src/components/Navigation.astro create mode 100644 apps/presi/apps/landing/src/layouts/Layout.astro create mode 100644 apps/presi/apps/landing/src/pages/index.astro create mode 100644 apps/presi/apps/landing/src/styles/global.css create mode 100644 apps/presi/apps/landing/tailwind.config.mjs create mode 100644 apps/presi/apps/landing/tsconfig.json create mode 100644 apps/presi/apps/landing/wrangler.toml create mode 100644 apps/zitare/apps/landing/src/components/Footer.astro create mode 100644 apps/zitare/apps/landing/src/components/Navigation.astro create mode 100644 apps/zitare/apps/landing/src/styles/global.css create mode 100644 apps/zitare/apps/landing/tailwind.config.mjs diff --git a/apps/presi/apps/landing/astro.config.mjs b/apps/presi/apps/landing/astro.config.mjs new file mode 100644 index 000000000..9abd76b23 --- /dev/null +++ b/apps/presi/apps/landing/astro.config.mjs @@ -0,0 +1,8 @@ +import { defineConfig } from 'astro/config'; +import tailwind from '@astrojs/tailwind'; +import sitemap from '@astrojs/sitemap'; + +export default defineConfig({ + site: 'https://presi.manacore.app', + integrations: [tailwind(), sitemap()], +}); diff --git a/apps/presi/apps/landing/package.json b/apps/presi/apps/landing/package.json new file mode 100644 index 000000000..412a163e7 --- /dev/null +++ b/apps/presi/apps/landing/package.json @@ -0,0 +1,26 @@ +{ + "name": "@presi/landing", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro", + "type-check": "astro check" + }, + "dependencies": { + "@astrojs/check": "^0.9.0", + "@astrojs/sitemap": "^3.2.1", + "@manacore/shared-landing-ui": "workspace:*", + "astro": "^5.16.0", + "typescript": "^5.0.0" + }, + "devDependencies": { + "@astrojs/tailwind": "^6.0.0", + "@tailwindcss/typography": "^0.5.16", + "tailwindcss": "^3.4.17" + } +} diff --git a/apps/presi/apps/landing/public/favicon.svg b/apps/presi/apps/landing/public/favicon.svg new file mode 100644 index 000000000..ebea9ecb5 --- /dev/null +++ b/apps/presi/apps/landing/public/favicon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/apps/presi/apps/landing/src/components/Footer.astro b/apps/presi/apps/landing/src/components/Footer.astro new file mode 100644 index 000000000..35e697013 --- /dev/null +++ b/apps/presi/apps/landing/src/components/Footer.astro @@ -0,0 +1,74 @@ +--- +import Container from '@manacore/shared-landing-ui/atoms/Container.astro'; +--- + + diff --git a/apps/presi/apps/landing/src/components/Navigation.astro b/apps/presi/apps/landing/src/components/Navigation.astro new file mode 100644 index 000000000..395565bb6 --- /dev/null +++ b/apps/presi/apps/landing/src/components/Navigation.astro @@ -0,0 +1,36 @@ +--- +import Container from '@manacore/shared-landing-ui/atoms/Container.astro'; +import Button from '@manacore/shared-landing-ui/atoms/Button.astro'; +--- + + diff --git a/apps/presi/apps/landing/src/layouts/Layout.astro b/apps/presi/apps/landing/src/layouts/Layout.astro new file mode 100644 index 000000000..97d948dfd --- /dev/null +++ b/apps/presi/apps/landing/src/layouts/Layout.astro @@ -0,0 +1,50 @@ +--- +import '../styles/global.css'; + +interface Props { + title: string; + description?: string; +} + +const { + title, + description = 'Presi - Erstelle beeindruckende Präsentationen mit KI-Unterstützung', +} = Astro.props; +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {title} + + + + + diff --git a/apps/presi/apps/landing/src/pages/index.astro b/apps/presi/apps/landing/src/pages/index.astro new file mode 100644 index 000000000..af06197b0 --- /dev/null +++ b/apps/presi/apps/landing/src/pages/index.astro @@ -0,0 +1,224 @@ +--- +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 CTASection from '@manacore/shared-landing-ui/sections/CTASection.astro'; +import FAQSection from '@manacore/shared-landing-ui/sections/FAQSection.astro'; +import Container from '@manacore/shared-landing-ui/atoms/Container.astro'; + +// Feature data +const features = [ + { + icon: '🎨', + title: 'Schöne Themes', + description: 'Wähle aus professionellen Themes oder erstelle dein eigenes Design.', + }, + { + icon: '📱', + title: 'Überall verfügbar', + description: 'Native Apps für iOS, Android und Web - deine Präsentationen sind immer dabei.', + }, + { + icon: '🔗', + title: 'Einfach teilen', + description: 'Teile Präsentationen per Link - ohne Download oder Account nötig.', + }, + { + icon: '🖥️', + title: 'Präsentationsmodus', + description: 'Vollbild-Präsentation mit Tastatursteuerung und Timer.', + }, + { + icon: '📝', + title: 'Verschiedene Layouts', + description: 'Titel, Inhalt, Bilder, Split-Views - für jeden Zweck das richtige Layout.', + }, + { + icon: '☁️', + title: 'Cloud-Sync', + description: 'Automatische Synchronisierung auf allen Geräten.', + }, +]; + +// How it works steps +const steps = [ + { + number: '1', + title: 'Deck erstellen', + description: 'Starte mit einem leeren Deck oder wähle ein Template.', + }, + { + number: '2', + title: 'Slides hinzufügen', + description: 'Füge Titel, Text, Bilder und Bullet Points hinzu.', + }, + { + number: '3', + title: 'Theme wählen', + description: 'Wähle ein professionelles Theme für deine Präsentation.', + }, + { + number: '4', + title: 'Präsentieren & Teilen', + description: 'Präsentiere im Vollbild oder teile per Link.', + }, +]; + +// FAQ data +const faqs = [ + { + question: 'Ist Presi kostenlos?', + answer: 'Ja, Presi ist kostenlos nutzbar. Du kannst unbegrenzt Präsentationen erstellen, teilen und präsentieren.', + }, + { + question: 'Kann ich Präsentationen offline bearbeiten?', + answer: 'Mit der mobilen App kannst du deine Präsentationen auch offline bearbeiten. Änderungen werden synchronisiert, sobald du wieder online bist.', + }, + { + question: 'Wie teile ich eine Präsentation?', + answer: 'Klicke auf "Teilen" und erstelle einen Link. Jeder mit dem Link kann die Präsentation ansehen - ohne Account oder Download.', + }, + { + question: 'Welche Slide-Typen gibt es?', + answer: 'Presi unterstützt Titel-Slides, Content-Slides mit Text und Bullet Points, Bild-Slides und Split-Views mit Text und Bild nebeneinander.', + }, + { + question: 'Kann ich eigene Themes erstellen?', + answer: 'Aktuell bieten wir vorgefertigte Themes. Custom Themes sind für zukünftige Versionen geplant.', + }, +]; +--- + + + + +
+ + + + +
+ +
+

+ So einfach geht's +

+

+ In vier Schritten zur perfekten Präsentation +

+
+ +
+ {steps.map((step, index) => ( +
+
+
+ {step.number} +
+

{step.title}

+

{step.description}

+
+ {index < steps.length - 1 && ( + + )} +
+ ))} +
+
+
+ + + + + +
+ +
+

+ Präsentiere wie ein Profi +

+

+ Der Präsentationsmodus bietet alles was du brauchst: Vollbild-Ansicht, + Tastaturnavigation mit Pfeiltasten, Timer für perfektes Timing und + Speaker Notes für deine Notizen. +

+
+
+
+ + + Navigation +
+
+ F + Vollbild +
+
+ ESC + Beenden +
+
+
+
+
+
+ + + + + + +
+ +