Clerko
Reads your Gmail and hands you only the emails that need a reply, each with a draft ready to approve. The renewals, receipts and newsletters get filtered out.
- Status
- Early access
- Year
- 2026
- Role
- Solo project
- Built with
- Next.js, TypeScript, Anthropic Claude, Gmail API, Postgres, Stripe
The problem
Every morning I swipe away twenty or thirty emails before I’m properly awake. Auto-renewals, receipts, newsletters, webinars I’ll never attend. And buried in there, the one or two that actually needed me: a reply someone’s waiting on, a form due Friday. The volume was never the issue. The problem is that swiping is how you miss things, because the important emails don’t look any different from the noise until you’ve read all of it.
What it does
You connect Gmail and Clerko reads what comes in, then hands you one short list: the emails that need a reply, and the things you have to follow up on or remember. Everything else (newsletters, receipts, notifications, automatic renewals) gets filtered out. Every email that needs a reply comes with a draft already written in your voice, which you approve in one click. The draft saves to Gmail, and nothing sends without you.
How it’s built
A Next.js app sitting on top of the Gmail API. Each new email is classified by Claude (Haiku for triage, Sonnet for drafting), cached per thread by Gmail’s historyId so it only re-reads what actually changed. Drafts and settings persist in Postgres, and Stripe handles subscriptions. The whole thing leans on one hard rule: nothing happens without your approval.
Why I built it
I wanted my inbox already read by the time I picked up my phone. I’ve tried folders, filters and inbox-zero systems, and they all put the sorting back on me. The bet here is that the triage should just happen. I run my own mornings on it now, and the waitlist is how I find out whether anyone else feels this the same way.