Evidence
BI as code: reports written in Markdown with SQL blocks and chart components. It began as a static site generator that ran every query at build time; the current version runs queries when a page loads.
- What it is
- Static read models (data apps built ahead of time)
- Type
- Open source
- Made by
- Evidence Technologies, Inc.
- License
- MIT
- Facts checked
- 9 October 2026
What it is
An Evidence report is a Markdown file. SQL blocks in it fetch data, and components such as line charts, tables and big numbers render the results, so a report lives in git and gets code review like any other code. The original version, now called legacy Evidence, was built on Svelte and SvelteKit and was a static site generator. Source queries in sources/ ran in each database’s own dialect during npm run sources, page queries ran in DuckDB, and npm run build ran everything once and wrote a static site to build/, with every permutation of every parameterized page pre-rendered. You hosted it on any static host (Netlify, Vercel, GitHub Pages, Cloudflare Pages) and rebuilt on a schedule to pick up new data. If a query broke, the build stopped and the old site kept serving; build:strict failed the build on any query or component error. In the browser, filters and inputs re-ran queries on DuckDB-Wasm over the shipped data.
From 2025 Evidence changed course. Evidence Studio, the hosted product, and Evidence Core, the MIT-licensed framework, run SQL on the server against one warehouse through a direct connector (Snowflake, BigQuery, Databricks, ClickHouse, Postgres, MotherDuck, Cube and others) and re-run queries on page load, with no build step. The page syntax moved from Svelte to Markdoc, and self-hosting means running the evidence serve Docker image rather than uploading static files. The legacy build commands in the project template now just print that they are deprecated. Evidence is listed here for the build-time model it was designed around, which legacy projects still use.
Why teams pick it
- Reports are Markdown and SQL in git: pull requests, diffs, loops and templated pages instead of drag-and-drop dashboards
- Legacy builds produce plain static files: fast page loads, any static host, and no database credentials or connections at view time
- A failed query stops the build instead of breaking the live site, which keeps serving the last good version
- The current version keeps the code-first workflow and adds live queries on hundreds of millions of rows, plus access controls and row-level security in Evidence Studio
Watch out for
- Static (legacy) Evidence is deprecated: new projects get live, server-side queries instead, and old projects need
evidence migrateand manual fixes to move to the new syntax - Legacy builds were capped at about 2 million rows, needed a full build for every data or content change, and pre-rendered every page permutation, so docs suggested single-page-app mode past 1,000 pages
- Every viewer of a static build sees the same snapshot: no per-user data or access rules unless you build them yourself
- Self-hosting the current version gives you only HTTP basic auth and direct connectors; SSO, access rules, models and the AI agent are Evidence Studio features
Alternatives
What all data apps built ahead of time have in common →How it fits with other technologies
What Evidence uses
- Evidencequeries live through a direct connectorSnowflake
- Evidencequeries live through a direct connectorGoogle BigQuery
- Evidencequeries live through a direct connectorPostgreSQL
- Evidencequeries live through a direct connectorClickHouse
- Evidencequeries live through a direct connectorMotherDuck
- Evidencequeries metrics over the SQL API ofCube
- Evidenceran legacy page queries in the browser onDuckDB
See it in a real stack
No architecture uses Evidence yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2021–2026
Adam McAskill and Sean, who had spent five years building the data science group at a Canadian private equity firm, set up the modern data stack (Fivetran, dbt, BigQuery) at many portfolio companies and found the BI layer its weakest part. Drag-and-drop tools were slow to build with, hard to version control and test, and produced grids of charts without context. They admired how newspaper graphics teams such as the New York Times coded their data products by hand, and wanted a framework that let analysts do the same.
They launched Evidence on Hacker News in August 2021, as part of Y Combinator’s Summer 2021 batch, describing it as “a static site generator for data analysts”, “like Jekyll or Hugo for SQL analysts”. Pages were Markdown, SQL inside them ran against BigQuery, Snowflake or Postgres, and the framework was a set of conveniences around SvelteKit. The core would stay open source, and a paid cloud version would add hosting and access control.
Building ahead of time kept reports fast and safe, but it capped data at about 2 million rows and made every change wait for a build. In June 2025 Evidence launched Evidence Studio, with a new query engine that runs queries server-side, and said it would sunset its earlier cloud product by the end of the year. The open-source framework followed: Evidence Core queries a warehouse live, and the legacy static builds are deprecated.
Why it’s built this way
- A static site generator instead of a BI server
- Running queries once at build time made pages load fast, let them be hosted anywhere and meant a broken query stopped the build instead of breaking the live report.
- Markdown and SQL, not drag and drop
- The founders saw analysts wanting software practices: version control, testing, loops that generate a section per region and reusable components.
- Built on Svelte and SvelteKit
- It was the framework the New York Times had used for recent data graphics such as its Covid risk maps, and Evidence started as convenience features around it.
- Later: queries on page load
- Static builds meant a build per change and a ceiling of about 2 million rows. Evidence Studio’s server-side engine was built to query arbitrarily large datasets with fast responses, and brought live connections, access control and row-level security with it.
Timeline
- 2021
Launch HN in August: a static site generator for SQL analysts (YC S21)
- 2025
Evidence Studio launches in June with server-side queries
- 2025
The earlier Evidence Cloud hosting product is set to close by the end of the year
- 2026
Last releases of the legacy npm packages, in February
Sources10 · facts checked 9 October 2026
- Evidence docs: What is Evidence? (Evidence Core and Evidence Studio)
- Evidence docs: Migration guide (legacy static builds vs queries on page load; ~2M rows)
- Evidence docs: Self host (evidence serve Docker image, features vs Studio)
- Evidence docs: Postgres direct connector (live queries)
- Evidence docs: Cube direct connector (Postgres-wire SQL API)
- Evidence legacy docs: Deployment overview (static build, build:strict, SPA mode)
- Evidence legacy docs: Data sources (source queries, npm run sources)
- Evidence legacy docs: SQL queries (DuckDB dialect)
- GitHub: evidence-dev/evidence README (MIT licence)
- GitHub: evidence-dev/template package.json (legacy build scripts print a deprecation notice)