Evidence
p/evidence
Business intelligence as code
Sean Hughes
Evidence — Interactive dashboards with extraordinary performance
Featured
20
Combine data from anywhere, visualize datasets with millions of rows, and deliver zero-latency interactivity - in pure SQL.
Replies
Sean Hughes
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
Raju Singh
@archiewood @adam_mcaskill @ud3sh @charles_evidence @itsmebriand @hughess folks.. this seems like a great tool. Are there any ootb integrations like Google analytics dashboard for instant visible yet personalized viewing?
Ohans Emmanuel (remention.ai)
This is brilliant. Love it! Congrats on the launch 🚀
Sankeerth Julapally
How seamless is the transition for teams currently using different SQL dialects with Evidence?
Sean Hughes
@sankeerth_julapally we have a migration command in our VS Code extension to help Evidence users on versions pre-USQL, which will refactor the project for you. After the switch, we've heard positive things about the interactivity features and the friendliness of the duckdb syntax vs. the previous database SQL. Does that answer your question?
Thet Lin Thu
Perfect for client presentations. Nice job, Evidence team!
Sean Hughes
@thetlinthu thanks!
Abhishek Gharat
I like the name :)
Stefans Keiss
How does Evidence integrate with existing BI tools? Do users need to migrate their entire workflow to start using it?
Sean Hughes
@memphys_sk typically organizations will start using Evidence alongside existing BI tools to start. The most common case we see is companies with hundreds of dashboards inside a BI tool, but little engagement on the reporting - they'll start using Evidence to produce a "northstar" report to form the source of truth for metrics in the business. We often hear that this unlocks user engagement on the metrics, and creates a path to pulling in more of the other reports over time (but realistically most of the existing dashboards are abandoned, as they're not actually being used). One thing data teams get excited about is the time to build things in Evidence - we often hear that development time in Evidence is days vs. weeks in a traditional BI tool
YC J
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.
Sean Hughes
@yc_j the cache layer is created on a schedule alongside building the static outputs for your deployed site. When developing locally, you can build the cache layer on demand. We’ve seen fast performance up to around 20 million records on a page. In your case, hundreds of TB would be too much to pre-load into the cache layer, but we have a new hybrid query engine in our Cloud service which handles much larger datasets. If you’re interested in learning about that, let me know and we can give you a demo. We recently helped a customer in a very similar situation and were able to get them a much faster runtime
Tony Han
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!!
Sean Hughes
@tonyhanded thanks! We’re very happy if we can make analyst and data engineer lives much easier
Kehui Guo
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!
Sean Hughes
@kehui_guo thanks! Performance is one of the things we're focused on most, and something we keep pushing the boundaries on. We have customers who use Evidence with 20+ million records on a page and still see sub-second load times. We also have some improvements in the works for extremely large datasets, so stay tuned for those!