Getting our 1st dollar with Streamlit


Hello DataFan, I have finally crossed 10k subscribers on my Youtube channel, and can be considered a "micro-influencer"! 🥳

Just for fun, here's how much I worked on the channel vs how much I earned from it:

  • 58 videos and 4 shorts in 2.5 years, starting December 15th 2021 --> A video every 15 days
  • 9h23 of content, around 1.5 to 2 production hours / minute of uploaded video --> ~1000h of video production work
  • ~3000€ total revenue from Youtube (Adsense + Brand deals + Affiliate links + Donations) --> 3€ / hour of work

Conclusion: if you want to earn money with Streamlit & friends apps, don't do it with a Youtube channel alone (>'-'<)

Here are some ways other DataFans monetize their Streamlit skills that I want to try next and share with you in future videos.

Embedded payment link

Adding a BuyMeACoffee or Ko-fi button is an easy way to let users of your app support your work with donations. You will see it on the more popular Streamlit apps.

As long as you generate the non-javascript version of the donation button on their website (a code snippet that doesn't contain any , you can embed it in Streamlit with `st.html`.

I don't have Google Analytics installed on Streamlit Cloud apps to get the number of clicks vs visits and I don't have a workaround solution for that yet, but Streamlit Cloud does show the number of unique viewers. With 80k viewers for 28 donations - and probably half from social media posts - I find conversion rate to be very low. Easy to setup but not a lot of earnings.

Expect an image carousel explainer about embedding Buymeacoffee next on Linkedin/Twitter/Instagram/Youtube Community 🤔 all socials at the end of the email

Subscriptions & One Time Payment Platforms

Stripe and Lemon Squeezy are popular payment processing platforms to manage payment and customer information.

There are 2 parts to manage in your app:

  • Have your user log in with an authenticated email using a Single Sign-On process (or SSO).
  • Run the payment on the matching customer email over the payment processor platform. Those platforms don't manage authenticating users for you.

I wanted to build a tutorial around Streamlit / Firebase Authentication for SSO / Stripe for payment. But I held on it because the team is supposedly working on 2 features that will make our lives easier:

  • OAuth2 / OpenID as supported authentication protocols.
  • Payments through Stripe use success/failure payment URL redirects. Native link redirects to the same Streamlit app are a feature in progress as a byproduct of OAuth2.

I would wait for those features before trying again. In the meantime, Tyler Richards, author of the official "Getting started with Streamlit" book, has created a plugin called `st-paywall` to manage subscription paywalls with Google SSO + Stripe or Buy Me A Coffee subscription 💰

If you want to experiment with Stripe, you could actually generate a Stripe embeddable one-time payment link to embed in an app, redirects to an external payment page, then track payment from the Stripe API. That's the previous Buy Me A Coffee workflow, but with a more flexible solution.

Fun fact: I just found out about a +300$ Streamlit template that integrates Google / Stripe / Firebase for you (you may find it by searching for the Terrasketcher Streamlit app template linking to a Xtreamlit website). There's an unofficial Firebase + Stripe Sync that I think does the job with Streamlit without needing this template. But eh, people buy working solutions, not tutorials on how to do it.

Resources:

Streamlit to Product

GPTZero.me and FeatherAI began as Streamlit hackaton apps. Those were previously lite versions of the full solution but now just Streamlit apps with a redirect link to the landing page of the product.

In the same vein, Elwynn Chen, who build the popular PyGWalker and streamlit-chadcn extensions, released a product to turn photos into notes after checking the Streamlit lite version of the product did well with family & friends.

Two of my colleagues recently won a corporate-wide GenAI hackaton with a Streamlit demo to top management and will start a new product feature out of it. Let me take some credit for it 😆

Databutton began as a Streamlit online builder with a prompt-to-app chatbot, and is now a GenAI-driven platform to build microSaaS.

Without naming any, I came accross a few consulting companies that would sell me a Streamlit internal tool to solve a painful business problem for 50k€. I have definitely installed Streamlit internal tools in production. Production doesn't have to mean "customer-facing".

Some viewers have come to me to say Streamlit is not a good fit to build a small paid product (in a meaner way, some people are mean in comments ahah), so why learn Streamlit if it is too limited?

Thiago Teixeira, co-founder and still very involved with Streamlit, has a tweet reply I really like

The cost of learning Streamlit is just so low compared to the gains of quickly getting a prototype up. It is okay to build a Streamlit prototype to ensure there's some product-market fit for your idea with a small audience, and then run with a more flexible, fully custom tech stack.

A video idea I really want to produce is a Streamlit to Next.Js or HTMX/DaisyUI/AlpineJS, auth and subscription enabled, with the help of Github Copilot or alternatives.

Paywalled instructional videos

I receive comments on my videos where people wish for a slower, step-by-step video of the solution.

After reading "The Art Of Explanation", I realize my videos are mostly explainer videos, they bring context and a storyline to the implementation of a solution so the viewer understands how it works.

But they are not a sequence of clear instructions to achieve the desired outcome, I leave a lot of that to the expertise of the viewer to skim through the textual documentation.

Producing such instructional videos feel like a "business chore" for me, so I plan to monetize those videos, and drive my Youtube video explainers as trailers to the slower paced tutorial. Whether I release it on the future Youtube Courses, Kajabi or even Gumroad linking to unlisted slower videos is still in the air, so you can join the waitlist below to stay updated and probably get a discount 😁

If you are a Streamlit, Gradio, Panel, Dash, whatever, there's a market for paid instructional videos right now. There's some money there that doesn't involve a lot of video editing, unlike my Youtube videos...

NB: I discovered Gumroad has an API? You can sell a video there, generate a license key for each user buying a product, then check the validity of the license key through the API from the Streamlit app! Then you could embed the video into the Streamlit app and show it only after entering a license key through a `st.text_input`. That's another tutorial I want to produce eheh so many things to do.

Anyway, how's life going?

I am a newly celebrating micro-influencer who doesn't gain a lot of profit from his Youtube Python Web UI explainer hobby 😂

Because I am a Youtuber, some colleagues concluded I was good with a camera and sent me in Madrid for my first corporate event photography job. Even though I mostly do portrait photography, which has nothing in common to taking pictures of groups of 10+ people!

But it was a fun experience, I feel more at ease with a camera in a dev event now.

I wish you to dance through a colorful day!

Brighten your Work with Streamlit/Web Apps and Social Media Videos

Upcoming Youtube tutorials, the latest updates and exclusive resources around Streamlit & friends, GIFs and animations. Directly in your inbox every ~2 weeks.

Read more from Brighten your Work with Streamlit/Web Apps and Social Media Videos

Ever needed to uniquely identify users for your Streamlit app through an email/Google single sign-on page? With version 1.42, Streamlit comes with Native Authentication support through the OpenID Connect protocol. I created a fake Streamlit store app with a sign up button for you to play with Streamlit native authentication through Auth0, an authentication as a service platform that makes it easier to manage multiple social logins like Google, X/Twitter or Linkedin. The app is still live on...

I have suffered 3 weeks on this Google auth in Streamlit thing, my mind is not ready to make a video about it so here's a link to tinker with the source code instead. Bring me to the source code! See below for a longer text recap! Integrating Google OAuth2 Authentication to Streamlit has been an issue for some time, with multiple solutions being developed like streamlit-oauth, st_oauth's prototype by the Streamlit team or streamlit-google-auth. But for the past months, I have been building...

A week ago, I was sitting in an airport cafe, ready to wait 3 hours for a plane from Manchester back to Paris, followed by a 4 hour train trip to the South of France. Those long business trips are my usual gateway to catch up on "things I want to learn but never have time to". I would load up on hour-long entrepreneurship podcasts and rediscover books about Marketing from Seth Godin. But the morning in this airport cafe, I stumbled upon Next.js's File-based routing system. Each folder maps to...