If this is really your sentiment, I strongly invite you to try out Taipy. This was exactly our reaction when we decided to build Taipy. Streamlit was already somewhat popular, but it would always fail at the production stage when we tried using it for consulting missions. Any application in production generally has a significant workload in the back-end, multiple pages, and users. Streamlit's approach of re-running your code outside cached variables limits it to POCs, as you said.
That is why we created Taipy. We wanted an easy-to-learn Python library to create front-end for data applications while remaining production-ready: we use callbacks for user interactions to avoid re-running unnecessary code. Front and back-end run on separate threads so your app does not freeze whenever a computation runs.
We also focus on providing pre-built components to allow the end-user to play around with data pipelines quickly. These components allow the user to visualize the data pipeline in a DAG, input their data, run pipelines, and visualize results...
That is why we created Taipy. We wanted an easy-to-learn Python library to create front-end for data applications while remaining production-ready: we use callbacks for user interactions to avoid re-running unnecessary code. Front and back-end run on separate threads so your app does not freeze whenever a computation runs.
We also focus on providing pre-built components to allow the end-user to play around with data pipelines quickly. These components allow the user to visualize the data pipeline in a DAG, input their data, run pipelines, and visualize results...