8 comments

[ 2.9 ms ] story [ 36.0 ms ] thread
Hi HN, I'm one of the creators of Evidence.

Our goal is to build an open source BI tool that enables analysts to build professional and easy-to-use reporting and analysis without spending hours dragging and dropping in a tool like tableau.

Evidence is built on top of Svelte and SvelteKit:

Evidence scaffolds together a SvelteKit application, and adds a pre-processor that connects the SQL queries inside your markdown pages to the data in your data warehouse.

Happy to answer any questions!

How is this different than Jupyter?

Jupyter runs SQL - why would I need SQL in markdown?

That's a great question.

Evidence is really a web framework (svelte kit) under the hood, and as a result you get a lot of tools for building large, multi-page reporting suites out of the box. Evidence is just much better suited to delivering a comprehensive business intelligence system (the KPIs, customer lookups, alerting etc.) that your non-technical colleagues are going to be comfortable engaging with.

- Templating: evidence embeds svelte's templating language, so you can use loops & conditionals to spool out sections of your reports: headers charts, tables etc. based on your data. It's possible to do that type of thing in jupyter, but it's a bit of a headache.

- Pages from data: the parameterized page system in evidence makes it really easy to generate large amounts of content and reliably link to it. A page for every customer, for example.

- File based routing: the location of .md docs in an evidence project map to the URL structure of your output web application. When you combine this with paramaterized pages, nested routes etc. you can build really sophisticated multi-page projects, where users can self-serve by navigating around. Again, this is possible to do with jupyter + some additional tooling, but it's a headache.

- Component system: evidence compiles your markdown documents into svelte components, so you can actually take a piece of analysis and abstract it out into a re-usable component that you can drop into your other pages, like this: <CustomerPurchaseHistory customerID = 1234/>. This makes it possible to keep your reporting DRY and a lot easier to keep it internally consistent.

- Ecosystem: this might be controversial, but I think in the long run the javascript ecosystem is going to have better tools for professionally communicating analysis. Evidence ships with D3, but if you want to use observable's new plotting library you could just npm install it into your project.

Got it - sounds interesting. Thanks for the detailed reply!
going to give it a shot! Looks awesome
Amazing! If you have any feedback, feel free to get in touch directly: adam at evidence.dev