Evidence
Evidence is an open-source "BI-as-code" framework for building data reports and dashboards using just SQL queries and Markdown, compiled into a static website.
Overview
Evidence (evidence.dev) is an open-source framework for building data products — reports, dashboards, internal tools — by writing SQL and Markdown instead of dragging widgets around a BI tool's canvas. A page is a .md file: prose written in Markdown, with SQL queries fenced off to fetch data, and components (charts, tables, big-number callouts) that reference those query results by name. The whole project builds into a static site that can be deployed to any static host.
Why "BI as code"
Treating reports as source-controlled files means dashboards get the same workflow as application code: diffs in pull requests, code review, CI, and rollback. There's no proprietary binary format hiding what a chart actually computes — the SQL is right there in the file.
Copy code
# Weekly Revenue
```sql weekly_revenue
select
date_trunc('week', order_date) as week,
sum(order_total) as revenue
from orders
group by 1
order by 1
```
<LineChart data={weekly_revenue} x=week y=revenue />
Evidence and DuckDB
Evidence uses DuckDB in two distinct ways. First, as a data source connector: Evidence can point directly at DuckDB database files, or at CSV/Parquet files, and query them without a separate database server. Second, and more distinctively, Evidence runs a copy of DuckDB compiled to WebAssembly in the browser, so that filters, dropdowns, and other interactive elements on a published page can re-query and join data client-side, instantly, with no round trip back to a server. That combination — DuckDB as the local dev/build engine and DuckDB-WASM as the in-browser interaction engine — is central to how Evidence delivers fast, interactive static reports. Evidence also connects to MotherDuck for projects that need a shared, larger-than-local dataset behind the same SQL+Markdown workflow.
Related terms
Quarto is an open-source scientific and technical publishing system from Posit that renders documents combining prose with R, Python, Julia, or SQL code into reports, websites, and books.
DATE_TRUNC →DATE_TRUNC(unit, value) rounds a date or timestamp down to the start of a specified unit — such as day, month, or year — commonly used to bucket time-series data.
SQL query →A SQL query is a structured request written in Structured Query Language (SQL) that allows you to retrieve, analyze, or manipulate data stored in a database.
SQL →SQL (Structured Query Language) is the standard language for working with relational databases.
FAQS
Yes, Evidence is open source and free to self-host. Evidence Cloud is a separate paid hosting option for teams that don't want to manage their own deployment.
Evidence embeds DuckDB compiled to WebAssembly, which runs inside the viewer's browser so interactive filters and joins on a published page execute instantly without a server round trip.
No. Evidence pages are written in Markdown with embedded SQL queries and pre-built components; no HTML, CSS, or JavaScript is required for typical reports.
