2184a1892f6bfc9e27881e068305dbf5fdbd96d9
- 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>
ResumeSite — Connor Babbington portfolio
Bilingual (English / Norwegian Bokmål) portfolio website. Static-first Astro site with a
small self-hosted .NET contact relay, built to the specifications in docs/.
- Design system & UX (Phase 1):
docs/design/ - Architecture & technical spec (Phase 2):
docs/spec/ - Build status:
PROJECT_STATUS.md· Work list:TODO.md
Stack
Astro 5 (static output) · TypeScript (strict) · Tailwind CSS 4 over CSS custom-property tokens · CSS-first motion (no animation library) · built-in i18n + typed dictionaries + content collections · zero client-state libraries · .NET 9 minimal-API contact relay · pnpm / Vitest / Playwright · Docker + nginx, self-hosted.
Quick start (local, without Docker)
cd site
pnpm install
pnpm dev # http://localhost:4321
Quick start (Docker)
# Development (HMR)
docker compose -f deploy/docker-compose.dev.yml up
# Production build preview
docker compose -f deploy/docker-compose.yml up --build
See docs/spec/DOCKER_SPEC.md and
docs/spec/DEPLOYMENT_SPEC.md for the full picture.
Repository layout
site/ Astro project (pages, components, content, i18n, styles, scripts)
relay/ .NET 9 minimal-API contact relay
deploy/ compose files, nginx config, env templates
tests/ Playwright end-to-end tests
docs/ design (Phase 1) + spec (Phase 2)
.gitea/ CI/CD workflows
Commands
| Command | What it does |
|---|---|
pnpm dev |
Astro dev server with HMR |
pnpm build |
Static production build → site/dist/ |
pnpm preview |
Serve the production build locally |
pnpm check |
astro check + tsc --noEmit |
pnpm lint |
ESLint + Prettier check |
pnpm test |
Vitest unit tests |
pnpm test:e2e |
Playwright end-to-end tests |
Description
Languages
TypeScript
53.8%
Astro
29.9%
JavaScript
9.2%
CSS
4.4%
C#
1.9%
Other
0.8%