Field Note

Bitpurity was always about the code

Clean code matters because someone has to understand, change, and support it. AI makes producing code faster; it does not remove the cost of owning the result.

Aaron Hutten as a child seated at a computer
Before Bitpurity had a name.

About twenty years ago, I bought a domain for an idea I could not quite stop thinking about. Bitpurity. Beautiful, clean code. Code that mattered like art.

That is where the name came from. It was never a platform category or a carefully researched personal brand.

I was self-taught. View Source was a classroom. I printed HTML, read it, changed things, and tried to understand what the browser would do before I asked it.

I used to see how many lines I could write while visualizing the result before hitting refresh. Could I get to a hundred? This was before my everyday workflow had the libraries and inspectors I take for granted now.

Very Barney Rubble. Also a pretty good way to learn what you were actually making.

The browser was a very honest reviewer

You had an idea in your head. You wrote the code. Then the page either matched that idea or it did something else.

The gap was yours to understand.

I am not nostalgic for doing everything the hard way. Better tools are better tools. I do miss how difficult it was to confuse producing code with understanding it. When you had to work through the structure yourself, you developed some feel for where the behavior lived.

That feel is useful long after the syntax changes. You notice when a small request somehow requires touching half the system. You get suspicious when three things own the same state. You know the neat-looking helper may be hiding more than it simplifies.

None of that requires typing every line by hand. It does require paying attention to the thing you are building.

Why does clean code still matter with AI?

Clean code makes it easier to find a behavior, understand its constraints, change it, and verify that the rest of the system still works. AI-assisted development changes how code is produced. Those maintenance jobs remain.

Martin Fowler’s argument about internal software quality is useful here: understandable structure reduces the work required for future changes. The value is not limited to how the source looks today.

I can use AI to get a plausible implementation quickly. I still need to know whether the capability already exists, whether the new state belongs there, and whether the abstraction is worth carrying.

A generated solution can satisfy the immediate request while creating another place to maintain the same business rule. The page works. The duplication is now somebody’s job.

That is what bothers me more than messy formatting.

Clean does not mean clever

I am not interested in making code elegant enough to win an argument on the internet.

Give me names that mean something. Let me follow a request without opening fifteen files that mostly delegate to one another. Put a business rule somewhere its owner can find it. Keep the test close enough to the behavior that a failure tells me something useful.

Sometimes that means adding a boundary. Sometimes it means deleting an abstraction.

A hypothetical example: two screens format a price. Sharing the formatting can be sensible. Creating a configurable pricing framework because those screens might someday support six unrelated business models is a different commitment. Now somebody has to understand the framework before changing the label.

I wrote more about that in every abstraction sends a bill. The bill includes the time it takes the next person to work out why the thing exists.

AI is quite capable of producing the framework if you ask for it. Deciding whether to ask is still your job.

Keep the useful knowledge outside the chat

Building Après Studio with AI has given the old Bitpurity idea a very current place to live. It is a commerce demo and an experiment, not evidence that generating a storefront settles the production work.

The useful question is what remains after the generation session ends.

Can another person find the business rules? Can they run the checks? Are the constraints documented where a future contributor will look? Can they tell which parts are deliberate and which parts are unfinished?

Repository guidance helps. So do examples, focused tests, and a short explanation of the decision that otherwise looks wrong. A transcript may contain that knowledge, but asking every future contributor to reconstruct it is a poor handoff.

Production is the test because the system eventually has to work outside the context that created it.

The name still fits

I do not want to go back to slower tools. I want to keep the part of the old work that made me care what I was putting into the world.

The speed is useful. So is the freedom to try an idea without assembling a whole project around it. But finishing still includes reading what was made, challenging the extra machinery, and removing things that should not survive the experiment.

Bitpurity was always about that feeling: the code makes sense, the behavior is intentional, and another human can take it from here.

Then hit refresh.

Field Notes

More Field Notes.