Commit Graph

4 Commits

Author SHA1 Message Date
cesnimda 2184a1892f feat: content layer — zod schemas, validated bilingual data, locale view models
- schema.ts: zod schemas per DATA_MODEL (profile, projects, experience, skills, meta)
- nested {en,no} model: invariant facts once, prose twice; validated at build
- content: profile, skills, experience (with apprentice->developer progression),
  JobTrack + InboxIntel case studies with data-driven arch diagrams, homelab capability page
- per-page SEO meta (EN/NO)
- content.ts: locale-resolved view models; CV PDFs wired
- deviation from literal Astro-collections logged in PROJECT_STATUS with rationale

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 01:05:21 +02:00
cesnimda 63db8bf254 feat: i18n layer — locales, slug-map contract, typed dictionaries
- locales.ts: locale codes, html lang, hreflang, OG locale
- slugMap.ts: EN/NO route table + section anchors, twin-path resolver (the tested contract)
- typed EN/NO dictionaries implementing one interface (missing key = compile error)
- useDict accessor + interpolate helper; no runtime i18n library

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:54:02 +02:00
cesnimda 9a75f73550 chore: temporary smoke-test home page (replaced in pages milestone)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:51:16 +02:00
cesnimda ff27b918ae chore: scaffold Astro 5 project with token/style layer
- Astro 5 static config (trailing-slash canonical, i18n en-root/no-prefixed)
- Tailwind 4 over CSS custom-property tokens (both themes via [data-theme])
- design tokens: colour/spacing/type/radius/motion per Phase 1 specs
- motion layer with reduced-motion overrides
- strict TypeScript, ESLint flat config, Prettier
- self-hosted variable fonts (Space Grotesk / Inter / JetBrains Mono)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 00:51:15 +02:00