Lucas WintherandClaude Opus 5.5 974b3eb0df feat(work): CV-first work page, six proud projects, record and courses (spec 009)
- CV header with highlights and keeping-up summary replaces the intro and Now strip
- "Projects I'm proudest of": up to six featured panels; screenshots muted until hover
- "Also made" list; searching it also lists matching courses
- Record section: recognition & volunteering, courses by topic
- /work/learning/: searchable course list (plain script), in the sitemap
- Top bar: Projects, Record, Writing, CV; no Bluesky link in the work footer
- Highlights: only the placement takes the accent (owner, after the preview)

Owner looked at the rendered preview on 2026-11-12 before this commit.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-12 10:44:46 +01:00

portfolio-next

The next version of lucaswinther.info: a two-gate personal site (work / off the clock), rendered by Astro with small React islands. Behaviour: docs/specs/001-site.md; content format: docs/CONTENT-CONTRACT.md. The real content lives in the separate portfolio-next-content repo; this repo holds only synthetic fixtures.

Run locally

Needs Bun 1.3.

bun install --frozen-lockfile
SOURCES_FIXTURES=fixtures/sources bun src/cli.ts build fixtures/content .tmp/site
bun src/cli.ts preview .tmp/site          # http://localhost:4321/

SOURCES_FIXTURES uses canned Ghost/Trakt/Hardcover data, so nothing needs configuring. Check content with bun src/cli.ts validate fixtures/content. Tests: bun test and bunx playwright test. The container: docker build -t portfolio-next:local . && scripts/smoke-test.sh portfolio-next:local.

Deploying it for real: docs/DEPLOY.md (example compose and Ansible playbook in deploy/).

Working on this repo with an AI agent (or as a human)? Start with AGENTS.md.

S
Description
No description provided
Readme
21 MiB
0 Stars 1 Watchers 0 Forks
Languages
HTML 72.3%
TypeScript 17.9%
CSS 4.8%
Astro 4.7%
Shell 0.3%