Product Thumbnail

Evidence

Interactive dashboards with extraordinary performance

Open Source
Developer Tools
GitHub
Data & Analytics

Combine data from anywhere, visualize datasets with millions of rows, and deliver zero-latency interactivity - in pure SQL.

Top comment

Hey Product Hunt, I’m Sean, one of the makers of Evidence, alongside @archiewood, @adam_mcaskill, @ud3sh, @charles_evidence, and @itsmebriand. Today, we're thrilled to share a recent major development for Evidence: Universal SQL. Our vision for Evidence is for it to be the universal front-end for data. A powerful, batteries-included framework combining the best of web frameworks, BI tools, and notebooks into a package that feels approachable to modern data professionals. Universal SQL is a major step towards that vision. With USQL, you can: 1. Connect multiple data sources (including CSVs and Google Sheets) and query them using a single SQL dialect 2. Add interactive features like drop-downs and date pickers, and handle user selections directly in SQL 3. Deliver unbelievable performance in your data apps, with load times under a second even for millions of records Why did we build this? When we started Evidence, we focused on reports - the bread and butter of analytics work in most organizations, but so poorly executed in BI tools. Now Evidence users and customers can build great-looking static reporting and make use of programmatic features like loops, conditionals, and templated pages. But our aspiration is to cover a much wider spectrum of data products - including internal data apps and customer-facing embedded reporting - and doing that means Evidence needs to have really great interactive capabilities. Our non-negotiables When we build anything at Evidence, we go to great lengths to make sure we are not comprising on our "non-negotiables", which are: - High performance: load times under 1 second. If you want engagement on reporting in your company, it really does have to be this fast. For executives, you're competing with PDFs and paper, and those load instantly - Beautiful: publication-quality by default. This inspires trust with report readers who are used to receiving carefully prepared slide decks. A messily formatted chart can be enough to call into question the quality of the underlying data - Maintainable: readable/understandable syntax, and always version controlled It was a challenge to support interactive features without ruining the performance of Evidence projects, so we were careful in selecting an approach. How does it work? With Universal SQL, we bring together a set of data sources, a client SQL runtime, and a set of interactive components. - Every source is stored in a cache layer: The cache layer consists of a set of Parquet (highly compressed columnar data storage format) files. - An in-browser instance of DuckDB executes queries live against the cache layer: Each parquet file is accessible as a table in the SQL runtime. - Input components allow you to take input parameters from the user: These can be used as parameters in queries or components can issue their own. With this structure, you can build data apps that are pre-built (read: fast), but still offer the ability for your user to re-query the data in the report by interacting with input components. What's next? Next we are extending input functionality to our component library, so you'll be able to interact with charts and tables, and get parameters you can use to filter SQL results. You'll also be able to click on individual viz elements to navigate to other pages in your project, which is a great way to build drill-down paths for your user. One other announcement Public projects on Evidence Cloud are now free! We're excited to see what you build and would love to feature interesting projects in our example gallery (https://evidence.dev/examples). Thank you all for your support! We'll be here to answer any questions and hear your feedback. Sean

Comment highlights

Love the design. Curious, when is the cache layer created? Is there a size limit on how much data can be preloaded? We deal with hundreds of TB using Hex to generate reports, the runtime is extremely slow.

Wow, amazing project @hughess, @ud3sh, @adam_mcaskill, @archiewood, @itsmebriand, @charles_evidence!! ⚡️

Congrats on launching Universal SQL for Evidence! The idea of a universal front-end for data with fast performance and interactive capabilities sounds awesome.

That's pretty impressive that you can get a nice chart out, fast, with different data sources, and be able to version control the whole thing with Universal SQL. That definitely makes data engineers and analysts lives much easier! Congrats @hughess and team! PS: go team Canada!!

How does Evidence integrate with existing BI tools? Do users need to migrate their entire workflow to start using it?

Congrats on launching Evidence! Combining data visualization and interactivity in pure SQL is impressive. How does it handle performance with large datasets? Excited to see its impact on data-driven decision-making!

How seamless is the transition for teams currently using different SQL dialects with Evidence?