open source · Apache-2.0

Datamake is a build system for data products

Write the SQL you already know, say what it promises, and ship it as a cell: one self-contained unit that people, apps, and AI agents can query without guessing what it means. No ticket, no platform team, no waiting.

Built on DuckDB Parquet DuckLake

Works with BigQuery Snowflake Postgres

Agents stop guessing

Point an agent at a raw API and it guesses: which column is the real revenue number, whether a date is UTC, what -1 means. Every wrong guess is a confident answer.

A cell hands the agent three things it can't guess:

  • What exists. Every export, its version, and the filters it accepts.
  • What it means. Each column's description and unit, from cell.yaml.
  • Whether it was checked. The last build's verification and measured coverage.

Plug the cell into any MCP client. Nothing to misuse, nothing extra to maintain.

datamk mcp → · GET /context →

{ "cell": "orders", "status": "verified",
  "exports": [{
    "route": "orders_daily@2",
    // what it can ask for
    "grain": ["order_date", "region"],
    // what it means
    "schema": { "revenue": {
      "type": "decimal", "unit": "USD",
      "description": "Gross revenue, before refunds." }},
    // measured on the last build
    "probe": { "rows": 4, "coverage": {
      "order_date": { "min": "2026-06-01",
                     "max": "2026-06-02" }}}
  }],
  "build": { "verify_outcome": "passed" }
}

One cell, from sources to consumers

A cell bundles your logic, the data it builds, and the way others reach it. Everything inside is yours to change whenever you like; consumers only ever see what you chose to publish.

Sources

Your data lake Your warehouse Other cells' exports

Datamake cell

private — free to change sql/stg_orders.sql sql/orders_daily.sql snapshot · parquet + ducklake
orders_daily @2 ✓ interface verified on every build

Consumers

Apps & dashboards AI agents Analysts & notebooks Other teams' cells

Open formats end to end, so your data is never held hostage by the tool.

Why composable data products?

Every new data product today waits on a ticket, a queue, and the central team, for something you already know how to build.

Datamake is the shortest path from a question about your data to an answer others can depend on.

Key features

Numbers you can defend

Every build checks the data against what you promised. If they drift apart, the build fails, so nobody finds out from a dashboard. Not a warning, a failure.

No half-finished tables

Every build lands all at once, so nobody catches your data mid-refresh. A release pins exactly what other teams build on.

Change without breaking anyone

A breaking change ships as a new version next to the old one. Consumers move on their own clock, not yours.

Start on your laptop, ship the same thing

One install, nothing else to stand up. The cell you build at your desk is the cell you deploy, with no rewrite in between.

Every feature is judged against one test: does it shorten the distance between “I have a question about my data” and “I have a trustworthy answer”?

Not a warehouse replacement: the escape hatch for the use cases that never needed one.

Create your first cell

You're three commands from real data, served from your laptop, in minutes. The starter cell ships with sample data, so the first build works before you connect a single source.

curl -fsSL https://raw.githubusercontent.com/scalecraft-dev/datamake/main/install.sh | sh

macOS (Apple Silicon) · Linux (x86_64 / arm64) · Windows via WSL2, or cargo install from source. The installer verifies its checksum and installs to ~/.local/bin.

$ datamk init orders && cd orders
$ datamk run    # atomic snapshot, auto-verified
$ datamk serve  # REST + OpenAPI on :8080

$ curl 'localhost:8080/orders_daily@2?region=us-east'
[{"order_date":"2026-06-01","region":"us-east","revenue":200.50},
 {"order_date":"2026-06-02","region":"us-east","revenue":59.99}]

Frequently asked questions

What is Datamake, exactly?

An open-source build system for data products, built to do one thing: reduce time to value for data. You write plain SQL and a short description of what it promises. Datamake builds the data, checks it against that promise, and serves it to people, apps, and AI agents. One install, nothing else to run: no warehouse, no cluster, no orchestrator.

Is Datamake a dbt alternative?

It solves a different problem. dbt builds tables back into your warehouse, where everything is still reachable and the checks are tests someone can forget to run. A cell has a boundary: only what you publish is visible, the build fails when the data stops matching what you promised, and the result ships as its own versioned product that others can depend on.

Can I serve files in my data lake as an API?

Yes. Point a cell at the files, write plain SQL, say what it promises, and serve it. Versioned, filterable, and checked on every build, with no cluster required.

Does Datamake replace my data warehouse?

No. It's the escape hatch for the use cases that never needed the warehouse. Your warehouse becomes one input among others: a cell can read warehouse tables, lake files, and what other cells publish.

What's a composable data product?

A composable data product, which Datamake calls a cell, bundles the logic, the data, a versioned promise about it, and who may see it into one thing you can ship. Cells build on what other cells publish, the way code libraries do. Read the concept doc →

Can AI agents use a Datamake cell?

Yes, that's a design goal. Every cell explains itself to an agent: what each column means, what it can ask for, and whether the numbers were checked on the last build. Plug it into any MCP client and the agent gets that directly, along with the data. There is no way for it to run a query you didn't allow, so it can't invent an answer. Read the guide →

How much does it cost?

Nothing. Apache-2.0 licensed and free. No gated features, no paid tiers, no "contact sales."