1 of 23

Google DevFest 2025

Building and Monetizing Your Apps

​

Ellie Kuang

Los Angeles, CA

2 of 23

How to Monetize Your Apps in 2025

  • Identify your hobbies and interests.
  • Build a website to engage with your audience.
  • Monetize your website:
    • freemium with in-app purchases (video editing, generative ai)
    • subscription-based (stock charts)
    • ads (Google AdSense, AdMob, Media.net, Ezoic)
    • affiliates and commerce (Amazon, Costco, influencer)
    • one-time purchase (templates)
  • Use social media to gain more traction. Point to website.

URL: bellietime.com YouTube: bellietime

3 of 23

Build a Website

  • Wix
  • Flask, Django, React
  • Decide if you want your site to be static or dynamic.
    • static: blog, words, photos
    • dynamic: provides a service
  • Choose a cloud provider to deploy and host your website.

URL: bellietime.com YouTube: bellietime

4 of 23

App Structure

  • app.py
  • requirements.txt
  • Dockerfile (containerize your app for easy deployment)
  • .env
  • data
  • modules
    • utils.py
    • models.py
  • templates
    • index.html
  • static (talk about security!)
    • styles (.css)
    • functions (.js)
    • pictures (images, icons)
    • uploads

​

​

URL: bellietime.com YouTube: bellietime

5 of 23

Host Your Website

  • Simple hosting is less costly and easier setup (link to GitHub but be careful if your app uses secrets). Great if you are just getting started.
  • FREE tiers usually available until you meet the quota.
  • All have a website/GUI and a CLI to deploy.
    • static:
      • (GitHub) yourapp.github.io
      • (Netlify) yourapp.netlify.app
    • dynamic:
      • (Fly.io) yourapp.fly.dev
      • (Heroku, owned by Salesforce) yourapp.herokuapp.com
      • (Render) yourapp.onrender.com
  • Big Cloud Platforms (AWS, GCP, Azure)

​

URL: bellietime.com YouTube: bellietime

6 of 23

Reminder: Keep Secrets Out of GitHub

  • API keys
  • Database passwords
  • Cloud provider keys
  • SSH private keys
  • Encryption keys

​

Solution:

  • Set up environmental variables via your cloud platform’s CLI or website

​

URL: bellietime.com YouTube: bellietime

7 of 23

(Optional) Get a Domain Name

  • Looks professional
  • GoDaddy, Squarespace

​

URL: bellietime.com YouTube: bellietime

8 of 23

Set Up Ads

URL: bellietime.com YouTube: bellietime

9 of 23

Set Up Ads

URL: bellietime.com YouTube: bellietime

10 of 23

How to Get Approved for Google AdSense

  • Takes days to a few weeks for approval
  • Quality original content (stocks, skincare, health & wellness, cooking)
  • Stick to one topic for consistency
  • Terms & Conditions, Privacy pages
  • Have some traction/the potential to drive traction:
    • Leverage social media.
    • YouTube & TikTok has the best algorithms in my opinion.
    • First 3 seconds matter the most.

​

URL: bellietime.com YouTube: bellietime

11 of 23

Why I Started BellieTime?

  • Passionate about skincare and wellness.
  • Skincare webapp catered to mommies and babies first.
  • Detects ingredients that are:
    • not fragrance-free
    • not safe for pregnancy and babies
    • not allergen free
      • Common allergens: milk-dairy, eggs, peanuts, tree nuts, fish, shellfish, soy, wheat, sesame, etc.
    • not vegan
    • and all derivatives of the above.

URL: bellietime.com YouTube: bellietime

12 of 23

About the Database

  • Has over 2000+ ingredients.
  • Verified by SMEs such as dermatologists.
  • Supports K Beauty, J Beauty, and French ingredients.
  • Currently only supports English language with plans to expand on other languages as well.
  • DISCLAIMER: Like all skincare apps, BellieTime does not offer medical advice or attempt to diagnose or treat any skin problem, disease, or condition.

​

URL: bellietime.com YouTube: bellietime

13 of 23

How I Monetized BellieTime

  • Run ads through Google AdSense
  • Affiliate links accessible at bellietime.com/tree:
    • Amazon Associates (anyone can qualify)
    • Amazon Influencer (qualify if you have lots of followers)
    • Costco Affiliate Program
  • Partnerships with other content creators.
  • Partnerships with skincare brands (in progress).

URL: bellietime.com YouTube: bellietime

14 of 23

How I Drive Traction for BellieTime

  • Leverage social media
  • Talk about your app on social media
  • Demos!
  • Write about it on Medium & LinkedIn.

​

  • One post a day or 3 per week. YouTube will find your audience.
  • Make sure your posts are consistent or related.

​

URL: bellietime.com YouTube: bellietime

15 of 23

  • Quick links designed to help you understand your product faster and better!

​

  • Identify ingredients that are for you or not.

​

  • Decode your skincare, haircare, and bodycare!

URL: bellietime.com YouTube: bellietime

16 of 23

Customer Reviews

  • “Great app that helped me analyze my skincare for safety when I was pregnant. Easy to use and intuitive!” – Victoria Tong

​

  • “BellieTime is such a thoughtful app. It gives mothers clarity when everything feels unknown, and it comes from someone who saw her own struggle was a shared one and chose to help others. Simple, clear, and made with real care for safe choices.” – Anson Fung

​

  • “As a new mom, this app has been incredibly helpful while I clear out old beauty products and make room for cleaner, safer options for myself and my baby. The product guide is so organized and easy to follow! It’s simple, clean, and straight to the point with exactly what I need. It makes the whole shopping process feel effortless!” – Ashley Ragland

URL: bellietime.com YouTube: bellietime

17 of 23

Linktrees and Storefronts

  • Invest in one! It’s FREE to sign up. Pay for additional features.
  • Linktree for portfolios (LinkedIn, GitHub, website), services, products.
  • Really hard to get people to click on ads and links.
  • Organizes all recommendations and links so people are more encouraged to click.
  • Direct traffic to the right audience.
  • Like Babylist, ultimate baby registry to manage gift lists.
  • Designed my linktree (bellietime.com/tree) based on my experience as a new mom.
    • All products have been verified by me (safety, effectiveness).
    • Price matched!

​

URL: bellietime.com YouTube: bellietime

18 of 23

Last Note: Catzai

  • Video editing app to be released in 2026.
  • Targets content creators.
  • Subscription based.

​

  • Quickest way to monetize your apps:
    • Onboard users ASAP
    • Get feedback before you develop
    • Feedback over features

URL: bellietime.com YouTube: bellietime

19 of 23

Trivia (for some Swag)

You’re about to paste your OpenAI API key directly into your code because “it’s faster.”

�Question: What’s the more secure way to handle this?

    • Hardcode it in app.py and hope no one notices
    • Store it in an environment variable and read it with os.getenv()
    • Put it in secrets.txt and commit it
    • DM it to yourself on Discord and copy from there forever

​

URL: bellietime.com YouTube: bellietime

20 of 23

Trivia (for some Swag)

You push a repo to GitHub and suddenly realize your .env file with real API keys got committed.�

Question: What’s the first thing you should do?

    • Delete the repo and move to another country
    • Immediately rotate the exposed keys (invalidate & regenerate)
    • Pray no one saw it
    • Just add .env to .gitignore and call it a day

​

URL: bellietime.com YouTube: bellietime

21 of 23

Trivia (for some Swag)

You deploy a site and store user photos in a cloud storage bucket. Suddenly, someone finds the URL and can list all files.�

Question: What likely went wrong?

    • You forgot to enable dark mode
    • The bucket was set to public listing / public read
    • You didn’t compress the images
    • You used PNG instead of JPG

​

URL: bellietime.com YouTube: bellietime

22 of 23

Trivia (for some Swag)

You’re building an app and need to store your valuable database file (or connection stuff).�You’re thinking about where to put it in your project.

​

Question: Where is the best place to keep your database / DB credentials?

    • In the static/ folder so it “loads faster”
    • In templates/ so Jinja can “protect it”
    • In a private folder like data/ or on a managed DB service, with the connection URL stored in environment variables
    • In a pinned comment at the top of app.py so you never forget it

URL: bellietime.com YouTube: bellietime

23 of 23

​

​

​

​

Thank you for listening and give bellietime.com a try.

Follow me on YouTube @bellietime

Connect with me on LinkedIn @ellie-kuang