# Landing Page - Picture Marketing Landing Page für Picture, gebaut mit Astro. ## 🚀 Tech Stack - **Astro 5.2** - Static Site Generator - **Tailwind CSS 3.4** - Styling - **TypeScript** - Type Safety ## 📦 Features - ✅ Ultraschnell (0 JS by default) - ✅ SEO-optimiert - ✅ Static Site Generation - ✅ Hot Module Replacement (HMR) - ✅ Tailwind CSS Integration - ✅ TypeScript Support ## 🛠️ Development ### Voraussetzungen - Node.js 20+ - pnpm 9+ ### Installation ```bash # Von der Root des Monorepos pnpm install # Oder direkt im Landing-Ordner cd apps/landing pnpm install ``` ### Development Server starten ```bash # Von der Root pnpm dev:landing # Oder direkt im Landing-Ordner pnpm dev ``` Der Development Server läuft auf: **http://localhost:4321** ### Scripts ```bash pnpm dev # Development Server starten pnpm start # Alias für dev pnpm build # Production Build erstellen (mit Type-Check) pnpm preview # Build Preview anzeigen pnpm type-check # TypeScript Type Checking pnpm lint # Code linten pnpm format # Code formatieren mit Prettier pnpm clean # Build-Artefakte löschen ``` ## 📁 Struktur ``` apps/landing/ ├── src/ │ ├── layouts/ │ │ └── Layout.astro # Base Layout │ ├── pages/ │ │ └── index.astro # Homepage │ ├── styles/ │ │ └── global.css # Globale Styles │ └── env.d.ts # TypeScript Env Definitionen ├── public/ # Static Assets ├── astro.config.mjs # Astro Konfiguration ├── tailwind.config.js # Tailwind Konfiguration ├── tsconfig.json # TypeScript Konfiguration └── package.json ``` ## 🎨 Styling Das Projekt verwendet **Tailwind CSS** für Styling: ```html

Welcome to Picture

``` ### Globale Styles Globale Styles werden in `src/styles/global.css` definiert und im Layout importiert. ## 🏗️ Build ### Production Build ```bash pnpm build ``` Output: `dist/` - Enthält alle statischen Dateien für Deployment ### Build Preview ```bash pnpm preview ``` Zeigt die gebaute Version lokal an: http://localhost:4321 ## 🚢 Deployment Die Landing Page ist eine **statische Website** und kann auf jedem Static Host deployed werden: ### Empfohlene Hosts 1. **Cloudflare Pages** (empfohlen) - Build Command: `pnpm build` - Output Directory: `dist` - Node Version: 20+ 2. **Netlify** - Build Command: `pnpm build` - Publish Directory: `dist` 3. **Vercel** - Build Command: `pnpm build` - Output Directory: `dist` ### Cloudflare Pages Deployment ```bash # Build erstellen pnpm build # Via Cloudflare Pages Dashboard deployen # oder via CLI: wrangler pages deploy dist ``` ## 📝 Content Management ### Neue Seite hinzufügen Erstelle eine neue `.astro` Datei in `src/pages/`: ```astro --- // src/pages/about.astro import Layout from '../layouts/Layout.astro'; ---

About Us

Welcome to Picture

``` Die Seite ist dann verfügbar unter: `/about` ### Component erstellen ```astro --- // src/components/Hero.astro interface Props { title: string; subtitle?: string; } const { title, subtitle } = Astro.props; ---

{title}

{subtitle &&

{subtitle}

}
``` ## 🔧 Konfiguration ### Astro Config (`astro.config.mjs`) ```javascript import { defineConfig } from 'astro/config'; import tailwind from '@astrojs/tailwind'; export default defineConfig({ integrations: [tailwind()], output: 'static', }); ``` ### Tailwind Config (`tailwind.config.js`) ```javascript export default { content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], theme: { extend: {}, }, plugins: [], }; ``` ## 🔍 SEO Astro ist von Haus aus SEO-optimiert: - ✅ Server-Side Rendering zur Build-Zeit - ✅ Keine unnötigen Client-Side JavaScript - ✅ Optimierte HTML-Struktur - ✅ Unterstützt Meta Tags out of the box ### SEO Meta Tags hinzufügen ```astro --- // src/layouts/Layout.astro interface Props { title: string; description?: string; } const { title, description } = Astro.props; --- {title} {description && } ``` ## 📚 Weitere Ressourcen - [Astro Dokumentation](https://docs.astro.build) - [Tailwind CSS Dokumentation](https://tailwindcss.com/docs) - [TypeScript Dokumentation](https://www.typescriptlang.org/docs) ## 🤝 Integration mit Monorepo Die Landing Page ist Teil des Picture Monorepos: ```bash # Von der Root alle Apps starten pnpm dev # Nur Landing Page starten pnpm dev:landing # Landing Page bauen pnpm build:landing ``` Siehe [Monorepo Docs](../../docs/features/MONOREPO_ARCHITECTURE.md) für Details.