Show HN: Hstream – quick Python web apps – Streamlit alternative using htmx

  • Big fan of HTMX here. We have found it more productive for our team than the more mainstream JavaScript React type libraries for the majority of the dynamic web apps we build. It seems so much easier to grasp the server-side rendering hypermedia model. In addition, the simplicity of the development tools and process is far better. Love the model of HTMX with some _hyperscript sprinkled in. In the rare use cases this model won't suffice, then and only then do we plug in something more JavaScript heavy - not very often!

  • So, I've had a lot of the same issues with Streamlit in terms of going beyond the very raw PoC phase, which is why we often end up using Plotly's Dash[1] framework (React + Flask) at work for this kind of task.

    Taking a step back, what would the benefits be compared to Dash?

    [1]: https://dash.plotly.com/

  • Huge fan of Streamlit — I've used it a ton at work — and HTMX + Django is my preferred method for building larger sites. Cool work!

  • Writing an API that scales from quick PoC to MVP to serious production is in my opinion a problem space that is mostly not explored. We've tackled this with iommi (https://docs.iommi.rocks) with deep customization while at the same time having super fast PoC. We are not satisfied with the performance yet though, but at this point it's good enough for most uses.

  • What's PoC mean?

  • I think the demo site may have been hugged to death. It's not rendering anything for me.

    I think it's also worth giving a shoutout to wave in this space; they have quite a few components you can use out-of-the-box https://github.com/h2oai/wave

  • I'm quite the fan of streamlit but do not love its way of handling state. The only way to have a semblance of state captured between browser refreshes in streamlit is through query params. Have you taken a bite at that problem in your framework?

  • This looks fantastic and the streamlit API is lovely to with with so it seems like a nice approach. Like others on this thread I’m a big django developer too; it’d be nice if the backend was swappable so you could run on flask or django as well…

  • Very cool!