Can I vibecode Inbox Zero?
price $20/moyou'd save $240/yrbuild time weekendcategory emailreplaced by 0 people
KINDA
MOATintegrationsexecution polish
The personal Gmail loop is a weekend project: classify new mail, apply labels, draft replies, and surface bulk cleanup. The gap is making it trustworthy enough to sit inside a real inbox every day: OAuth setup and review, token refresh, provider quirks, continuous sync, retries, rate limits, security, and integrations. Inbox Zero itself is open source, so anyone wanting the full product should self-host the official code instead of rebuilding all of it.
In-List Ad$79/30 days
promote your product in the vibecoded listThe Build Prompt
copy it and go buildready to paste · 2,361 chars
Build me a self-hosted personal Gmail assistant that covers the core Inbox Zero loop. Use Node 22 + TypeScript + Fastify + better-sqlite3; server-rendered HTML and vanilla JS, no React. Run on localhost by default, with one Dockerfile for an always-on VPS behind Caddy. Support exactly one Gmail or Google Workspace mailbox through the Gmail API. Use a Google OAuth client from .env and request only gmail.modify and gmail.compose; store the refresh token encrypted with an APP_SECRET. On first run, import 14 days of mail; then poll Gmail history every two minutes and persist the last history ID. Deduplicate jobs by Gmail message ID, use exponential backoff for transient API failures, and surface a failed-jobs page. Rules live in rules.md: label definitions, priority senders, newsletters, cold email, and messages that need a reply. For each new thread, call the OpenAI API with the thread text plus rules.md and require validated JSON: labels, priority, needsReply, summary, and optional draftReply. Apply Gmail labels automatically, but never archive, delete, unsubscribe, or send without a click. When needsReply is true, create or update a Gmail draft in the original thread; never send mail from the app. Build one dashboard with Priority, Needs reply, Newsletters, Cold email, and Failed jobs views. Add a bulk-cleanup screen grouped by sender with message counts and List-Unsubscribe support; show the exact action and require confirmation. Add a small analytics page: daily received count, top senders, category totals, and estimated time saved. Store only IDs, classifications, job state, and draft metadata in SQLite; do not persist full message bodies after processing. Redact tokens and email contents from logs; add CSRF protection and bind the admin UI to localhost unless ADMIN_TOKEN is set. Include fixture-based tests for classification parsing, idempotent sync, label application, draft creation, and unsubscribe confirmation. Out of scope: Outlook, multiple accounts, mobile apps, Slack/Telegram, calendar context, attachment filing, multi-user accounts, billing, and telemetry. README: exact Google Cloud OAuth setup, scopes and redirect URI, .env example, how to revoke access, Docker/Caddy deployment, backups, and expected LLM costs. Return finished code with migrations and scripts for dev, test, and start; no pseudocode or TODOs.
In-List Ad$79/30 days
promote your product in the vibecoded listWhat you lose
- ✕Hosted infrastructure and managed operations from Inbox Zero
- ✕The original service's mature integrations and ecosystem
Prior art / alternatives
Why it still works
🔌 integrations · 💅 execution polish
In-List Ad$79/30 days
promote your product in the vibecoded list