BlogHow I Built InboxClean in 6 Days While Working a Full-Time Job
Behind the Build6 min read·July 15, 2026

How I Built InboxClean in 6 Days While Working a Full-Time Job

The real story of building InboxClean in under a week — the technical decisions, time management hacks, and what I'd do differently next time.

On a Tuesday evening in late 2024, I stared at my Gmail inbox showing 12,847 unread emails. I'd tried Unroll.me (privacy concerns), Clean Email (too expensive), and manual unsubscribing (soul-crushing). That night, I opened VS Code at 9:47 PM and started building InboxClean. Six days later — while still working my 9-to-5 — I had a working product. Here's exactly how it happened.

Why I Started Building InboxClean on a Random Tuesday

The trigger wasn't the unread count. It was LinkedIn.

I counted 47 separate LinkedIn emails in my inbox from the past month. Connection requests, job alerts, "Who's viewed your profile," engagement notifications — each one a separate row making my inbox look like chaos. When I tried to unsubscribe, LinkedIn's preference center had 23 different email toggles. Twenty-three.

I thought: what if I could see all 47 LinkedIn emails as a single row, and delete them all with one click? What if I could tell Gmail "never accept LinkedIn emails again" — permanently?

That was the core idea. Not another email organizer. A sender-level nuclear option.

The 6-Day Building InboxClean Timeline

Here's the actual breakdown of how each day went:

  • Day 1 (Tuesday, 9:47 PM – 1:30 AM): Set up Next.js project, Google OAuth, basic Gmail API connection. Got my first successful inbox scan at 12:41 AM. Celebrated with cold pizza.
  • Day 2 (Wednesday, 8 PM – 11 PM): Built the sender grouping logic. This was the magic — aggregating by domain so 47 LinkedIn emails became one row showing "linkedin.com: 47 emails."
  • Day 3 (Thursday, 7 PM – 12 AM): Implemented the unsubscribe detection. Gmail's List-Unsubscribe header exists in most marketing emails. I learned to parse both mailto: and https: unsubscribe links.
  • Day 4 (Friday, 6 PM – 2 AM): Added the "Inbox Shield" feature — creating Gmail filters that auto-delete future emails from blocked senders. This was harder than expected; Gmail's filter API has quirks.
  • Day 5 (Saturday, 10 AM – 6 PM): Full day on UI. Made it actually usable by humans. Added the scan progress indicator, sort options, and that satisfying animation when you block a sender.
  • Day 6 (Sunday, 12 PM – 8 PM): Stripe integration, deployed to Vercel, domain setup, wrote initial landing page copy. Hit "publish" at 7:58 PM.

Total time invested: roughly 34 hours across 6 days.

The Technical Decisions That Made Building InboxClean Possible in a Week

Speed came from ruthless scoping and choosing technologies I already knew:

Next.js App Router: Server components meant I could query the Gmail API without building a separate backend. One codebase, fewer moving parts.

Gmail API, not IMAP: IMAP would've meant parsing raw email headers myself. Gmail's API returns structured JSON. I traded some flexibility for massive time savings.

Headers only: I made a deliberate choice to never request email body content. InboxClean reads only From, Subject, Date, and List-Unsubscribe headers. This simplified the code and became a privacy feature — I can honestly tell users their email content is never accessed.

Vercel for hosting: Zero DevOps. `git push` deploys. I probably saved 4-5 hours not configuring servers.

No database initially: User data lived in Gmail. I didn't need to store emails locally — just read them, process them, done. (I added a database later for tracking usage limits.)

How I Found 34 Hours While Working Full-Time

I have a demanding job. Here's what actually worked:

  1. Mornings were off-limits. I tried once and was useless at work. Never again.
  2. Evenings from 7 PM onwards. After dinner, I'd set a timer for 3-4 hours of focused coding.
  3. Weekend was the multiplier. Saturday and Sunday gave me 14 uninterrupted hours combined.
  4. Scope creep resistance. I wrote down 20+ feature ideas during the week. Built zero of them. The MVP was: scan, group, unsubscribe, filter. Nothing else.
  5. No social media. I deleted Twitter and Reddit from my phone for the week. Probably saved 5+ hours.

The hardest part wasn't coding — it was saying "no" to features I wanted to build. Email analytics, scheduled reports, team features, dark mode — all got pushed to "someday."

What Surprised Me About Building a Gmail Tool

A few things I didn't expect:

Gmail's rate limits are generous. I worried about hitting API quotas, but Google allows 250 quota units per user per second for Gmail. Scanning 1,000 emails uses about 100 units total. No issues.

List-Unsubscribe is inconsistent. About 70% of marketing emails include the header. For the other 30%, I fall back to extracting unsubscribe links from the email body — which sometimes works, sometimes doesn't.

People really hate their inboxes. When I soft-launched to a few friends, the response wasn't "cool project." It was "I've been waiting for something like this for years." The frustration runs deep.

Privacy is a competitive advantage. Multiple users told me they'd avoided other inbox cleaners because of data concerns. When I explained InboxClean never reads email content, they signed up immediately. The concerns around services like Unroll.me are very real.

What I'd Do Differently Building InboxClean Today

If I started over with what I know now:

I'd build the filter feature first. The Inbox Shield — automatically blocking future emails — turned out to be what users love most. I almost cut it for scope reasons.

I'd add Stripe earlier. I left payment integration for Day 6 and almost ran out of time. Should've done it Day 3 or 4.

I'd start with Pro only. The free tier complicated the code (tracking usage limits, weekly resets). Starting as paid-only would've been simpler and validated demand faster.

I'd write tests. I shipped with zero automated tests. Six months later, I paid for this with a bug that accidentally unsubscribed a user from emails they wanted. Oops.

From Side Project to Real Product

InboxClean started as a personal tool. I genuinely built it because I needed it. The moment I scanned my own inbox for the first time and saw senders grouped by domain — Substack (34), LinkedIn (47), Quora (28) — I felt something click.

One click, and 47 LinkedIn emails were gone. One more click, and Gmail would auto-delete future LinkedIn emails forever. The inbox number dropped from 12,847 to 11,632 in about 90 seconds.

That's when I knew other people would want this too.

Six months later, InboxClean has processed over a million emails. Users block an average of 23 senders in their first session. The Pro subscribers who set up weekly auto-cleaning tell me Monday mornings feel different now — they wake up to an inbox that's already been tidied.

If you're thinking about building something: start with your own frustration. Build the smallest thing that solves it. Ship in days, not months. You can always add features later — but you can't get back the time you'd spend overthinking.

My inbox has 247 unread emails now. That's still too many. But it's a problem I can manage — because I built the tool to manage it.

Try InboxClean free

Scan 1,000 emails. Clean all of it. 60 seconds.

Scan my inbox →