📬 Google Told Me “Your Storage Is Full, You May Not Receive Emails.”
… which I find adorable, but sadly I don’t respond well to threats. 😌
For 🚀 Day 5 of my Turning My Curiosity into Code Until I Land a Tech Job series, I built Gmail Cleaner. It scans your inbox and allows you to mass delete emails from the senders who clutter it the most!
day-5-gmail-cleaner.vercel.app
That one overly enthusiastic marketing team that emails you multiple times a week? Now you can finally see exactly who they are in a list and wipe out their entire history in a couple of clicks. (I’d personally also recommend unsubscribing!)
After a diagnosis scan, Gmail Cleaner shows a ranked list of the senders clogging your inbox, sorted with the worst offender right at the top.
Then it’s simple: click the sender → press delete → every email from them disappears, gone with the wind.
Fewer emails, a Marie Kondo-approved inbox, no need to pay for extra Google storage. Win-win-win. ✨

🧪 The Plan
Frontend
- React 18 + TypeScript + Vite, React Router, Axios, Lucide icons for a clean dashboard
Backend
- FastAPI, Google OAuth 2.0, Gmail API, CORS hardening
💡 Self Reflection
- Backend: Vercel Severless can be powerful for smaller backend processing, but complex processing requires a better solution such as Render.
- Backend: Calling Gmail API can be slow, due to their pagination which will increase latency cost. But better to batch and parallel page fetch so we do not exceed rate limits. Filters help ALOT here.
- Reliability: OAuth + Gmail API flow is solid, but sessions are in-memory → prod needs a DB.
- UI/UX: For someone with a 40k email inbox (me), scanning can take awhile. When the backend is running, I was not certain if that was in fact happening. Adding a progress bar is important for UI/UX.
🔁 If I Had More Time
- Include more functions: Such as a descending list of emails, from largest to smallest, in order to clear emails with high efficiency.
- Use a common RAG: With more users, we can identify repeated “useless” emails from certain senders, flag them out to future users that will likely delete these emails. Can also build a unsubscribe database here and automate unsubscribing.
- Background jobs for big scans: To allow users to start a scan and come back, so they can focus on other tasks.
🤝 Want a demo or to jam on similar ideas? Let’s talk!
Let’s talk.
🔗 LinkedIn: https://www.linkedin.com/in/sinclair-lim/
🔗 X: @sinclairlimzy
🔗 Portfolio: https://www.sinclairlim.com/
🔗 GitHub Repo: https://github.com/sinclairlim/Day-5---Gmail-Cleaner