Hacker News new | past | comments | ask | show | jobs | submit login
Evidence.dev – Business Intelligence as Code (evidence.dev)
391 points by hughess on April 20, 2023 | hide | past | favorite | 97 comments



I've been using evidence as part of my pipeline for generating reports at work, and it's wonderful. I use my own tool to generate the SQL itself, because I'm tired of writing SQL by itself. Here's a little overview about how this all works: https://share.descript.com/view/ppBx1MZB174 (and https://share.descript.com/view/pMYlLZO4hOo for generating the commands generating the SQL using GPT).

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.


Would you be open to chatting with us about your project?

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


Fantastic! Thanks for sharing! <3


That's fantastic to hear - thank you! Looking forward to checking out your overview


Is that a particular templating language? Or is it something you rolled?


just go templates


I use a similar tool at my work (airplane.dev) that lets us make dashboards as code using raw SQL or a language of our choice. I love it, and it gets a ton of use from our engineers and customer support folks.

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 have built a cross between airplane.dev, retool and n8n. It's fully open-source: https://github.com/windmill-labs/windmill Compared to airplane.dev, our scripts are instantly deployed, run faster, and we are being deployed fully on prem air-gapped, and scale easily to large clusters. Our workflow builder is similar in features to a tool like temporal and can be used to run ETL on nodes with hardware acceleration. Last, our UI builder is more similar to retool so it feels similar to traditional BI tools to build dashboards.


That's really interesting - airplane.dev looks great.

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.


> it's really hard to make self-serve work for business users

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.


I think this is right. To say it a different way - lots of business users won't bother looking at BI stuff enough to help you understand what they want, and when they do look, they want something else. Vicious cycle.


Based on what you see about airplane, is there a good feature that evidence has over it? New to both of these tools and am very interested to hear your thoughts.


Airplane seems to be a more general purpose product for building internal tools, whereas Evidence is really focused on reporting and analysis workflows. At a quick glance, there are 4 things that come to mind for Evidence: 1. Text support, including support for putting values from your data into sentences (narrative-driven reporting) 2. More analytics data sources supported (like DuckDB, SQLite, and CSVs) 3. I would imagine that our charting library has a wider selection, with options for more complex visuals - we spend a lot of time and effort here! 4. Evidence produces a static site, so pages and data are pre-built and users don't need to wait for queries to run when they're using the site

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


This feels GPT generated, but I guess that is just everything nowadays.


Haha I guess I should avoid using numbered lists


No need. Next time someone asks GPT this question, it's gonna copy paste yours verbatim as part of its smart AI neural net.


I haven’t used airplane, but it looks like a more dev oriented retool, which is an awesome idea.

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.


Those sounds like nice goals, I'll be watching :)


Glad to hear you have a good experience with it. I’m planning to evaluate it for my company’s use.

I think there’s an opportunity to integrate LLMs so that non technical users can build on top of it using natural language.


I'm one of the co-founders at Airplane - if you end up evaluating it, feel free to send me a note at ravi@airplane.dev if I can help.

> 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!


If you can't even learn SQL what are you doing in a tech company?? Sounds like the kind of company that hires managers that don't understand what their engineers are doing.


Specializing in a role that doesn't require SQL very often, most likely.

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.


They’re doing all the roles that allow developers like us to have a job.


There are lots of jobs even in tech companies that don’t require knowledge of SQL at all. That doesn’t make the skill set of those people any less valuable.

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.


What are the traditional BI tools?


Tableau and Power BI are the most common off-the-shelf options these days, but a lot of especially large well-established businesses have bespoke solutions that they paid to have implemented sometimes a decade or more ago that are still chooching along just fine.


PowerBI, Tableau


I built 2 little reports using Evidence 6 months ago in just a few hours with new data I hadn't interacted with! It was super fun to work at this level of abstraction, because I can spend most of my time thinking about the data and how I want to represent it.

It's a neat mashup of a lot of declarative-style approaches (SQL, ECharts, ~Markdown) glued together elegantly.


Thank you for the kind words! Really glad you enjoyed using it


This is getting quite a bit more attention than we expected.

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


If anyone is looking for something like this in Python/Jupyter, check out JupySQL: https://github.com/ploomber/jupysql


You might be interested in what we're hacking on at Datapane (I'm one of the founders): https://github.com/datapane/datapane.

You can create standalone HTML data reports from Python/Jupyter in ~3 lines of code: https://docs.datapane.com/reports/overview/


Very cool!

Just to help folks picture what they can build.

Here’s an evidence app:

https://evidence-demo.netlify.app/

Here’s a Datapane app:

https://dp-examples-1164c73e-stock-ticker.fly.dev/


Thanks for sharing, that looks great! That Datapane example is more a hello world web app that runs Python code in the backend (so requires a backend server - Fly.io in this example).

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 found it unclear from the documentation, but does this support auto-complete?

I’d love to move my mssql notebooks out of Azure Data Studio.


Yes! We have some basic autocomplete features: https://jupysql.ploomber.io/en/latest/howto/autocompletion.h...


Feel free to open an issue if you're looking for new features/something's missing. Also we'd love to chat more about your Azure Data Studio!


And it's Open Source: https://github.com/evidence-dev/evidence

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.


> open-source

I was completely prepared to find another ‘mildly open source but not really’ license, but it’s actually just MIT.


Only came across blazer yesterday, on an awesome-BI list on Github, but I do really dig it.

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


Not sure this is posted by the author.

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.


I'm one of the founders of Evidence - would be happy to chat!


Wow. This is at just the right level of abstraction for me.


Markdown is becoming a very nice platform. With Livebook, Mermaid, MathJax and all the other great tools.


The page says Markdown, but I see MDX in the video


It’s actually MDSVEX (the svelte version of MDX), we are weighing out a move to markdoc.


How about something like [`input`](magic-link)? I came up with this for https://codeberg.org/macchiato ( though it's not yet implemented in the new project, just in the predecessor, https://gitlab.com/ResourcesCo/notebook ). The backquotes differentiate from non-magic links. (I tried badges, but they aligned weirdly.)

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.


Any chance of making Evidence available as a Remark plugin? Would love to be able to use it as a tool for interactive documentation


Thank you for building this! I am really excited to try it out on a backlog item this week.

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.


Thank you for writing this!

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.


I’ve made a bunch of things that are somewhat like this (combining markdown with sql and charts) and I find it so fun to use, and so fun to implement. Interactive coding stuff is just - it’s like catnip. So addictive to use.


Can it create interactive documents like distill.pub or observablehq? I want my reports to look beautiful, and these sites are exemplars. I can't stand that jupyter junk. And it would allow you to support a use case beyond BI.


We care a ton about making reports look beautiful. At the moment, we have some interactivity through data viz components (tooltips, sorting, etc.), but we have a collection of much more interactive features on our roadmap. Here are a couple examples of production Evidence projects: https://evidence-demo.netlify.app/ https://mdsinabox.com


Super interesting.

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.


We have support for duckdb (and CSVs and Parquet through duckdb). We don't support python, but some people have also told us they have used evidence as the front-end for a python project - used python to do data transformation and calculations, then dumped the results into a duckdb file in an evidence project and built the visuals and narrative in evidence.

"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


off topic but... the favicon is 672kb?!

https://evidence.dev/favicon.ico


Does it support mssql? If not how hard would it be to add it inhouse?

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.


It doesn’t support MSSQL yet, but several people have requested it, so it’s definitely something we’ll support. We accept open source contributions for anyone who wants to add a database connector (a few of our connectors are open source contributions) - as long as there is an npm package for connecting to a database, setting up the connector is fairly straightforward.

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.


Had this been Python I would be all over it.


A bit like Quarto[1] for SQL?

[1] https://quarto.org/


100%


If you like this, Dataview[1] is great for querying your markdown notes.

[1] https://blacksmithgu.github.io/obsidian-dataview/queries/str...


Oh, and while we're on the topic, anyone have something like a media database where they record metadata about what they watch and when? I want to create yearly media dashboards and I've run into a few tricky problems around metadata organization. The querying has been easy for the most part.


Dataview sorely needs maintainers. The author is working on a successor but I still want to use the original one.


The problem with all of these "BI as Code" things is that _nobody_ that you want to use this knows Python or Markdown. If they did then they would just use Python and Markdown like they usually do.

This stuff is all pointless. There is no audience for it.


With the rise of large language models I have a lot more faith in "as code" approaches and a lot less faith in "low-code" or "no-code" approaches to doing the same thing. Large language models expand the workforce capable of using Python and Markdown at all, and they make that workforce more efficient.

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.


As an example, GitHub Copilot is already quite good at writing “evidence flavoured” markdown, and it’s really helpful.

That worked for evidence users the minute copilot came out. How long will it take tableau to ship something equivalent to that?


You are wrong. I work in FinTech and use Python and markdown. I am very interested in this. The current visualization tools in the Python space are very hamfisted. Dash and Plotly all hit a wall when trying to do complex visualizations.


I'm curious what you hit in dash and plotly that evidence let you overcome.

(FTR, I use all of them, lightdash, streamlit, (as well as drop down to flask) etc.)


I haven't used Evidence so can't speak to its capabilities. It's been a while since I've used Dash and Streamlit so I can't recall exactly what caused me to throw it aside but I do remember that formatting was hell and to even get close to what I wanted I had to use components from plotly express, dash, streamlit, essentially every Python data viz library. It was just too much of a hassle.


Yeah. The frameworks solve the 80 percent problem quite well but once you start trying to be as specific as the business often wants, I would find them lacking and end up popping JSON to d3 (or some such)


Sean, my cofounder, and I previously led the data team at a PE fund. This absolutely tracks with our experience.


I'd be interested to hear who you think the audience is here that can't code?

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)


There's a lot of ... sub par BI devs who want to point and click through horrendous PowerBI interfaces and such. Personally i find that style to hamper my ability to express what the business units need out of data products.


Does Evidence.dev have a newsletter? Not ready to use evidence, but want to at some point.


We have a mailing list you can sign up to at the very bottom of our website. We haven't sent much to date, but we are about to start sending consistent updates, so it's a good time to sign up.

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


How different is this from a Jupyter Notebook? https://jupyter.org/

This seems like a simplified version that could reach it's limit pretty soon.


Very. Evidence is oriented towards data teams who are building and maintaining large reporting and analysis applications for businesses. Jupyter is better suited to one off analysis.

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


Orienting the product to a different audience and therefore changing the defaults is fair enough.

> 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 can't deep dive where I currently am so thought I would drop a question to come back to.

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?


It's easy to embed a production Evidence site into other apps/sites (can use an iframe), but it's a bit trickier to get that working behind auth.

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


Businesses generate automated reports. Sometimes these reports are generated with jupyter itself, but the purpose is consumption, not analysis. Jupyter reports are fugly. This works without jupyter, and gives you interactivity.


It looks a bit like a notebook, but the output of an Evidence project is a static site, so you can build a data product that takes advantage of web features like click-based navigation. Queries and pages are built once at build time, so production projects are very fast. Here's an example project from one of our open source community members: https://mdsinabox.com/


There's Voilà for Jupyter Notebooks, that does exactly that: https://github.com/voila-dashboards/voila


Having just tried out Voila, I do think these products are serving pretty different audiences on the front end.

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.


because its just markdown and SQL without all the other overhead.


I guess that where you see overhead I see options.


Well yeah, sure. That's the difference, it has less options and complexity than a notebook. This is simpler - that's a valid reason for it to exist.


The online demo doesn't work because Stackblitz is asking for third-party cookies


It doesn’t work on Safari, and WebKit based browsers (and therefore, all browsers on iOS)

Shoukd work on Chrome, Firefox etc on all other platforms


Awesome! It works with Deno! Just clone Evidence template and run deno task build.


Why not use quarto to call into a DB? Or why not just add sql support to quarto?


Quarto's a great tool, but I think it would be hard to maintain it as a reporting solution for a company. My co-founder Adam and I used to love using RMarkdown in our previous job, but found that as we tried to scale that in our team, it became unmaintainable. Keeping the tool limited to SQL, markdown, and components is a way to help data teams maintain a project across a large organization.

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.


Interesting. I use Observable with quarto, instead of R or Python, which gives you access to any JavaScript charting library. I don’t know what’s available for R charts, but hopefully you can get some higher quality charts built for Evidence. The good thing about quarto is that it’s also pandoc, so you can get the outputs in all the business formats you need.


This looks really nice.


That looks amazing.


Nice




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: