How this site works
How this site works
This site is a small work sample in its own right. A few of the decisions behind it:
- Static by default
- Built with Astro and served as static HTML — no client framework runtime, so the largest content paint is just text and CSS. The three interactive parts (menu, lightbox, contact form) are tiny progressive-enhancement modules.
- Bilingual from the ground up
- English and Norwegian are equal citizens: a typed slug map is the single source of truth for routes, the language switch and hreflang, so they can never drift apart.
- Motion that confirms, never performs
- One signature animation, everything else is restraint. Every effect has a reduced-motion variant, and content is never gated behind an animation.
- Self-hosted
- Built and deployed from my own Gitea instance to Docker behind Traefik. The contact form is a small stateless .NET service — even that is part of my own stack.
- No tracking
- No analytics beacons, no third-party fonts, no cookies — which is also why there is no cookie banner.