How this site was built
A one-person portfolio drafted, designed, and shipped in hours rather than weeks — together with Claude Code, deployed on the same Linux box that runs my mail and storage. Nothing here is a third-party template; the parts are listed below.
Stack
- Astro 5 — static site generator, Content Collections + MDX for case studies, View Transitions on.
- TypeScript, strict.
- Pagefind for client-side search — index built at deploy time, no backend.
- nginx + Let's Encrypt on the same Linux server (
ss) that runs blog, webmail, and Nextcloud. Node 22 LTS for builds.
Type
- Iosevka (Open Font License) — primary monospace, regular and italic.
- Inter (Open Font License) — long-form body, regular and medium.
- Departure Mono (Open Font License, by Helena Zhang) — display accent only, used sparingly.
All three are self-hosted under /fonts/, Latin-subset, woff2,
font-display: optional. No third-party CDN.
Colour
Dark default #0A0A0A on #EDEDED, with an
amber #FFB000 accent. A Nordic light mode
(#F4F1EB / #111 / #FFB000)
toggles via the header — the site honours prefers-color-scheme
only for the meta theme colour, not for the page itself; the brief
asked for dark-first with a manual switch.
Languages
English-first with a Bokmål mirror at /no/. Norwegian
browsers land on /no/ via an Accept-Language redirect at
the nginx layer; a lang cookie set by the toggle wins
over that default. Every case study and the home page have full
hreflang alternates.
Privacy
No third-party analytics, no marketing cookies, no embedded social
widgets. The only cookie set by this site is the lang
preference. Server-side request logs roll over after fourteen days
and are read for security only.
AI-assisted authoring
Structure, copy, and code were written in collaboration with Claude Code (Anthropic). The operator steers by direction and feedback — not by line-by-line review. So what's published is honestly what the collaboration produced, with corrections made when something is wrong, rather than as a gate before publishing. Spot a factual error? drift@solheimsolutions.no. The footer line "Built with Astro, Claude Code, and a Caddy of opinions" is meant as honest disclosure, not branding.
What isn't here
- Stock photography — every visual is hand-drawn, a real screenshot, or nothing.
- A blog — there's an RSS placeholder, but no posts until there's something worth saying.
- A newsletter or contact form —
mailto:at B2B scale is enough. - Tracking scripts of any kind.
License
Site source lives on a self-hosted Gitea instance — not public. Written content here is CC-BY-4.0. Project case studies, where the underlying code is public, link out to their own repositories.