Draw the
software.

Fabrik is a free, open-source desktop app for designing software before AI writes it. The agents build what you drew, and Fabrik checks it.

Works with Claude Code and Codex

Scroll to watch it build

One drawing, nine modules.

Folio, a system for independent bookshops: what each part does, and the tracks it may use to reach the others.

  • Core module
  • Supporting
  • Generic
  • Outside service

The agents build it.

Every command and query becomes a task. Each module rises from the drawing, ready for its code.

Eight at once.

Up to 8 agents work side by side, each in its own copy of the repository, each with only the part of the blueprint its task needs.

Inside, a contract.

Every module is its public interface, its commands, the rules that must always hold, its events and its data. Its agent gets exactly that, nothing more.

Checked every turn.

A module reaching into another one’s files is caught on the spot, and the agent fixes it before anything is merged.

Be the first to build with it

One email when Fabrik is ready to download for Windows and macOS. Nothing else.

AI writes code fast, and loses the plot just as fast. Fabrik keeps the plot. You draw what the software is: its modules, what each one does, and what it may touch. The agents build exactly that, and every turn the code is checked against your drawing.

Tasks that follow the drawing

Every command and query of the blueprint becomes a task, grouped by module. The agents choose the order from what depends on what, and a reviewer reads every task before it reaches your branch.

Folio’s tasks, grouped by module
agent 1 · collections.jsCMD-10
// src/lib/collections.js, inside BC-03 Catalogueimport { resolveTenantContext } from "../identity/index.js"; export async function createCollection(tenant, input) {  const ctx = await resolveTenantContext(tenant);  const name = input.name.trim();  if (await collections.exists(ctx, name)) {    throw new Refused("a collection with this name exists");  }  const collection = await collections.insert(ctx, { ...input, name });  await emit("CollectionCreated", { id: collection.id });  return collection;}

Held to what you drew

After every turn the code is checked against the drawing: a module reaching into another one’s files, a dependency the map does not allow, two modules that need each other in a circle. The agent fixes it, or proposes a change to the blueprint, and you decide.

Architecture tests on Folio
agent 3 · fixing it1 finding
src/lib/review.js- import { rank } from "./step1/rank.js";+ import { rank } from "./step1/index.js";

Check again: the code follows the blueprint.

No exploring, no guessing

Each task reaches its agent as a capsule, computed from the blueprint: the contract, when it must refuse and the test for each refusal, and the modules it may import from. The agent spends its time writing the code, not finding its way.

capsule · CMD-10.mdwhat agent 1 receives
# Task capsule CMD-10 CreateCollectionModule: BC-03 Catalogue Management Command, sent by ACT-01 Tenant User.Refuses when:- a collection with the same name exists in the tenant- the review threshold is outside 0–100 (INV-05) Emits EVT-01 CollectionCreated. ## Tests to write- "CMD-10 refuses a name already in use"- "CMD-10 refuses a threshold above 100" ## Where to writecodeBoundary: src/lib/collections.js, src/app/actions/collections.jsMay import only from: BC-01 Identity, through its index.

Everything it does, on one sheet.

The agents, at work on Folio

1BC-03
2BC-04
3BC-05
4BC-06
5BC-07
6BC-02
7BC-01
8BC-08

The app

Platform
Windows · macOS
Price
Free
License
Apache-2.0
Runs
On your computer
Your code
Stays in your repository

The agents

In parallel
Up to 8
Through
Claude Code · Codex
Plan
The subscription you have
Each one
Its own copy of the repo
Review
Every task, before merge

Each module

Public interface
The only way in
Commands, queries
One task each
Rules
Each with its test
Events
Named in the contract
Data
Its own

The check

Runs
After every turn
Catches
Reaching into another module
And
Dependencies the map forbids
And
Modules in a circle
Then
The agent fixes it, or you decide
Your plan, your machine.
Fabrik works with the Claude or ChatGPT subscription you already have, through Claude Code and Codex.
You decide what ships.
The assistant proposes changes to the blueprint and waits for you. Development starts when you say so.
Open source.
Apache-2.0. Read the code, build it yourself, or help shape what comes next.