flove blog

Git, agents, and the long way here

Every workshop needs a wall to hang things on. For a long time flove built its walls out of trust in other people’s platforms — code in someone’s cloud, notes in someone’s app, publishing through someone else’s pipeline. The internet taught us that works until it doesn’t. This post is the story of flove growing its own walls: a little server that keeps the work, and a pair of hands — one human, one machine — that have been learning to build together on the other side of them.

It’s also the story of how this blog got its new shelves. Pull up a chair.

A place that’s ours

On 7 May 2026 the first line of flove landed in a repository. From that day the working rule has been stubbornly simple: everything lives here, in git, versioned and owned, before it ever goes anywhere. For a few weeks “here” meant a folder on a laptop. Then, on 24 May, flove got a place of its own — a self-hosted Gitea server, running in Docker on a machine in the same house that builds flove. No third party in the middle of the work; the wall is ours.

That wall holds one thing above all: flove — the site itself, more than 1,400 commits since that first day, and the drawer every other shelf grows out of.

Public work flows out to flove.org through GitHub Pages; private work stays behind the wall. That split — source private, outcome public — is the quiet backbone of everything flove has shipped.

Three tiers, one flove

The site that grew on that wall isn’t one thing. It’s three tiers stacked on top of each other, each with its own job and its own front door, and knowing which is which tells you more about flove than any single app could.

Two pairs of hands

Almost none of those 1,400 commits were written by one person alone. flove is built as an intense human + agent pairing — on the order of 330 sessions so far, working side by side with a robot that has been learning flove’s grammar as fast as Marc writes it.

The trick that made this scale wasn’t the agent. It was the skills: small, reproducible instruction files that tell the agent how flove wants things done — the standards, the frontend contract, the blogy voice, the publish pipeline. Skills turned “an assistant who guesses” into “a colleague who has read the manual”. They live, versioned, in their own repo behind the wall, and they are as much a product of flove as any app.

A pipeline with a front door

What ships is what the wall lets out. The flow is boring on purpose:

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

Drafts and private decisions never leave the wall until they’re meant to. The blog’s build script, the service worker that makes the site work offline, the “go local” package — all of it hangs off that one boring flow. You can read the whole plumbing in the Infrastructure category.

By the numbers

As of this post: 1,433 commits on the main line, from 7 May to today; three tierssolo, central, and decentral — holding roughly 80 single-file apps on the apps shelf; 330+ agent sessions; and one rule that never bent — relate, don’t extract.

The blog grows five shelves

And now, the part you’re standing in. When this blog started it had three shelves — Main, Tech, Theory. flove has outgrown that tidy trio, so the blog has been re-shelved into five, each with its own door in the top bar:

Each shelf has an opening post of its own, telling you what’s on it, how it got there, and where it’s heading. This one is the front door.

So that’s the long way here: a wall that’s ours, a pair of hands learning to build together, and a blog finally big enough to say where things live. If you’ve read this far, you’re exactly the kind of person flove is for — come poke around, break something, and tell us what you’d relate differently. We’ll be right here, going slow on purpose.

slow it · flow it · love it.

← all posts