I work on a dashboarding / BI solution that is also built around markdown and clickhouse. www.evidence.dev
We moved to stripe's Markdoc variant for the component syntax last year and have been really happy with it. Models are good at writing it, people are good at reviewing it.
Here's an area chart that would issue a SQL query for weekly revenue totals:
The best (for me) of these that I’ve tried so far is conductor.build
They have a different UI orientation, and it’s more locked into Claude code, but it might be good inspiration for your future plans. They get the git worktree setup and teardown and managing dev servers part of it right IMO.
We’re working on a static site generator for data analysts called evidence. It’s an alternative to conventional BI tools.
Procedurally generating pages from data and linking them together is a core part of the offering. In many applications this is far easier for users than presenting them with a conventional filter interface.
I'm one of the founders of Evidence. Tenno looks fantastic, there are a lot of great ideas in there. I also really like what you've done w/ the side-by-side code examples in your docs.
If you are a data analyst interested in making web apps, you might be interested in my OSS project, Evidence, which is a Static Site Generator for building reports and data apps with SQL and markdown.
I think performance and cost are the big motivators here.
I work on a web framework for building data apps like reports and dashboards, and we use duckDB’s WASM runtime for interactions (e.g when a user changes a date range filter). It’s really fast, and you don’t spend snowflake credits.
That’s good feedback on the docs. The tool has evolved pretty dramatically from where it started and we should revisit those diagrams.
Evidence is a static site generator.
Queries against your sources happen at build time and save to parquet.
Queries against the built in DuckDB web assembly instance happen at runtime.
Sources (snowflake, Postgres, csv files etc.) run at build time.
Pages in evidence are defined as markdown files. You write markdown, components, and code fences.
SQL code fences in pages run in the built in duck db wasm instance which can query across the results from all of your sources. These queries run in the client. We call this feature universal SQL, and it’s quite new.
One of the founders of Evidence here. Thanks the kind words Mike - that means a lot coming from you.
I think that distinction is right -- we are focused on making a framework that is easy to use with a data analyst skill set, which generally means as little javascript as possible.
As an example, the way you program client-side interactions in Evidence is by templating SQL which we run in duckDB web assembly, rather than by writing javascript.
Evidence is also open source, for anyone who's interested.
I'm quite excited about this, and would also love to have it distributed as an NPM package.
I work on an OSS web framework for reporting/ decision support applications (https://github.com/evidence-dev/evidence), and we use WASM duckDB as our query engine. Several folks have asked for PRQL support, and this looks like it could be a pretty seamless way to add it.
I work on an OSS reporting and analytics tool (https://github.com/evidence-dev/evidence) and the amount of time and effort that goes into a really good “print pdf”, and how valuable people find it, has been one of the more surprising parts of the project to me.
Out of interest, what exactly do people use Grafana for? Is it always monitoring infrastructure/ systems or is it more general purpose than that? What is special about it?
I come previously ran an analytics team and I work on an open source BI tool (https://github.com/evidence-dev/evidence) but I have never actually used grafana or come across it when talking to other "business analytics" folks. Everyone in my world is just using tableau or looker or jupyter notebooks.
We moved to stripe's Markdoc variant for the component syntax last year and have been really happy with it. Models are good at writing it, people are good at reviewing it.
Here's an area chart that would issue a SQL query for weekly revenue totals:
``` {% area_chart data="my_table" x="date" y="sum(revenue)" date_grain="week" /%} ```