Building data dashboards
How to share data insights
Lets say, you would need to quickly sketch the UI for EDA and share it with someone else.

You started playing with data in Positron IDE but what next? Which options do you have, when matplotlib/plotly/seaborn/altair/ <you named> rendered diagrams are not enough?

Metabase – can be a good first step to share access to data in a friendly way, however with growth of data volume it becomes not so convenient.

Specifically for dashboards building, without too much actual coding involved there are low code solutions:
  • Appsmith – open source and can be self hosted and customized (via js code)
  • Retool – allow to define complete workflow with necessary aggregation but will charge you some fee

Sure, you can start with old school jinja templates and plug something like Vega (declarative language and d3.js for visualization) on top of pre-computed aggregations to render static graphics via REST API.

But if you are fine with predefined UI components and want that someone else have fun with hosting, then your first choice for interactive diagrams are:
  • Gradio – spin up dashboards in notebooks and webpages and handy to expose your models from HuggingFace (fresh new LLM anyone?) – however performance and customisation are not the best
  • Streamlit – interactive UI out of the box to crunch the data but not intended for complex web app (or should I say real app(?) – authorisation, routing, state handling, … ,)

Couple of frameworks trying to overcome limitations of those initial cohort
  • Taipy – much easier to setup for multi-page applications, scheduled data cranching tasks but advanced functionality (SSO, ACL, drag-n-drop GUI builder, …) for a fee
  • Mesop – build by Google – data-centric, allow custom CSS and hot reload out of the box, in addition to authentication, multipage apps and even ability to integrate it on top of FastAPI
From simplicity perspective my favorite one is FastHTML – it build on top of two simple ideas:
  • using htmx – extension of html, that allow to build interactive web apps not as SPA – with dynamic content loading and refreshing directly in html via AJAX and WebSockets
  • hyperview – backend-rendering components and screens = no more issues with backend frontend api compatibility – just render what you got

Wondering what is the best way to share data insights
What solution right for you right now? What is preferred in the long run given data volume and number of dimensions will growth?
Made on
Tilda