2024-09-25 –, Louis Armand 2 - Ouest
Many Python frameworks are suitable for creating basic dashboards or prototypes but struggle with more complex ones. Taking lessons from the JavaScript community, the experts on building UI’s, we created a new framework called Solara. Solara scales to much more complex apps and compute-intensive dashboards. Built on the Jupyter stack, Solara apps and its reusable components run in the Jupyter notebook and on its own production quality server based on Starlette/FastAPI.
Solara has a declarative API that is designed for dynamic and complex UIs yet is easy to write. Reactive variables power our state management, which automatically triggers rerenders. Our component-centric architecture stimulates code reusability, and hot reloading promotes efficient workflows. With our rich set of UI and data-focused components, Solara spans the entire spectrum from rapid prototyping to robust, complex dashboards.
Solara bridges the gap between many Python web frameworks suitable for prototypes and full-stack web apps. We have looked at web frameworks in the JavaScript community, such as ReactJS, SolidJS, VueJS, and learned how they scale to larger apps.
Declarative UIs and a dedicated state management system are the core of the solutions.
We have built Solara on the Jupyter stack (ipywidgets) to avoid re-inventing the wheel. It also means we can reuse many of the widgets already created (such as anywidget based libraries).
Planned outline of my talk:
* Introduction/context
* The problem: what is the problem we are trying to solve
* Introducing Solara: general high-level overview of Solara
* Solara in depth: go over the problems solara solves, and demo them with code (live demo in Jupyter Notebook)
* Solara use cases: how is Solara currently used, real-life examples to show it
* Quality focus: highlight the testing and typing support
* Conclude
The key takeaway: With Solara, you can create complex dashboards in Python beyond what you previously thought possible.
Solara docs: https://solara.dev/
Solara GitHub: https://github.com/widgetti/solara/
I've given popular talks at SciPy before:
https://www.youtube.com/watch?v=VtchVpoSdoQ - Dashboarding with Jupyter Notebooks, Voila and Widgets | SciPy 2019 | M. Breddels and M. Renou
https://www.youtube.com/watch?v=hOKa8klJPyo - Interactive 3D Visualization in Jupyter | SciPy 2018 | Maarten Breddels
https://www.youtube.com/watch?v=ELtjRdPT8is - Vaex: Out of Core Dataframes for Python | SciPy 2019 | Maarten Breddels
Maarten Breddels is an entrepreneur and ex-scientist mainly working with Python, C++, and Javascript in the Jupyter ecosystem. He is the creator of Solara, ipyvolume, and Vaex and Co-founder of Widgetti. His expertise includes fast numerical computation, API design, 3D visualization, and building data apps. He has a Bachelor's in ICT, a Master's, and Ph.D. in Astronomy, and he likes to solve real problems.
Iisakki Rotko is a Software Engineer at Widgetti, where he focuses on advancing Python frameworks for complex dashboard creation through his work on Solara. With a background in theoretical physics from the University of Groningen, Iisakki combines his analytical skills with knowledge of Python and TypeScript to develop innovative tools at the interface between data and users, within the Jupyter ecosystem and beyond.