Phase 4: implement full static site (Eleventy, 15 pages, CSS, JS)

This commit is contained in:
Tom Roth
2026-07-31 08:33:06 +02:00
parent ecbd9f94e5
commit 34f7f5a1f5
24 changed files with 5986 additions and 8 deletions

View File

@@ -66,6 +66,25 @@ This file records stable architectural decisions and their rationale. Items here
- Each grouped page must contain enough unique content to serve its target keywords
- Internal linking from the Services hub must cover all sub-topics
## ADR-006 — Static site generator: Eleventy (11ty)
- **Status**: Accepted
- **Context**: The site has 15+ pages sharing a common nav, footer, and layout. Plain HTML would require copy-pasting these into every file, creating a maintenance burden when nav items change.
- **Decision**: Use **Eleventy 2.x** (`@11ty/eleventy`) as the static site generator with **Nunjucks** as the template language.
- **Rationale**:
- Produces pure static HTML files — no runtime dependency
- Nunjucks layout chaining and includes eliminate nav/footer duplication
- Simple data cascade for service pages (frontmatter-driven)
- Well-documented, widely used for exactly this use case
- `npm run build` outputs to `_site/` which Caddy serves directly
- **Alternatives considered**:
- Plain HTML: zero tooling but nav/footer must be duplicated in every file
- Hugo: fast but Go-based; less familiar template syntax
- Astro: more powerful but heavier; overkill for a content/lead-gen site
- **Consequences**:
- Node.js + npm required in the build environment (not at runtime)
- Output: `_site/` directory of static HTML, CSS, JS, and assets
- Caddy should serve from `_site/`
## ADR-005 — No analytics or tracking in v1
- **Status**: Accepted
- **Context**: Stakeholder decided against tracking for simplicity.