Von Content Security Policy über Live Content Collections bis SVG-Optimierung – was sich seit Mai 2025 getan hat
Astro hat seit Version 5.9 zahlreiche Features ausgeliefert – von experimenteller Content Security Policy über Live Content Collections bis hin zu SVG-Optimierung. Dieser Artikel fasst die wichtigsten Neuerungen der Versionen 5.9 bis 5.16 zusammen.
Astro 5.9: Security und Markdown-Rendering
Content Security Policy (experimentell)
Cross-Site-Scripting (XSS) zählt zu den häufigsten Angriffen auf Websites. Die Content Security Policy schränkt ein, von welchen Quellen Ressourcen geladen werden dürfen. Astro-Projekte mussten bisher oft auf unsafe-inline zurückgreifen – das hebelt den XSS-Schutz teilweise aus.
Astro 5.9 bringt experimentellen CSP-Support für alle Render-Modi:
// astro.config.mjs
import { defineConfig } from "astro/config";
export default defineConfig({
experimental: {
csp: true
}
});
Astro generiert automatisch die passenden CSP-Header und <meta>-Elemente. Wer bereits CSP via Middleware nutzt, kann das weiterhin tun – der Browser wendet die strengere Richtlinie an.
Auswirkungen auf externe Ressourcen
CSP arbeitet mit Allowlists: Nur explizit erlaubte Quellen dürfen geladen werden. Das betrifft externe Skripte, Styles und Fonts gleichermaßen.
Externe Skripte (z.B. Alpine.js, Analytics): Ein Script von einem CDN wie unpkg wird blockiert, solange die Domain nicht in script-src eingetragen ist. Inline-Skripte benötigen zusätzlich Nonces oder Hashes – 'unsafe-inline' hebelt den XSS-Schutz aus.
Google Fonts: Hier sind zwei Direktiven nötig, da CSS und Schriftdateien von verschiedenen Domains kommen:
style-srcfürhttps://fonts.googleapis.comfont-srcfürhttps://fonts.gstatic.com
Ein typisches Setup für ein Astro-Projekt mit Alpine.js und Google Fonts:
Content-Security-Policy:
default-src 'self';
script-src 'self' https://unpkg.com;
style-src 'self' https://fonts.googleapis.com;
font-src https://fonts.gstatic.com
CSP verhindert externe Ressourcen also nicht pauschal – sie müssen nur explizit freigegeben werden. Das erfordert initiale Konfigurationsarbeit, erhöht aber die Sicherheit erheblich.
Markdown-Helper-Funktion
Neu ist auch renderMarkdown für dynamische Markdown-Inhalte:
---
import { renderMarkdown } from 'astro:markdown';
const content = `
# Dynamischer Inhalt
Dieser Text kommt aus einer **API** oder Datenbank.
`;
const { html } = await renderMarkdown(content);
---
<article set:html={html} />
Anwendungsfälle: Markdown aus CMS-APIs rendern (Strapi, Directus, Contentful), dynamische Inhalte aus Datenbanken, GitHub READMEs einbinden.
Astro 5.10: Live Collections und Responsive Images
Live Content Collections (experimentell)
Das größte Feature: Content zur Laufzeit statt zur Build-Zeit laden. Die neuen Funktionen getLiveCollection() und getLiveEntry() ermöglichen frische Daten bei jedem Request.
Responsive Images (stabil)
Die zuvor experimentellen Responsive Images sind jetzt stabil. Automatische srcset- und sizes-Generierung mit drei Layout-Optionen:
- constrained: Maximale Breite, skaliert nach unten
- fixed: Feste Dimensionen
- full-width: Volle Container-Breite
Neu ist die priority-Prop für Above-the-fold-Bilder.
CSP-Verbesserungen (5.10 + 5.11)
Der CSP-Support wurde in zwei Versionen erweitert: Ab 5.10 generiert Astro Response-Header für SSR-Seiten statt nur Meta-Tags. Mit 5.11 können Node.js-, Netlify- und Vercel-Adapter CSP-Header auch für prerenderte Seiten ausliefern. Direktiven wie report-uri, frame-ancestors und sandbox funktionieren damit auf statischen Seiten – aktivierbar über experimentalStaticHeaders.
Cloudflare-Adapter erweitert (5.10 + 5.13)
Der Cloudflare-Adapter bekommt kontinuierlich neue Features: workerEntryPoint (5.10) ermöglicht Durable Objects, Queues und Cron Triggers. Ab 5.13 funktioniert Workers KV auch während der lokalen Entwicklung.
Astro 5.11: Streaming-Kontrolle
HTML-Streaming deaktivieren
Der Node.js-Adapter bietet experimentalDisableStreaming – nützlich für Hosting-Szenarien, die nicht-gestreames HTML für CDN-Caching benötigen.
Astro 5.12: TOML-Support und Netlify Dev
TOML für Content Collections
Neben Markdown, JSON und YAML unterstützt Astro jetzt auch TOML-Dateien in Content Collections – ohne zusätzliche Konfiguration.
Neue Netlify Dev Experience
Der Netlify-Adapter nutzt jetzt Netlifys Vite-Plugin während der lokalen Entwicklung:
- Lokaler Netlify Image CDN Server
- Lokaler Netlify Blobs Server
- Support für Redirects, Rewrites und Headers
- Netlify Edge Context Zugriff
Environment Variables überarbeitet (5.12 + 5.13)
Zwei experimentelle Flags verbessern das Handling von Umgebungsvariablen: rawEnvValues (5.12) deaktiviert Astros automatische Typ-Konvertierung. Das experimentelle staticEnv (5.13) geht weiter – import.meta.env wird nicht mehr durch process.env-Calls ersetzt. Beide Features alignen Astro mit Vites Verhalten.
Astro 5.13: DevTools Workspace und Multiple Sitemaps
Chrome DevTools Workspace (experimentell)
Code-Änderungen direkt aus den Browser DevTools zurück in die Projektdateien speichern. CSS-Anpassungen synchronisieren automatisch.
Multiple Sitemaps
Die Sitemap-Integration erlaubt jetzt externe Sitemaps über customSitemaps einzubinden – nützlich für Multi-Framework-Setups.
Enum-Support in Astro DB
Text-Spalten in Astro DB unterstützen jetzt Enum-Werte mit korrekten TypeScript-Typen.
Astro 5.14: Routing Tools und React 19 Actions
Route Collision Warnings
Astro warnt jetzt, wenn mehrere dynamische Routen denselben Pfad rendern. Das experimentelle Flag failOnPrerenderConflict lässt den Build bei Konflikten fehlschlagen.
Route Patterns in getStaticPaths
Die neue routePattern-Property gibt Zugriff auf die ursprüngliche dynamische Segment-Definition.
Async Svelte Rendering
Svelte 5.36-Kompatibilität: Server-gerenderte Komponenten können jetzt await-Expressions direkt im Markup nutzen.
React 19 Actions Integration
Die stabilen Funktionen getActionState() und withState() integrieren mit Reacts useActionState() Hook für progressiv erweiterte Formulare.
Non-Node.js libSQL für Astro DB
Der neue web-Driver ermöglicht Astro DB in web-basierten Runtimes wie Cloudflare Workers.
SvgComponent Type
Ein neuer Built-in-Typ für SVG-Komponenten aus astro/types.
Astro 5.15: Skew Protection und Font-Preloading
Netlify Skew Protection
Automatische Synchronisierung von Client- und Server-Versionen während Deployments. Das System erkennt Version-Mismatches und handelt sie.
Neue Adapter APIs
Die AstroAdapter-Schnittstelle bekommt eine client-Konfiguration:
- internalFetchHeaders: Custom Headers für Actions, View Transitions, Server Islands
- assetQueryParams: Query-Parameter automatisch an Asset-URLs anhängen
Granulares Font-Preloading
Die experimentelle Fonts API erlaubt selektives Preloading nach Weight, Style und Subset.
Weitere Verbesserungen
- Error Overlay: Copy-Button für Stack Traces
- Cloudflare Scaffolding:
astro addgeneriert automatischwrangler.jsonc - Node.js 18 Deprecation im Vercel-Adapter
Astro 5.16: SVG-Optimierung und AI Agent Support
SVG-Optimierung mit SVGO (experimentell)
Automatische SVG-Optimierung während des Builds mit konfigurierbaren SVGO-Plugin-Einstellungen:
// astro.config.mjs
export default defineConfig({
experimental: {
svg: true
}
});
Interactive Shortcuts für astro preview
Keyboard-Shortcuts im Preview-Modus: o + Enter öffnet im Browser, q + Enter beendet.
Besserer AI Agent Support
astro add --yes überspringt interaktive Prompts – ideal für Coding-Assistenten und Automation-Tools.
ActionInputSchema Utility Type
Ein neuer TypeScript-Utility-Typ extrahiert Input-Schemas aus Action-Definitionen.
Netlify Adapter Optimierung
82 MB weniger Dependencies durch eliminierte 310 transitive Abhängigkeiten.
Upgrade-Empfehlung
Für alle Versionen gilt:
# Empfohlene Methode
npx @astrojs/upgrade
# Oder manuell
npm install astro@latest
Experimentelle Features sind noch nicht für Produktion empfohlen – die API kann sich ändern. Die offizielle Dokumentation hat die aktuellen Details.
Einordnung
Die Astro-Entwicklung seit 5.9 zeigt klare Schwerpunkte:
- Security: CSP-Support wird kontinuierlich ausgebaut
- Developer Experience: DevTools Workspace, CLI-Shortcuts, AI Agent Support
- Adapter-Ecosystem: Netlify, Vercel und Cloudflare bekommen stetig neue Features
- Performance: Responsive Images stabil, SVG-Optimierung, Streaming-Kontrolle
Besonders die Live Content Collections (5.10) und der erweiterte CSP-Support verdienen Aufmerksamkeit für Projekte, die 2025 auf Astro setzen.