Diese Website
shellyshale.ch selbst. Statisch gebaut, ausgeliefert wie eine Kundenseite und gleichzeitig Testfeld für neue Komponenten.
- MarkdownEin Projekt, eine Datei; Schema prüft jedes Feld
- AstroBaut reine HTML-Seiten, kein JavaScript-Framework
- Imagenginx, unprivilegiert, Port 8080
- ClusterGleiche Vorlage wie jede Kundenseite
Warum so
Die Seite läuft absichtlich über dieselbe Strecke wie die Websites, die Kavent für kleine Betriebe baut: gleiches Dockerfile, gleiche nginx-Konfiguration, gleiche Pipeline, gleicher Cluster. Was hier funktioniert, funktioniert dort auch. Und was hier bricht, bricht bei mir und nicht bei einem Kunden.
Aufbau
- Inhalte liegen als Markdown in
src/content/. Ein Schema legt fest, welche Felder ein Projekt hat; ein fehlender Status oder eine unbekannte Kategorie hält den Build an. - Design-Tokens in einer einzigen Datei: Farben, Abstände, Schriften, Radien. Komponenten verwenden nur Variablen.
- Kein Client-JavaScript ausser dem Filter auf der Projektseite, und auch der ist nur eine Ergänzung: Ohne JavaScript sind einfach alle Projekte sichtbar.
- Schriften liegen auf dem eigenen Server, keine Anfrage an Google oder andere Dritte.
// src/lib/status.ts – vier Zustände, die Farbe ist nur Zusatz
export const STATUS = {
aktiv: { label: 'Aktiv', stufe: 3 },
entwicklung: { label: 'In Entwicklung', stufe: 2 },
experiment: { label: 'Experiment', stufe: 1 },
archiviert: { label: 'Archiviert', stufe: 0 },
} as const;
Was hier getestet wird
Neue Komponenten kommen zuerst auf diese Seite, aber nur, wenn sie hier einen echten Zweck haben. Was gerade läuft, steht im Lab.