Ask questions. Build workflows. Share reports.

One notebook from first question to shared report.

You shouldn't need five tools for one analysis.

  • Copy-pasting SQL between an editor, a spreadsheet, and a slide deck Steps live in one notebook; results stay inline.
  • Rebuilding the same CTE chain in every new query Name a step once; later steps reuse it.
  • Shipping a chart means exporting CSV to something else Charts and reports publish from the same place you explored.

What you get

Ask questions, connect sources, and see answers inline.

Stop re-explaining the same step

Give any step a name. Mention it in a later cell and Lunapad wires the dependency — the same idea across notebooks in a shared workspace.

Write it your way

PRQL, SQL, Python, or a visual pipeline in every cell. Click to build, then open the text when you want to edit the details.

When SQL is not enough, use Python

Run pandas, numpy, or plotly in a Python cell on the server. Name the output like any other step — downstream PRQL or SQL cells can pick it up.

Bring every source into one question

Upload a spreadsheet, query DuckDB in the browser, or connect Postgres, ClickHouse, MySQL, or Snowflake through Trino. Read-only by default.

Join across sources in one query

Because external connections share one query layer, you can join a warehouse table to an upload or a second database without moving data first.

See the answer where you asked

Results land right below the step — on your computer with DuckDB WASM, or against your team warehouse when you connect one.

How it works

01
Ask your first question
Write a question and give it a name. Any later question can refer back to it by that name, and the connecting happens behind the scenes.
02
Chain questions together
Link questions together to build a full analysis, step by step. Lunapad only reruns the parts that actually changed, so it stays fast.
03
See the answer right away
Hit run and the answer appears right below the step — on your computer or against your team's warehouse, even when that means combining several sources at once.
04
Share or connect to your team
Publish a report link, open your dbt project, or run Lunapad on a shared server — same notebooks, same connections.

Built for your stack

DuckDBPostgresClickHouseMySQLSnowflakedbtTrinoEvidence.dev

Run it on your own computer

No account, no cloud, no usage limits. Clone the repo and start it with Docker Compose.

terminal
$ git clone https://github.com/nicodemus-opon/lunapad && cd lunapad && docker compose up

What's in the box

lunapad/
├── web app (SvelteKit)
├── DuckDB WASM + warehouse connectors
├── dbt runner
└── docker compose
Self-hosting guide →

Frequently asked questions

Does my data leave my computer?

No, not by default. Lunapad runs right in your browser, so your files stay on your computer unless you choose to connect a shared source like a team database. It's read-only by default, so nothing gets changed by accident.

What can I connect to?

Upload a spreadsheet or file directly, or connect to DuckDB, Postgres, ClickHouse, MySQL, Snowflake, and other federated sources through Trino — then combine them in one question.

Does the AI feature send my data to a third party?

Only if you choose to. The AI query drafting feature can use a popular AI service, or you can run a private AI on your own computer instead, so no data has to leave your machine.

Is Lunapad free?

Yes. Both ways to use Lunapad are free: try the hosted demo at lab.lunapad.dev, or self-host from the GitHub repo. There's no paid tier.

Do I need dbt?

No. Start with a blank notebook and any data source. When your team already uses dbt, open the project in Lunapad to run models, see lineage, and promote notebook cells to real models on disk.

Can my team share one instance?

Yes on self-host. Docker Compose runs a shared workspace: notebooks, connections, and your dbt project live together, with roles for who can edit or only view. See the self-hosting guide in the docs.

How is this different from Hex or a BI tool?

Lunapad is open source and runs on your machine or your server. It is notebook-first: you explore interactively, then publish reports from the same place. There is no per-seat SaaS notebook tax, and your data does not have to live in a vendor cloud by default.

How is this different from Evidence?

Evidence builds static report sites at compile time. Lunapad is for live exploration first — run cells, iterate, chain steps — then publish reports that refresh from live queries, with filter widgets your readers can use themselves.

Start getting answers from your data.

From your first question to a polished report, all in one place.