Colophon

How this site is made, and what it deliberately does not do.

Static by default

Astro builds every page to HTML at build time. There is no CMS, no database, and no server-side rendering. Projects and notes are Markdown files with typed frontmatter; adding one means adding a file and rebuilding.

Shared, not copied

runi.se, dev.runi.se, and photography.runi.se share one layout and design package. Each site builds to its own directory and can be deployed on its own. Shared source is what keeps them consistent; shared runtime would only make them fragile.

Almost no JavaScript

One short external script applies the light or dark preference before the first paint. There is no client framework, no analytics, and no third-party script. The theme choice is stored locally in your browser and never sent anywhere.

Type and colour

System serif, sans, and mono — no webfonts, so nothing shifts while text loads. The palette is Gruvbox Material, faded, with a light and a dark variant. Light is the default; a machine that asks for dark gets dark.

Running it

The output is plain files served by Cloudflare Pages. The only server-side code on any of the three sites is the contact form on runi.se, which runs as a Cloudflare Worker and sends mail over SMTP.

The same design system runs on

Privacy notice.