Co-creator of Voila here. Voila is rather un-opinionated about what you can run in it. While it offers excellent support for ipywidgets, it's certainly not confined to that. One downside of Voila is that it can be resource-intensive, as it creates a new kernel/process for each page view or browser tab.
Mercury, in my view, seems really interesting for quick demos and reports. It's somewhat akin to Streamlit, making it ideal for notebook authors.
On the other end of the spectrum (and pardon my shameless plug here), there's Solara (https://github.com/widgetti/solara/). Solara is a fully-fledged web framework for Python, specifically designed to handle app sizes that surpass what Streamlit and Dash can manage. It's worth noting that Solara can render ipywidgets, using a pure Python React-like framework. This can be particularly useful after the exploration phase, when you're looking to transition a project from the notebook into production.
In Solara you can dynamically put together the UI like in react, in pynecone you need to use their primitives to make lists and conditional rendering.
Also, state management is not tied to solara, but could use dataclasses or pydantic, wrapped in a reactive variable.
I think what sets Solara apart from the rest is that we use a 10 year proven paradigm, React, but on the Python side, although with a more Pythonic API.
For instance making reusable components in Python is a real benefit.
Pynecone uses ReactJS in the front end, but on the Python side it’s their own API.
I do like pynecone, their API is pretty. I do wonder with many of these frameworks. Does the paradigm works for more complex apps, or does it end in complexity hell once you go past the hello world examples. At least React has proven itself.
> For instance making reusable components in Python is a real benefit.
I think that could be a big benefit for us because we ran into problems when we wanted to create a custom component for a different Data Grid in Pynecone. In particular we tried to wrap AG Grid but ran into problems when we tried to change the styling because we couldn't overwrite the DIV element's class. Is that something that would be possible in Solara?
What Data Grids do you currently provide in Solara?
I tried to look at your Components API docs at https://solara.dev/docs/api but that's currently returning an error:
> "No object with name Page found for /opt/render/project/src/.venv/lib/python3.9/site-packages/solara/website/pages/docs/__init__.py We did find: 'Path' or 'generate_routes_directory' or 'title' or 'HERE' or 'routes'"
Mercury, in my view, seems really interesting for quick demos and reports. It's somewhat akin to Streamlit, making it ideal for notebook authors.
On the other end of the spectrum (and pardon my shameless plug here), there's Solara (https://github.com/widgetti/solara/). Solara is a fully-fledged web framework for Python, specifically designed to handle app sizes that surpass what Streamlit and Dash can manage. It's worth noting that Solara can render ipywidgets, using a pure Python React-like framework. This can be particularly useful after the exploration phase, when you're looking to transition a project from the notebook into production.