Welcome

This is what a long career in programming is allowing me to do.

Most applications are built with ordinary code — one instruction after another, with the logic of what happens next scattered through the program. This traditional style is called imperative. I have built StateAtlas, an application development framework based on Hierarchical State Machines, which is declarative: instead of writing the control flow, you make a map of it. The application is always in a known State, and it Transitions to the next State when an Event arrives. The map decides what is allowed. The code does not get a vote.

State machines run the things we trust most — cars, aircraft, spacecraft, nuclear power plants, medical equipment. They are rare in most software because they have been hard to build and harder to maintain. I am making that approach practical for regular desktop, phone, and web applications, and for microcontrollers. Because the behavior lives in the map rather than the code, an application moves between desktop, phone, and web without being rewritten — those differ only in the outermost layers. The map underneath does not change.

AI agents write the maps. I did not build this for AI, but it has turned out to suit it unusually well. A state map is structured data with a fixed shape — states, events, guards, transitions — which is both what a language model is good at producing and what a machine can check. The framework’s linter rejects malformed maps, and its gates refuse to export an application whose logic has leaked out of the map and into the code. The agent is told, mechanically and immediately, when it has strayed. I believe AI agents produce better applications in this environment than in conventional imperative code.

I am still building applications with StateAtlas, which is how it matures. If you are a developer and this interests you, I would like to hear from you — I will need beta testers before long.


Recent posts

All posts →