2026, ai agents

DevFactory, a software factory on my own machine

An idea goes in through a web Studio and a finished, tested and documented project comes out as its own git repository. Claude plans and reviews, local models build ticket by ticket in a Docker sandbox. It has built more than a hundred small sites and tools so far, and 111 of them are public on SiteShelf.

I wanted to know how much of a small project a pipeline could carry on its own if the planning and the building were split between different models. DevFactory is that pipeline, with a web Studio in front of it so I can watch every phase while it runs.

How a run works

  • An idea goes in through the Studio, typed by hand or picked from an Ideas board where Claude suggests batches of buildable ideas from a theme
  • Claude researches the idea, writes a spec and cuts it into tickets
  • Each ticket is built test-first in a Docker sandbox, by a local Ollama model or by Claude, depending on how the ticket is routed
  • Claude reviews the result, and the run ends with a tested, documented repository and a small launch site that embeds the app
  • The Studio keeps a registry of everything it has built and can launch any of them with a button

What it has built

More than a hundred projects so far, mostly ready-to-adopt websites and tools for small businesses: a mortgage calculator, a bakery site with a daily bake board, a café stock count that turns into a reorder sheet, a plumber's quote builder, a music school practice log, and so on. Each one is a Vite, React and TypeScript app that keeps its data in the browser, with no server to run.

Since 6 November 2026, 111 of them (34 websites and 77 tools) are on a public shelf at siteshelf.dev (opens in a new tab), where each can be tried live and downloaded as source.

What the first run taught me

The very first ticket timed out three times on a local 27B model. The model was fine at the work: it had 19 passing tests inside 48 minutes. It then spent the rest of its hour hand-fixing indentation and never committed. The fixes were dull and effective: a formatter in the project template, a rule to commit and stop once the checks pass, smaller tickets for local models, and stopping a timed-out session inside the container rather than only on the host.

Stack

  • TypeScript runner with a SQLite store, and claude -p for the Claude roles
  • Ollama for the local models
  • Docker for the build sandbox
  • Vite and React for the Studio

ai agentsclaude codelocal llmsollamadockerreacttypescript

All work