Der Stack hinter vaskys.de
Statt einer Liste austauschbarer Tools — die sieben Schichten, aus denen diese Seite entsteht: von Domain und DNS über die Edge bis zur selbstheilenden Content-Pipeline, die alle 48 Stunden einen neuen Post vorschlägt.
- 7 Schichten
- Edge-first
- Free-Tier-Betrieb
- Stand · Juni 2026
- Schicht 1 · Domain & DNS
Registrar + autoritative Nameserver
Die Eintrittstür: Domain registriert, Nameserver delegiert, Mail-Records (SPF, DKIM, DMARC, rDNS) sauber gesetzt.
- Eigene Domain bei einem Registrar mit ordentlichem API-Support
- Autoritative DNS getrennt vom Registrar — kein Vendor-Lock-in
- CAA-Record für TLS-Issuer-Pinning
- SPF + DKIM + DMARC vor Public-Deploy, sonst geht jede Mail ins Spam
Warum: Tagesjob: DNS-Diagnose und Domain-Lifecycle. Wer hier schludert, debugged später Propagation-Geister.
Resolver-Kette - Schicht 2 · Edge
Cloudflare Pages + Workers + KV + Turnstile
Auslieferung, Caching, kleine APIs an der Edge — eine globale Vorderkante ohne eigenen Server.
- Cloudflare Pages für Static-Hosting (Astro-Build aus dist/)
- Pages Functions als Server-Endpunkte (functions/api/*.ts)
- KV-Namespaces für View-Counter, GitHub-Cache, Rate-Limit
- Turnstile statt reCAPTCHA — cookieless, DSGVO-freundlich
Warum: Cold-Start nahe null, geografisch global, kostet im Hobby-Volumen praktisch nichts.
Edge-Runtime - Schicht 3 · Persistenz
Supabase Postgres (EU/Frankfurt)
Eine kleine Postgres-Datenbank in der EU-Region — ausschließlich für das Infrastruktur-Status-Monitoring dieser Seite.
- Frankfurt-Region (eu-central-1) — Datenstandort innerhalb der EU
- Genau eine Tabelle: status_targets — überwachte Endpoints
- Ein Cron-Worker pingt die Ziele alle 6 Stunden
- PostgREST über direkte HTTPS-Requests — kein SDK, edge-kompatibel
Warum: Edge-KV deckt den heißen Pfad ab. Postgres kommt nur dort dazu, wo ich eine echte Tabelle mit Verlauf brauche.
EU-Region · Frankfurt - Schicht 4 · Build & Frontend
Astro 6 (Static-First) + React-Islands + Tailwind 4
HTML-Output by default, JavaScript nur wo wirklich nötig.
- Astro `output: static` — kein SSR, kein Cold-Start
- MDX-Content-Collection für den Blog — Posts als Text-Dateien
- React nur in Inseln mit Interaktivität (Kontaktformular, Status-Dashboard)
- Self-hosted Fonts via @fontsource — keine Google-CDN-Anfrage
Warum: Lighthouse-grün ohne Tricks. Größtenteils statisches HTML, das jeder Cache versteht.
Static-Build - Schicht 5 · Continuous Deploy
Git → Pages, Preview-URLs, sauberes Rollback
Jeder Push erzeugt eine Preview-URL, Production gated auf Tests + Lighthouse. Rollback per `wrangler pages deploy <sha>`.
- Git-Repo auf GitHub als Single-Source-of-Truth
- Cloudflare Pages als Production-Target
- Pre-Commit-Hook gated `astro check` + `astro build` + lint:fonts
- Migrations append-only — Datenbank-Änderungen reproduzierbar
Warum: Skalierbar von Tag eins. Wenn die Seite viral geht, übernimmt das CDN — kein eigener Server, kein 3-Uhr-Anruf.
Git → CDN - Schicht 6 · AI-augmented Dev
Claude Code + ECC + Skills + MCP
Coding-Assistent mit Kontext, Memory und Regeln — kein blindes LLM mehr.
- Claude Code als Basis-Agent (CLI + IDE)
- ECC (Everything Claude Code) für Hooks, Cost-Tracking, Continuous-Learning
- MCP-Server: Live-Docs (context7), ein Code-Graph des Repos und Browser-UI-Verifikation
- Persistentes Memory unter ~/.claude/ — Regeln und Entscheidungen überleben jede Session
Warum: Ein zweites Paar fokussierter Augen, das meine Regeln kennt, das Repo als Graph sieht und sich erinnert, was wir letzte Woche entschieden haben.
Kontext-Schleife - Schicht 7 · AI Content Pipeline
Autonomer Blog-Bot — alle 48 h ein DE+EN-Post, hinter einem Review-Gate
Ein Cron triggert eine mehrstufige Pipeline: Trending-Discovery, fundierte Recherche, Entwurf, Kritik, Humanize und Header-Bild — und legt den Post als Entwurf zur Freigabe ab, statt ihn blind live zu schieben.
- Selbstheilende Modell-Leiter: stärkstes freies LLM zuerst, Failover pro Modell über vier Provider (Cerebras, Gemini, Groq, Cloudflare)
- Tote oder quota-leere Modelle fallen automatisch raus — ein 429 überspringt ein Modell, nicht den ganzen Anbieter
- Recherche mit Grounding (Tavily + Hacker News fürs Thema, Gemini-Websuche für die Tiefe) — jeder Post mit Quellen-Sektion
- Quality-Gates schneiden erfundene Pakete, Studien und CLI-Flags raus, bevor etwas committed wird (fail-closed)
- Review-Gate: neuer Post → Entwurf + GitHub-Issue per Mail → ich antworte ACK / NACK / EDIT, sonst 24 h Auto-Publish
- Header-Bild via Cloudflare Workers AI (Stable Diffusion XL, natives 16:9), WebP-Konversion, Auto-Deploy
Warum: Qualität über Tempo — und nichts blamiert sich: erfundene Fakten werden geblockt, kein neuer Post geht ohne meinen Daumen (oder 24 h Karenz) live. Alle Prompts liegen in prompts/*.md, Voice-Tuning ohne Code-Änderung.
Selbstheilende Leiter