Finished apps,
milled from your data.

Point it at a CSV or a database. 45 seconds later you have a complete app: data model, API, views, permissions, copilot, agents. Not scaffolding. Not a prototype. The app.

claude mcp add millwork https://mcp.millwork.build

Then, in your session:

@millwork build an app from data.csv

One MCP server. Works in Claude Code, Codex, Claude Cowork, Cursor, and any MCP client. Sign in with OAuth, no API keys.

What goes in and what comes out

in · purchase_orders.csv 4,180 rows · 8 columns
out · the app 45 seconds
  • data model
  • API
  • views
  • permissions
  • copilot
  • agents
  • MCP server
numbers

The numbers first

Because that's why you're here.

Millwork compared with product agents and with writing the app from scratch in Claude Code.
Measure Millwork Product agents (Remy) Claude Code from scratch
Cost per build bars to scale, 0 to $40 $2 to $5 $30 to $40 n/a
Cost per project, idea to deployed, with iteration bars to scale, 0 to $500 $10 to $30 $100 to $500 $150 to $300
Build time 45 seconds average minutes to hours hours
Session context burned a few thousand tokens full generation 200,000+ tokens
Output complete app, 5 to 6 views, full data model full-stack app whatever survived the session

At 300 to 1,000 apps a year, that difference is 7 figures. The apps become cheap enough to throw away, which changes what you build them for.

mechanism

Why it's that cheap

Millwork doesn't ask a model to write your app. It asks a model to write a contract, then a deterministic compiler builds the app from it.

  1. 1

    The contract

    An LLM authors a JSON contract in 5 stages: data models, API endpoints, UI, copilot, agents. This is the only place a model touches your build.

  2. 2

    The snap

    Models make things up. A deterministic validator snaps missing pieces into place before anything gets built.

  3. 3

    The mill

    A compiler reads the contract and assembles the app step by step. Same contract in, same app out. Every time.

  4. 4

    The inspection

    80+ deterministic validators check the output. A final model pass reviews for logical errors, not syntax, because there are no syntax errors to find.

The model supplies judgment. The compiler supplies the code. That's why a whole app costs less than your coffee, and why 2 builds from the same data don't drift apart.

output

What comes out

Every build ships complete:

reference build
120
files
18,600
lines
20
data models
31
API route modules
8
views
~6 min
build time

From 1 dataset. It's live. See it.

ownership

No lock-in, on purpose

The output is plain Express, MongoDB, Alpine, and Tailwind. No framework of ours, no runtime dependency, no build step.

Ask for the code and you get the code:

@millwork pull the code for this app

Read it, edit it, keep it. If you leave, everything you built leaves with you. We'd rather be the fastest way to make the next app than the reason you can't leave.

safety

Safe by construction

These apps touch real business data, and some of them face your customers, so the parts that matter are deterministic.

  • generation is compiled, not improvised, so output is reproducible and reviewable
  • 80+ validators run on every build, before you ever see it
  • the contract is a readable JSON file, diff it like any artifact
  • agents operate draft-and-approve inside app permissions, nothing acts silently
  • enterprise deployments can run fully airgapped, model included

No demos that work once. No prompts that drift. A build you can audit is a build you can allow.

start

Start milling

claude mcp add millwork https://mcp.millwork.build

Connect, sign in with OAuth, hand it your data. No card. Keep what you make.

Connect Millwork

questions

FAQ

What kind of apps can I build?
Business apps: anything with a data model behind it. Ops tools, trackers, admin consoles, customer portals, catalogs. One app can serve your team and your customers at the same time, and role-based permissions decide who sees what. Internal tools are where the pain is most obvious, not where the ceiling is.
Is this a vibe coding tool?
No. Vibe coding tools improvise code from prompts and hand you scaffolding to finish. Millwork compiles complete apps from your data. The model never writes your code.
Why start from data instead of a prompt?
Describing an app is hard. Your data already describes it. Millwork reads the schema and builds what the data demands, so there's nothing to articulate at prompt 0.
Can I use my own model?
The compiler is model-agnostic by design. The contract-authoring step runs on frontier models today; a purpose-built small model is in development with NVIDIA Inception.
Who's behind this?
Millwork is built by Gainable, Inc.