├── .gitignore ├── README.md ├── requirements.txt └── streamlit_app.py /.gitignore: -------------------------------------------------------------------------------- 1 | .streamlit/secrets.toml -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Build a SaaS with Streamlit 🚀 2 | Discover how to turn your Streamlit app into a lucrative **SaaS** platform! In this comprehensive guide, I demonstrate how to use the `st-paywall` package to seamlessly **integrate Google OAuth** for user authentication and **Stripe for accepting payments**. I'll guide you through every step: from setting up the app, and integrating payment solutions, to deploying it on the Streamlit Community Cloud. Whether you're looking to monetize your existing Streamlit application or starting from scratch, this tutorial is for you. Dive in to see how I unlock the full potential of Streamlit and st-paywall! 3 | 4 | ## Video Tutorial 5 | [![YouTube Video](https://img.youtube.com/vi/SR_4xM3KZpI/0.jpg)](https://youtu.be/SR_4xM3KZpI) 6 | 7 | ## Resources/Links 8 | - `st-paywall` documentation: https://st-paywall.readthedocs.io/en/latest/ 9 | - Deploy Streamlit app to Render: https://youtu.be/4SO3CUWPYf0 10 | 11 | 12 | 13 | ## 🤓 Check Out My Excel Add-ins 14 | I've developed some handy Excel add-ins that you might find useful: 15 | 16 | - 📊 **[Dashboard Add-in](https://pythonandvba.com/grafly)**: Easily create interactive and visually appealing dashboards. 17 | - 🎨 **[Cartoon Charts Add-In](https://pythonandvba.com/cuteplots)**: Create engaging and fun cartoon-style charts. 18 | - 🤪 **[Emoji Add-in](https://pythonandvba.com/emojify)**: Add a touch of fun to your spreadsheets with emojis. 19 | - 🛠️ **[MyToolBelt Add-in](https://pythonandvba.com/mytoolbelt)**: A versatile toolbelt for Excel, featuring: 20 | - Creation of Pandas DataFrames and Jupyter Notebooks from Excel ranges 21 | - ChatGPT integration for advanced data analysis 22 | - And much more! 23 | 24 | 25 | 26 | ## 🤝 Connect with Me 27 | - 📺 **YouTube:** [CodingIsFun](https://youtube.com/c/CodingIsFun) 28 | - 🌐 **Website:** [PythonAndVBA](https://pythonandvba.com) 29 | - 💬 **Discord:** [Join our Community](https://pythonandvba.com/discord) 30 | - 💼 **LinkedIn:** [Sven Bosau](https://www.linkedin.com/in/sven-bosau/) 31 | - 📸 **Instagram:** [Follow me](https://www.instagram.com/sven_bosau/) 32 | 33 | ## ☕️ Support My Work 34 | Love my content and want to show appreciation? Why not [buy me a coffee](https://pythonandvba.com/coffee-donation) to fuel my creative engine? Your support means the world to me! 😊 35 | 36 | [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://pythonandvba.com/coffee-donation) 37 | 38 | ## 💌 Feedback 39 | Got some thoughts or suggestions? Don't hesitate to reach out to me at contact@pythonandvba.com. I'd love to hear from you! 💡 40 | ![Logo](https://www.pythonandvba.com/banner-img) 41 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | streamlit 2 | st-paywall -------------------------------------------------------------------------------- /streamlit_app.py: -------------------------------------------------------------------------------- 1 | import streamlit as st 2 | from st_paywall import add_auth 3 | 4 | st.set_page_config(layout="wide") 5 | st.title("My Cool SaaS! 🚀") 6 | 7 | add_auth(required=True) 8 | 9 | # ONLY AFTER THE AUTHENTICATION + SUBSCRIPTION, THE USER WILL SEE THIS ⤵ 10 | # The email and subscription status is stored in session state. 11 | st.write(f"Subscription Status: {st.session_state.user_subscribed}") 12 | st.write("🎉 Yay! You're all set and subscribed! 🎉") 13 | st.write(f'By the way, your email is: {st.session_state.email}') --------------------------------------------------------------------------------