I'm a big fan of Altair and have used it for demos in the past. However, restrictions such as a 5,000-row limit on dataframes and usage only inside notebooks pushes me to other solutions like Plotly.
Also, Altair plots can certainly be used outside of notebooks! Happy to share some examples..