EmDash CMS – Projekt-Bootstrap und Verzeichnislayout
Praktischer Architekturleitfaden für ein neues EmDash-Projekt mit einem Verzeichnislayout, das sauber von Proof-of-Concept bis Produktion skaliert.
Für wen dieser Leitfaden ist
Nutzen Sie ihn, wenn Sie mit einem leeren Repository starten und eine Struktur brauchen, die Folgendes trägt:
- tägliche redaktionelle Content-Änderungen
- Frontend-Iteration ohne CMS-Annahmen zu brechen
- späteren Umzug von lokaler Entwicklung zu Cloudflare
Ziel ist nicht der cleverste Ordnerbaum, sondern langfristig niedrigere Wartungskosten.
Zuerst die Laufzeitentscheidung
Bevor Sie Dateien anlegen: Welche Laufzeit optimieren Sie in den nächsten 30 bis 90 Tagen?
Node.js + SQLitefür schnellstes lokales Onboarding und geringste operative KomplexitätCloudflare Workers + D1 + R2für Produktions-SSR, verwalteten Speicher und engere Integration mit dem EmDash-Plugin-Modell
Wenn Ihr Team noch die Content-Strategie validiert, starten Sie mit Node.js und halten Sie von Tag eins an Cloudflare-taugliche Namen. So vermeiden Sie frühes Plattform-Lock-in und halten Migrationen einfach.
Empfohlenes Basis-Verzeichnislayout
your-emdash-site/
├── src/
│ ├── components/ # Nur wiederverwendbare UI-Bausteine
│ ├── layouts/ # Gemeinsame Page-Shells
│ ├── pages/ # Astro-Routen
│ ├── lib/ # Fachlogik und Integrationen
│ ├── styles/ # Globale und geteilte Style-Tokens
│ └── live.config.ts # Live-Content-Collection-Mapping
├── seed/ # Seed-Daten für Bootstrap/Demo
├── public/ # Statische Assets (Favicons, Bilder)
├── docs/ # Produktdokumentation und redaktioneller Content (MDX)
├── astro.config.mjs
├── package.json
├── tsconfig.json
└── emdash-env.d.ts
Wenn Ihr Projekt bereits utils/ statt lib/ nutzt, behalten Sie das vorerst. Umbenennen Sie erst, wenn klare Ownership-Regeln durchsetzbar sind.
Verzeichnis-Ownership
Die Struktur funktioniert nur mit explizitem Ownership:
src/components: nur Präsentation; keine direkten DB- oder Storage-Aufrufesrc/layouts: gemeinsame Rahmen (Head, Nav, Footer)src/pages: Routen-Komposition und Daten-Verdrahtung fürs Renderingsrc/lib: Geschäftsregeln, Datenadapter, plattformspezifischer Kleberseed: reproduzierbare Basis-Inhalte für neue Umgebungen
So vermeiden Sie die häufigste Drift: Utility-Code wird still zur Fachlogik.
Bootstrap-Pfad ohne Nacharbeit
Für Produktionsprojekte diese Reihenfolge:
- Mit offiziellem Scaffold anlegen
- Ein Template wählen (Blog, Marketing oder Portfolio)
- Generierte Konventionen beibehalten, außer sie kollidieren mit einem klaren Team-Standard
- Pro Schritt nur eine strukturelle Anpassung
Warum die Reihenfolge zählt: Die meisten Launch-Verzögerungen fehlen nicht an Features, sondern entstehen durch frühe strukturelle Abweichungen, die später Docs, Skripte und Onboarding brechen.
Empfohlene Bootstrap-Befehle
# Neues EmDash-CMS-Projekt scaffolden
npm create emdash@latest my-emdash-site
cd my-emdash-site
# Installieren und lokale Entwicklung starten
npm install
npm run dev
Häufige Anti-Patterns
1) Route-first ohne Content-Model
Seitenrouten bauen, bevor Collection- und Taxonomie-Form feststehen, verursacht teure Rewrites.
2) Deployment-Themen in UI-Ordner mischen
Keine deployment-spezifischen Skripte und Config-Helfer unter components oder pages. Plattformbelange gehören in Config-Dateien und src/lib.
3) Unbegrenzte utils-Ordner
Wenn alles in utils landet, bricht Auffindbarkeit zusammen. Benannte Domains in src/lib, z. B. src/lib/content, src/lib/media, src/lib/auth.
Definition of Done für die Ersteinrichtung
Bootstrap gilt erst als abgeschlossen, wenn:
- der lokale Dev-Server ohne manuelles Patchen läuft
- ein Beispiel-Content-Flow Ende-zu-Ende funktioniert
- Seed-Daten in einer frischen Umgebung importierbar sind
- der CI-Build ohne umgebungsspezifische Hacks durchläuft
- ein neuer Mitwirkender das Repo in unter zehn Minuten navigieren kann
Nächste Schritte
Wenn die Struktur steht:
- Laufzeitwahl und Migrationskriterien im Repository dokumentieren
- Namenskonventionen für Content-Typen festlegen, bevor das Volumen wächst
- Deployment-Runbook für die gewählte Plattform umsetzen
Verzeichnisstruktur ist Architektur, kein Kosmetik-Thema. Früh festlegen spart später Wochen.