Hi everyone,
I’ve been experimenting with Google Cloud services and APIs to make small, fun tools. One project I built is a text-based generator inspired by pop culture trends.
How I built it:
-
Data layer: I stored word/phrase sets in Google Sheets.
-
Backend: Connected via Sheets API, with caching for performance.
-
Frontend: Simple HTML/JS to randomize and display outputs.
-
Hosting: Deployed using Cloud Run for easy scalability.
What I learned:
-
Sheets API is lightweight but quota management is important.
-
Caching with Cloud Run reduced latency by ~40%.
-
Randomization logic is simple but gives a surprisingly engaging result.
If anyone’s curious, I wrote up a small demo project and published it online. It’s called Brat Generator —
Would love feedback on performance optimization and whether Cloud Functions might be a better fit than Cloud Run in this use case.
1 Like
Hey, this is a really cool approach — I like how you used Google Sheets as a lightweight data layer and kept everything simple. Using caching with Cloud Run to cut latency is a smart move too 
I actually built something similar recently (a brat-style text generator), and I ran into a few issues you might also encounter as usage grows:
-
Cold starts on Cloud Run can sometimes cause inconsistent response times, especially for lightweight apps like this
-
Sheets API quotas can become a bottleneck if you scale traffic, since it’s not really designed for high-frequency reads
-
Caching helps a lot (like you mentioned), but eventually you might want to move frequently accessed data to something like Firestore or in-memory storage
Regarding your question about Cloud Functions vs Cloud Run:
-
If your app is mostly event-driven or simple API calls, Cloud Functions can be simpler
-
But if you want more control, scaling flexibility, and container-based deployment, Cloud Run is usually the better long-term choice
One thing that worked well for me was:
-
Keeping Sheets as a “source of truth”
-
Syncing data periodically to a faster store (cache/db)
-
Letting the frontend hit the cached layer instead of Sheets directly
Overall though, this is a great lightweight architecture — especially for MVPs or experimental tools. Would be интересно to see how it performs under heavier traffic.
1 Like