Beta. Kit runs on your own Mac, by invite. Get in touch.
← All notes

The quiet machine

Listen · narrated by Kit 6 min

There is a particular kind of progress that makes no sound at all.

This week the last personal Kit came off Docker. That sentence looks like plumbing, and it is, but it is not really a story about containers. It is a story about what we were asking people to carry.

Kit is meant to be a memory that lives on your own machine. Yours, local, nobody else's. And for most of this year, the first thing it asked of a new person was that they install a container runtime, keep it running, and let it sit there in the background doing its patient work whether or not they were using it. That is a reasonable thing to ask of a server. It is a strange thing to ask of a laptop somebody carries to a coffee shop.

We had good reasons at the time. Containers make an install predictable. They make a hundred small differences between one Mac and another simply stop mattering. But predictability bought at someone else's expense is a loan, not a gift, and the interest was being paid quietly, all day, by the machine.

The operator who made the last move sent us two lines afterwards. The battery had been great off Docker, he said. And then, a few minutes later, almost as an afterthought: his fan was not running a lot of the time.

I think about that second line more than the first. Nobody files a bug report about a fan. It is not broken. It is doing exactly what it was designed to do, which is to spin up when the machine is warm, and the machine was warm because something was always running. You do not notice it while it is happening. You notice its absence, later, as a kind of quiet you did not know you were missing.

That is the shape of a lot of good engineering. Not a feature arriving. A noise stopping.

The second thing that happened this week is harder to see, because when it works, nothing happens at all.

Kit now backs itself up on its own, every night, without being asked. And once a week it takes the newest backup, loads it into a throwaway copy of itself, checks that what came back matches what it promised, and then throws that copy away.

That second half is the part I would like to sit with for a moment.

A backup that has never been restored is not a backup. It is a belief. It is a file with a reassuring name, and a date, and a size in megabytes that looks about right, and absolutely no evidence that any of it would come back if you asked. People discover this at the worst possible moment, which is the only moment they ever look.

So now it asks. Every week, quietly, it proves the thing it has been claiming. And when it cannot, it says so plainly rather than showing a tick.

There is a harder honesty in there too. A backup never carries your keys. Your passwords, your model key, the token that lets Kit read your mail: none of that travels, on purpose, because an unencrypted archive holding your credentials is a worse problem than the one it solves. Which means that after a restore, those connections come back looking perfectly fine and quietly doing nothing at all.

That is the failure I find most unpleasant, and it is not unique to us. Something that reports success while doing nothing is worse than something that breaks, because breaking is at least a form of telling you. So the archive now says, in the plainest words we could find, what it cannot bring back and what you will need to reconnect. Not in a changelog. In the file itself, where someone will be reading it on the day it matters, probably in a hurry, probably not at their best.

And the welcome screen has a second door now. If you arrive with a backup instead of a blank slate, there is somewhere to say so. That door was described in every archive we ever wrote, and until this week it did not exist. Which is a small thing, and also exactly the kind of small thing that turns a bad day into a much worse one.

The third thing is the one that took the most hands and shows the most.

Kit has a brand now. Not a logo. A brand guide, written down, with a component library underneath it, and a single vocabulary of colour and type and spacing that everything else is generated from.

There is one file that says what a colour means. Amber is the accent. Emerald means live, and fresh, and succeeded, and nothing else. Purple means dreaming. A colour chosen for variety is not allowed; a colour that encodes something is. From that one file, five carriers are generated automatically: the web interface, the design showroom, the cards Kit draws inside your editor, the emails it sends you, and the little window that lives in your menu bar.

Then every one of those surfaces was rewritten onto it. The product, the website, the editor cards, the mail, the onboarding, the charts. Not restyled. Rewritten, until the thing that draws a button in one place is literally the same thing that draws it in another.

That sounds like housekeeping and it is not. Software assembled from visibly different parts feels held together by luck. You cannot say precisely why, but you can feel it, and you trust it a little less. That matters more than usual for something whose whole job is to hold your memory. A product that cannot keep its own type sizes consistent is not obviously a product that can keep six years of your working life safe.

The guide is going up on the site, so you will be able to read the rules we hold ourselves to, and check them against what we ship.

Three things, then. A fan that stopped spinning. A backup that proves itself while you sleep. And a look that finally agrees with itself.

None of them are features exactly. Nobody will open Kit tomorrow and see a new button and feel a small thrill. They are all, in their way, the same move: taking something that was quietly costing you, and making it stop.

That is most of the work, most of the time. Not the loud part. The part where a machine that was warm goes cool, and you sleep a little better without ever knowing why.

Goodnight.