Astro-Monorepo,
fertig eingerichtet
Starter mit Landingpage und Blog auf Astro 7, Tailwind v4 und Svelte 5. Lint, E2E-Tests, Build-Audit, CSP und Deployment auf Cloudflare Workers sind konfiguriert. MIT-lizenziert.
Die Einrichtung, die sonst jedes Projekt neu macht.
Astro liefert statisches HTML und lädt JavaScript nur für Inseln, die ausdrücklich eingebunden sind. Das Template ergänzt die Werkzeugkette, die sonst in jedem Projekt neu entsteht: Lint und Format, Tests, Audits, Security-Header, Mehrsprachigkeit und Deployment. Neue Apps sind ein Ordner unter apps/ und teilen Tokens und Komponenten aus shared/.
- 01Zwei Apps —
startermit Landingpage und Kontaktformular,blogmit MDX und RSS - 02Geteilte Basis — Tokens, Komponenten, Layouts und Utilities in
shared/ - 03Zentrale Versionen — ein pnpm-Catalog für alle Apps
- 04Folgt Astro 7 — das Template wird mit den Astro-7-Releases aktualisiert
Klonen, installieren, starten.
- 1Klonen
Repository holen
Voraussetzung: Node.js ab 22.12.0 und pnpm ab 11.
git clone https://github.com/casoon/astro-v7-template.git - 2Installieren
Abhängigkeiten laden
Ein Install für alle Apps, die Versionen kommen aus dem Catalog.
pnpm install - 3Entwickeln
Dev-Server starten
Starter auf Port 4321, Blog auf Port 4322.
pnpm dev · pnpm dev:blog - 4Deployen
Auf Cloudflare ausrollen
Baut die App und führt
wrangler deployaus.pnpm deploy:starter
Eingerichtet, nicht nur installiert.
Tailwind v4
CSS-first-Konfiguration über das Vite-Plugin, OKLCH-Farben, Dark Mode nach Systemeinstellung mit Umschalter.
Svelte 5 Runes
Reaktive Inseln mit $state und $derived. Seiten ohne Insel kommen ohne Framework-JavaScript aus.
i18n (en/de)
Astro-i18n-Routing: Englisch ohne Präfix, Deutsch unter /de/, hreflang in der Sitemap.
Security
Astros eingebaute Content Security Policy mit SHA-256-Hashes, dazu checkOrigin gegen CSRF.
Astro Actions
Kontaktformular mit serverseitiger Verarbeitung und Zod-Validierung.
OG-Bilder
Zur Build-Zeit mit Satori und resvg erzeugt, pro Seite und Sprache.
Playwright + axe-core
15 Spec-Dateien für beide Apps: Navigation, SEO, i18n, Formular, Theme und Accessibility-Scans.
Code-Analyse
fallow findet ungenutzte Dateien, Exporte und Abhängigkeiten, Komplexitäts-Hotspots und Duplikate.
Blog-App
MDX mit Content Collections, Inhaltsverzeichnis mit Scrollspy, Lesefortschritt und RSS-Feed unter /rss.xml.
Was Astro 7 im Template ändert.
| Kriterium | Astro 7 | Astro 6 |
|---|---|---|
| Bundler | Vite 8 + Rolldown | Vite 7 + Rollup |
| .astro-Compiler | Rust, lehnt offene Tags ab | Go |
| Markdown | Sätteri, GFM und Heading-IDs eingebaut | remark/rehype mit Plugins |
| compressHTML (Default) | 'jsx' | true |
| @astrojs/cloudflare | v14, workerd in jeder Phase | v13 |
| src/fetch.ts | reserviert für Advanced Routing | frei nutzbar |
Stand: September 2026, laut README des Templates. Mit compressHTML: 'jsx' kann Leerraum zwischen Inline-Elementen wegfallen – dann hilft {" "}.
Ein Workspace, klar aufgeteilt.
astro-v7-template/
├── apps/
│ ├── starter/ # Landingpage, Kontaktformular, i18n
│ └── blog/ # MDX-Blog, RSS, i18n
├── shared/ # Tokens, Komponenten, Layouts, SEO
├── integrations/ # eigene Integrationen
├── e2e/
│ ├── starter/ # Playwright-Tests
│ └── blog/
├── .github/workflows/ # CI-Pipeline
├── biome.json
├── playwright.config.ts
└── pnpm-workspace.yaml # Workspace + Catalog# pnpm-workspace.yaml
catalog:
astro: ^7.3.2
"@astrojs/cloudflare": ^14.3.1
"@astrojs/svelte": ^9.0.1
tailwindcss: ^4.3.3
svelte: ^5.57.0
typescript: ^6.0.3
zod: ^4.5.4
"@biomejs/biome": ^2.5.12
"@casoon/astro-post-audit": ^0.6.0
"@casoon/astro-structured-data": ^2.0.1Sechs CASOON-Pakete, schon verdrahtet.
Build-Audit
Prüft nach jedem Build SEO, Links, HTML und Accessibility-Regeln. Nur echte Fehler brechen den Build ab.
@casoon/astro-site-filesSite-Dateien
Erzeugt robots.txt, sitemap.xml mit hreflang, llms.txt, security.txt und humans.txt.
JSON-LD
Typisierte Schema-Komponenten; mit generateMeta entstehen Open-Graph- und Twitter-Tags.
Build-Metriken
Misst die Build-Zeit von Integrationen, Vite-Plugins und Seiten.
@casoon/astro-webvitalsWeb Vitals
Misst LCP, CLS und INP im Browser. In Produktion melden 10 % der Sessions an einen typisierten Endpunkt.
@casoon/nosecretsSecret Scanning
Pre-commit-Hook und Workspace-Scan gegen API-Keys und Tokens im Repository.
Was man vorher wissen sollte.
Ein Template nimmt Entscheidungen vorweg. Diese hier sind bewusst so getroffen.
Cloudflare als Standard
Andere Plattformen brauchen drei Änderungen pro App: Adapter tauschen, Sharp als Bilddienst aktivieren, wrangler.toml löschen.
TypeScript bleibt bei 6
astro check braucht eine API, die TypeScript 7 noch nicht bereitstellt. Die Version ist deshalb auf ^6.0.3 festgelegt.
Web Vitals ohne Speicher
Der Endpunkt prüft die Messwerte und antwortet mit 204. Wohin die Daten gehen, entscheidet das Projekt.
Englisch als Standardsprache
Englisch liegt ohne Präfix im Root, Deutsch unter /de/. Wer es umgekehrt braucht, passt die i18n-Konfiguration an.
- Marketing-Websites
- Blogs und Content-Seiten
- Landingpages
- Agentur-Starter
- Multi-App-Monorepos
- Cloudflare-Projekte
Häufige Fragen.
Warum ein Monorepo statt eines einzelnen Projekts?
Mehrere Apps – etwa Website, Blog und Landingpages – teilen Design-Tokens, Komponenten und Werkzeuge und bleiben trotzdem einzeln deploybar. Eine neue App ist ein Ordner unter apps/, der aus shared/ importiert.
Muss ich Cloudflare verwenden?
Nein. Das Template ist für Cloudflare Workers vorkonfiguriert. Für Node.js, Vercel oder Netlify wird der Adapter getauscht, Sharp als Bilddienst aktiviert und die wrangler.toml entfernt.
Was ändert sich durch Astro 7?
Vite 8 mit Rolldown als Bundler, ein Rust-Compiler für .astro-Dateien, der nicht geschlossene HTML-Tags ablehnt, und Sätteri als Markdown-Prozessor mit eingebautem GFM. compressHTML steht auf jsx, dadurch kann Leerraum zwischen Inline-Elementen wegfallen.
Wie bleibt mein Projekt aktuell?
Das Template ist ein Startpunkt, kein Paket: Nach dem Klonen gehört der Code dem Projekt. Die Versionen stehen zentral im pnpm-Catalog, und eine Renovate-Konfiguration liegt bei.
Ist das Template für Coding-Agenten vorbereitet?
Ja. CLAUDE.md enthält die Projektregeln, .claude/mcp.json eine MCP-Konfiguration und der Ordner .ai/ Prompts und Wissensdateien. Astro 7 bringt außerdem astro dev --background für Agenten und CI.
Unter welcher Lizenz steht das Template?
MIT. Es darf kommerziell genutzt, verändert und weitergegeben werden.
Starten mit fertiger Werkzeugkette.
Astro 7, Tailwind v4, Svelte 5, Tests und Audits – MIT-lizenziert, bereit für Cloudflare Workers.