- Problem
- Ein Lebenslauf als PDF zeigt nicht, was ich technisch kann. Ich wollte eine Seite, die selbst der Beweis ist: schnell, sicher und barrierearm.
- Lösung
- Statisches HTML, CSS und JavaScript ohne Framework. Three.js für das Partikelnetz, GSAP und ScrollTrigger für Animationen, Lenis für Smooth Scroll. Alle Bibliotheken und Fonts lokal, strikte Content-Security-Policy ohne unsafe-inline, Rücksicht auf reduzierte Bewegung.
- Security
- CSP ohne unsafe-inline (default-src 'none'), SRI-geprüfte Vendor-Dateien. Der Container ist nur intern per HTTP erreichbar, TLS am Reverse Proxy. .php, .env und .git liefern 404, POST liefert 405. Automatisierter Smoke-Test ohne Fehler.
- Architektur-Entscheidungen
- Security-Header kommen ausschließlich aus dem Container, damit nichts doppelt gesetzt wird. HSTS wird gestuft eingeführt, damit ein Fehler mich nicht aussperrt. Das Container-Image ist per Digest gepinnt und läuft als Nicht-Root-User. Releases liegen in eigenen Ordnern mit Rollback über einen Symlink.
- Tech-Stack
- HTML, CSS, JavaScript (ES-Module), Three.js, GSAP, ScrollTrigger, Lenis