A blog again

This is the first post on starostka.io. I will write here about research infrastructure: the machines, the Nix that declares them, and the things that break between the two.

How it is built

The site is a SvelteKit app that renders every page at build time. Each post is a Markdown file named by its date, so this one is posts/2026-11-03-hello.md. Nix builds the site into an OCI image, and the image runs on a small Kubernetes cluster that is declared in the same repository as every other machine I run.

post posts/*.md site SvelteKit build post->site image OCI image site->image cluster yutani image->cluster

The deployment of the site is one binding:

{
  inventory.instances.blog = {
    service = "blog";
    roles.default.platforms.yutani.settings = { };
  };
}

What it measures

There is no analytics script on these pages. The readership page shows where posts were shared instead, from the public Hacker News, Lobsters and Reddit listings.1

The feed is at /feed.xml.


  1. The blog server fetches those listings once an hour.↩

↑↓ move Enter open Esc close

Keys

/ CtrlK
Open the launcher
gh
Home
gw
Writing
gr
Readership
gm
Mission
gv
Values
t
Toggle light and dark
gf
Atom feed
gs
Sign in
j k
Older and newer post, on a post
?
This list
Esc
Close

Single-key shortcuts can be turned off in the launcher. Ctrl K keeps working.