flove blog

Infrastructure — how flove ships

Nobody talks about plumbing until it leaks. That’s the compliment flove pays its infrastructure: it’s the least poetic part of the project, and the one everything else stands on. This shelf is where the plumbing gets explained — how flove runs, how it gets published, and what keeps it from falling over when the network drops.

What’s on it

At the center is a self-hosted Gitea server, running in Docker on a machine in the same house that builds flove, holding eight repositories. It’s the wall of the workshop: private source lives behind it, and only what’s meant to be public walks out.

Out the front door runs a deliberately boring pipeline:

folders → Gitea (private source) → GitHub (public mirror) → flove.org.

Around that spine, the details that make it feel effortless:

How it got here

flove started the ordinary way: folders, then a public GitHub page. The turn came in May when the wall went up — Gitea moved into the workshop so the source could stop depending on anyone else’s goodwill. The publish scripts, the service worker, the PWA manifest, the downloadable package — each one was bolted on as a pain appeared, until the plumbing reached the point of boring reliability. The blog itself is part of that same wall: its source lives privately and only the finished pages are let out.

What’s ahead

Infrastructure is the least exciting shelf in the shop, and that’s exactly the point. When the plumbing works, the interesting stuff — the apps, the notes, the standards — gets to be interesting in peace.

slow it · flow it · love it.

← all posts