Software factories

Many work streams. One machine. One set of templates.

A software factory does not run one thing at a time. Several products, several feature branches of each, agents working through the night in their own checkouts — and every one of them needs a real environment, not a mock. Every product, every branch and every agent gets its own production-identical environment on one machine, from one line of configuration.

branches & worktrees slots — one stack, one box stamped from main feat/bookings feat/invoicing one git worktree per branch plugs straight into a slot estate A · one shared stack portalvhost · db · queues · .env main portal-bookingsown vhost · own db · own queues slot portal-invoicingown vhost · own db · own queues slot one container per slot · ingress and data shared estate B · its own ingress, network and DNS same machine · own project · own address nothing shared with estate A the same templates stack.yaml + environment → compose · .env · stack/ same input, byte-identical output, every time
Feature branches become slots on one shared stack; whole estates sit side by side on one box; the same templates stamp all of it.
  • Several estates on one machine. An estate is one product’s complete stack. Each has its own compose project, its own ingress on its own loopback address, its own network and its own DNS names. Two estates route independently; they share the box and nothing else.

  • Several branches of one estate at once. A slot is a feature branch running beside main on the same stack: its own hostname, its own database and queue names on the shared servers, its own environment, for one extra container. A slot is a checkout with a suffix, so a git worktree per branch plugs straight in.

  • Stamped, not assembled. A new estate, context or slot is a line of configuration, not a day of infrastructure. Same input, byte-identical environment, every time — the property that makes many streams safe.

  • Proven at library scale. Before the service library was listed, the whole of it was rendered into one compose file, validated and booted together: 104 services side by side on one machine.

What this unlocks

Continuous autonomous development: agents working in their own worktrees, each with a real environment that renders the same way the production one does, human gates in front of anything that merges. The pieces that ship today are the slots, the estates and the stamping. Automatic environments per branch, and a fresh machine per merge request, are the direction they point in, designed together with Substrate. Microcelium’s Dark Software Factory page tells that story.

Request a walk-through

micro‑glue is part of the Microcelium tooling that builds your application, and what it builds is yours to keep. If you run several products on machines you own and want them built the same way every time, that is the conversation.