open source · Apache-2.0

Datamake is a build system for data products

Built to do exactly one thing: reduce time to value for data. Write SQL, declare what it promises to produce, and ship the whole thing as a versioned REST API: one self-contained unit called a cell. One binary, no warehouse ticket, no orchestration platform.

Built on DuckDB Parquet DuckLake

Works with BigQuery Snowflake Postgres

One cell, from sources to consumers

A cell bundles your SQL, the data it builds, and the API that serves it. Everything inside is private and free to change; consumers only ever see what you choose 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

GET /orders_daily@2 Apps & dashboards Other teams' cells

Storage is Parquet, the catalog is DuckLake, the engine is embedded DuckDB. 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 SQL to a data product others can depend on.

Key features

Data contracts that can't lie

Every build checks the data against what you promised: the columns, the types, the uniqueness. If they drift apart, the build fails. Not a warning, a failure.

Atomic snapshots

Every build lands all at once, so consumers never see a half-built table. Releases pin the exact data other teams build on.

Versioned interfaces

A breaking change ships as a new version, served alongside the old one. Consumers migrate on their own clock, not yours.

Zero infrastructure to start

One binary with the engine built in. It runs on your laptop with no services, and the same cell deploys to Kubernetes from a single tracked config, no rewrite.

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 a versioned API serving real data, on your laptop, in minutes. The scaffold ships sample data, so datamk run works before you wire up 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 one cell.yaml; Datamake builds the data (atomic snapshots on Parquet), verifies it against the declared contract, and serves it as a versioned REST API. It ships as a single Rust binary with an embedded DuckDB engine, so no warehouse, cluster, or orchestrator is required.

Is Datamake a dbt alternative?

It solves a different problem. dbt materializes models back into the warehouse, where every table is still reachable and contract checks are tests someone can forget to run. A cell's interface is the serving boundary: non-exported tables have no route, the build fails (not warns) when the data stops matching the interface, and the result deploys as a standalone, versioned REST API.

Can I serve Parquet files as a REST API?

Yes. Point a source at s3://bucket/path/*.parquet, write plain SQL, declare the interface, and datamk serve exposes it as REST + OpenAPI with versioned routes and filterable parameters, 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 other cells' versioned exports.

What's a composable data product?

A composable data product, which Datamake calls a cell, bundles logic, output, a versioned interface, and access rules into one deployable directory. Cells build on each other's exports the way code libraries do. Read the concept doc →

How much does it cost?

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