Legally required Impressum for the Einzelunternehmen (Kleinunternehmer,
no VAT ID, not in Handelsregister). Covers § 5 DDG contact data,
§ 18 Abs. 2 MStV responsible person, § 36 VSBG, and liability/copyright
disclaimers. Linked from the footer on every page.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
node:22 ships npm 10, which rejects the npm-11-generated package-lock
("Missing: @emnapi/core"). Upgrade npm to 11 before npm ci.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
npm ci failed on node:22-alpine (musl): Astro 7's rolldown/oxc native
bindings pull @emnapi/core etc. that aren't resolved for musl. Build on
Debian glibc to match the lockfile's linux-x64-gnu deps.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Personal site & blog for jeanlucmakiola.de.
- Astro 7 static output; self-hosted Inter + JetBrains Mono (Fontsource)
- Material 3 Expressive design tokens (red accent over neutral surfaces)
- Home (hero + about + selected work + latest writing)
- /work index + per-app pages (Calendula, Agendula, floret-kit) with
build-time Gitea release tags, brand-icon link rows, features grid,
and an at-a-glance facts panel
- Blog via Markdown content collection; RSS, sitemap, robots, OG/SEO
- Privacy-respecting Umami analytics, env-gated (off in dev)
- Dockerfile (build -> Caddy) + Caddyfile for Coolify deploy
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>