Evidence.dev – Business Intelligence as Code
evidence.dev
evidence.dev
I've got a pretty nifty little reports app for the business I work going now. Beautiful, fast, does what it says, thanks so much for this.
Watching these videos I feel like we (the evidence team) could learn a lot from what you’ve built.
If so, feel free to shoot me an email: adam [at] evidence.dev
But our CEO, sales, etc. teams that are often consumers of BI tools do not like it, as they do not like SQL, nor putting things in code, nor markdown. So we kept the "traditional" BI tools and ETL shenanigans as well.
It's expensive to have both, but I don't think either fully replaces the other, and I don't regret going down the path we have at all. I think most folks are happy.
We've had similar experiences with BI consumers in the past. In our experience, it's really hard to make self-serve work for business users. Initially, we're starting with ways to make it easy for end users to get information out of Evidence (things like CSV download, smooth copy-paste into docs/email/PPT/etc).
Over time we'll be putting more effort into features that will let people explore data from within Evidence (which we call "best of BI" internally). We're thinking very carefully about it so we can hit a few of our key principles: maintainable/version controllable by data team, very fast - no waiting time for users, intuitive for end users - limited if any training required.
We’re building evidence specifically for producing reporting suites, automated analysis and other data products. As a result, we’re keenly focused on data analysts, not developers per se (although lots of engineers have chosen to use evidence as well).
We offer features focused on that use case and user group. SQL oriented workflow. A large and growing charting library, templates pages, a static build process so your reports are really fast, docs on using it with dbt, those types of things. We have a lot more “best of BI” features to come.
All of that said, I have seen people build really valuable data products with retool, so I am sure you could with airplane as well, but it’s definitely aimed at a much more general developer audience and “internal tool” use case.
Airplane looks to have some great form-building and interactive app features, so I think it just depends on the problems you're trying to solve
Mostly because they cannot be bothered (what else are we paying you devs for?), not because it’s actually hard for them to learn I think.
Or like in my CEOs case, they know SQL and have a strong technical background, but would rather click around in a UI because they've become proficient in that UI over years of using a certain set of workflows.
Making a company successful is so much more than just cobbling together a CRUD app and some fancy reports, yet many engineers are sadly so caught up in their hubris, they don’t get this.
I think there’s an opportunity to integrate LLMs so that non technical users can build on top of it using natural language.
> I think there’s an opportunity to integrate LLMs so that non technical users can build on top of it using natural language.
We're currently working on this!
It's a neat mashup of a lot of declarative-style approaches (SQL, ECharts, ~Markdown) glued together elegantly.
For HN readers who are interested, we are currently building a hosting, deployment and auth service for Evidence projects - Evidence Cloud.
Evidence Cloud is currently onboarding customers in private beta - for early access, join the waitlist here: https://du3tapwtcbi.typeform.com/to/kwp7ZD3q
You can create standalone HTML data reports from Python/Jupyter in ~3 lines of code: https://docs.datapane.com/reports/overview/
Just to help folks picture what they can build.
Here’s an evidence app:
https://evidence-demo.netlify.app/
Here’s a Datapane app:
An example of a standalone report would be something like this, from one of our users: https://cloud.datapane.com/reports/dkjbvwk/literature-in-blo... (code: https://github.com/ryancahildebrandt/hanakotoba) or https://cloud.datapane.com/reports/aAMaqoA/when-fact-is-fals...
I’d love to move my mssql notebooks out of Azure Data Studio.
I'd also highly recommend Blazer https://github.com/ankane/blazer if you are into the Ruby on Rails world. It's super solid, and it's been an indispensable tool integrated to all my projects.
Love how simple it is, the auto-configuration of charts etc. Even just playing around with the demo there was a lot to like: https://blazer.dokkuapp.com/queries/new
I was completely prepared to find another ‘mildly open source but not really’ license, but it’s actually just MIT.
Anyway, I find this tools fitting a very nice niece.
I’m currently working in a similar extension of markdown.
In case, the author pass by, would love to connect.
You could use [`data.mrr`](https://evidence.dev/md/value) or any other internal DSL you can come up with.
Another thing you could do is just decide against MD(SVE)X the format and keep the style and transform inline codeblocks that match. (MRR grew by `<Value data={data.mrr}>` yesterday.)
That you said Markdown to me says you aren't on sold on using an incompatible syntax.
It seems like you really nailed a sweet spot. Analyst first reports as a product that can be extended / enhanced by devs, and both can continue to maintain the project once it ships.
Not sure if this is exactly the case you’re thinking of, but one thing that is really nice about Evidence is that (if you want to) you can include custom svelte components in your projects.
A surprising (to me) number of organizations have custom d3 viz, or other components that they are using in one piece of software, but their data teams have no way to leverage that work. In evidence both groups have a completely suitable collaboration environment. A dev can drop off a custom component, the data team can use it, and then tweak and maintain the SQL that powers it.
Something like this but with duckdb + python support would be nice.
In fact, I would imagine this kind of things to be a good use case for introducing templating in jupyter notebooks.
"Containerized" approaches with evidence are also quite interesting - lets you combine several tools and use evidence as the last mile. Here's a great example: https://github.com/matsonj/nba-monte-carlo
Additionaly I think "Connecting to database" guide would be helpful addition to docs. To me it's a bit counterintuitive that I found first mention of database support in section "CLI reference". Maybe it already exists, I just couldn't find it.
Thanks for the feedback. There’s some info under Data Sources in the Core Concepts section, but maybe we should make the db support more prominent in the docs: https://docs.evidence.dev/core-concepts/data-sources/
The db connections are set up in the Settings page when you spin up an Evidence project, so we’ve also left a lot of the documentation in the product itself.
[1] https://blacksmithgu.github.io/obsidian-dataview/queries/str...
This stuff is all pointless. There is no audience for it.
(FTR, I use all of them, lightdash, streamlit, (as well as drop down to flask) etc.)
We're positioning the tool towards data teams who already manage their ETL layer using SQL, so our take is that they _do_ know SQL.
From the business-user perspective, it's just a website. Click to navigate around, drill into data etc.
(as a side point, there is no python, but I think the sentiment of this comment is around it being code, rather than the language specifically)
I honestly think people who used toolsets that abstracted the code away from them (But still obviously used code under the hood, just indirectly) screwed themselves over. A tool like this provides abstraction while still allowing for text-based input and that's a winning combination moving forwards.
That worked for evidence users the minute copilot came out. How long will it take tableau to ship something equivalent to that?
There are also a few other great ways to keep up to date (Slack, Twitter, and Github) - links here: https://docs.evidence.dev/community
When you try it out, please reach out - would love to hear any feedback
This seems like a simplified version that could reach it's limit pretty soon.
When I open examples in the Voila gallery, it spends 15s or so building the site, which a dev may tolerate, but a business exec has already given up on.
One of the benefits of a static site for reporting use cases is that it’s just HTML and JS. It loads virtually instantly as it doesn’t hit a database - all the data is shipped with the site.
Open it on your phone when you wake up, in a cab, by the gate at the airport: you’re looking at a mobile optimized site, and 5s later you can finish writing that email with the datapoint you needed.
For example:
Access to the underlying web framework (svelte kit) so you can use svelte’s templating (loops, conditionals), css, and (if you want) client side js in your reports
Works with CI/CD out of the box. Deploy to vercel, netlify, your own infra.
SQL, not python, as the main language so your reporting can be maintained and extended by most data analysts.
There’s a lot more we’re working on to extend the differences. Internally we refer to the two buckets as “best of BI” and “best of web frameworks”, if that gives you some indication of where we’re headed.
Here’s another discussion along these lines: https://news.ycombinator.com/item?id=28305784
> Jupyter is better suited to one off analysis. > Works with CI/CD out of the box. Deploy to vercel, netlify, your own infra.
Jupyter is suited for whatever you want to do with it. Voila exists to enable the use case of re-generating notebooks on a CI/CD system: https://github.com/voila-dashboards/voila
Anyways, seems like the templating is more powerful than the one being offered by Jupyter Notebooks.
Good luck and much success with it :)
I'm developing a complex business app with SvelteKit which would benefit massively from integrated reports and widgets. Is there a way I can easily utilise this to drop the resulting output directly into my own Svelte pages?
We can help you figure out if it's feasible - let me know and we can set up some time to chat: sean at evidence.dev
Shoukd work on Chrome, Firefox etc on all other platforms
We also think that reporting outputs should have a very high bar for visual appearance, and it takes quite a bit of work in Quarto to get charts up to that standard of quality. It sounds like a nice-to-have feature, but in our experience, publication quality data viz is a very important way to build trust with businesspeople who read the reports. We spend a ton of effort thinking through design choices at Evidence and want to give data teams a library of components they can pull off the shelf and write in a simple, declarative syntax.