# How to Vibe Code Your Own Boomerang (and Stop Paying for It)

> Email productivity, calendar scheduling, and inbox management suite

- Site: https://boomerangapp.com
- Category: Email Productivity & Scheduling
- Verdict: **Serious undertaking** (45/100 vibecodeable)
- Estimated effort: 4-6 weeks of focused building and debugging

## Verdict

Build a personal web dashboard clone with standalone email scheduling and calendar links, but skip the fragile browser extension DOM injection.

Replicating Boomerang's core value as a personal web dashboard (managing your own scheduled emails, tracking opens, and generating booking links via API) is entirely feasible with AI coding agents. However, trying to clone the browser extension that injects custom buttons directly into Gmail or Outlook Web Access is an exercise in maintenance misery. Every time Google or Microsoft updates their webmail DOM, your extension breaks. Furthermore, handling IMAP/SMTP sync and OAuth token management securely requires navigating strict provider scopes and security reviews.

### What you can't replicate

- The 16-year browser extension distribution footprint
- Native DOM integration inside millions of Gmail and Outlook accounts without breaking on updates
- SOC 2 Type 2 security certification and enterprise trust

## What it does

Boomerang helps users manage their email workflows through send-later scheduling, response tracking reminders, inbox pausing, and integrated calendar booking tools directly inside webmail clients.

### Core features

- Send-later email scheduling queues
- Response tracking and automatic return-to-inbox reminders
- Inbox pause mechanism for holding incoming mail
- Calendar scheduling link generator ('Bookable Schedule')
- Respondable AI response prediction assistant
- Read and click tracking pixels and link wrappers

## The business

### Pricing

- Basic (Free): Free
- Personal: $4.98/mo
- Pro: $14.98/mo
- Premium: $49.98/mo

### Funding

$7.7M raised.
- Seed round ($4.9M in Jan 2024)
- Early seed / 500 Startups Batch 17
Investors: LightShed Ventures, 500 Startups

Founded 2010.
Team size: ~19 employees.

## The hard parts

- Building a cross-browser extension that reliably injects UI elements into frequently mutating webmail DOMs (Gmail/Outlook)
- Maintaining high-reliability background worker queues to dispatch emails or trigger inbox sweeps precisely on schedule without client apps open
- Deeply integrating Google Calendar and Microsoft Graph APIs for free/busy slot resolution and conflict handling
- Achieving strict enterprise security and compliance standards (SOC 2 Type 2) required for parsing raw user email streams

## How to vibe code Boomerang

### Prerequisites

- Node.js (free): Required runtime for building the Next.js application and tooling.
- GitHub (free): Source control and deployment pipeline integration.
- Google Cloud Console Account (free): Required to configure OAuth credentials and Gmail/Calendar API access for email syncing.

### Recommended AI tools

- Claude Code: Best-in-class coding agent for scaffolding full-stack applications, managing API routes, and writing complex background worker logic.
- Cursor: Ideal AI-native editor for iterative frontend UI work on the dashboard and scheduling views.

### Stack

- Frontend: Next.js with Tailwind CSS and shadcn/ui
- Backend: Next.js Server Actions and API Routes with Inngest for background queues
- Database: Turso (SQLite at the edge) via Drizzle ORM
- Auth: better-auth
- Payments: None (Personal use clone)
- Other: Resend for email delivery, Anthropic API for AI response feedback, Google/Microsoft Calendar APIs

### Hosting

- Vercel (Hosting the Next.js web application and handling serverless API functions): $0/mo (Hobby Tier)
- Turso (Serverless SQLite database storage for user schedules, tracked emails, and settings): $0/mo (Free tier)
- Inngest (Durable background execution for send-later queues and return-to-inbox reminder sweeps): $0/mo (Free tier)

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the Next.js application with Tailwind CSS, shadcn/ui components, Drizzle ORM, and Turso. Define database schemas for users, scheduled_emails, calendar_events, and tracking_logs.

```
Create a new Next.js project using App Router and TypeScript. Install Tailwind CSS and configure shadcn/ui. Set up Drizzle ORM to connect to a Turso SQLite database over HTTP. Define the database schema with tables for users (id, email, oauth_tokens), scheduled_emails (id, user_id, recipient, subject, body, send_at, status), calendar_bookings (id, user_id, slot_start, slot_end, attendee_email, status), and tracking_logs (id, email_id, event_type, ip, timestamp). Ensure proper foreign key constraints and indexes on scheduled dates.
```

2. **Authentication & OAuth Integration** — Implement user authentication using better-auth and integrate Google/Microsoft OAuth scopes for Gmail and Calendar access.

```
Configure better-auth in the Next.js application with email/password and Google OAuth providers. Request offline access and specific scopes for Gmail API (https://www.googleapis.com/auth/gmail.send, https://www.googleapis.com/auth/gmail.readonly) and Google Calendar API. Store encrypted OAuth access and refresh tokens securely in the user session and database. Build a settings page UI showing connection status for mail and calendar services.
```

3. **Send-Later & Durable Background Queue** — Set up Inngest to handle background job scheduling for emails queued to be sent at a future date.

```
Integrate Inngest into the Next.js backend. Create a server action that accepts composed email details and a target 'send_at' timestamp, saves a record to the scheduled_emails table with status 'pending', and triggers an Inngest background function. The Inngest function should sleep until the 'send_at' time, verify the user's valid OAuth token, dispatch the email via the Gmail API, and update the database status to 'sent'. Handle token refresh failures and retry logic gracefully.
```

4. **Response Tracking & Inbox Reminders** — Implement tracking pixels for read receipts and background workers that check for replies to sent emails.

```
Build an email tracking endpoint that injects a 1x1 transparent tracking pixel image URL (e.g., /api/track/[id]) into outgoing emails and wraps links for click tracking. When hit, record the event in tracking_logs. Create a scheduled cron job using Inngest that runs hourly to scan sent emails where 'return_if_no_reply' is set, query the Gmail API thread status for replies, and if no response is detected within the set timeframe, move the email back to the top of the user's inbox or send a reminder notification.
```

5. **Calendar Scheduling & Booking Links** — Build a bookable schedule interface where external users can select available time slots synced with Google Calendar.

```
Create a public booking page route (/book/[username]) that fetches free/busy availability from the user's Google Calendar API for the next 14 days, respecting working hours and buffer times. Build a React component allowing visitors to select an open slot, enter their name and email, and confirm. Upon confirmation, the backend should create a calendar event via the Google Calendar API, send confirmation emails to both parties via Resend, and store the booking in the database.
```

6. **Respondable AI Assistant** — Integrate the Anthropic API to analyze draft emails and provide real-time feedback on tone, length, and reply probability.

```
Build an API route /api/ai/respondable that accepts an email subject line and body text. Use the Anthropic SDK with Claude Haiku to analyze the text based on professional communication heuristics (subject length, question count, sentiment, readability score) and return a JSON object containing a predicted reply probability percentage and actionable improvement suggestions. Integrate this into the email compose dashboard view as a live sidebar metric.
```

7. **Dashboard UI & Polish** — Construct the main web dashboard to manage scheduled emails, active response tracking, inbox pause rules, and calendar settings.

```
Build a polished dashboard UI using shadcn/ui components with tabs for 'Scheduled', 'Tracking', 'Inbox Pause', and 'Calendar Settings'. Implement data tables with sorting, filtering, and bulk actions for pending scheduled emails. Add an 'Inbox Pause' toggle switch that updates database rules to hold incoming webhook notifications from Gmail when enabled. Ensure responsive design, loading skeletons, and error toast notifications throughout.
```

### Cost vs paying

**Starting costs (one-time):**

- AI Coding Assistant subscription: $20
- Total: ~$20 one-time

**Ongoing costs (monthly):**

- Vercel / Turso / Inngest hosting: $0
- Total: $0/mo

- Paying for the SaaS instead: $14.98/mo (Pro tier)
- Build time: 35-50 hours
- AI tool credits: $20 (One month of Claude Pro / Cursor)
- Break-even: Free forever (personal self-hosted build)

## Sources

- [Boomerang Official Website](https://boomerangapp.com)
- [Boomerang for Gmail Plans and Pricing](https://www.boomeranggmail.com/subscriptions.html)
- [Boomerang Help Center - iOS Pricing & FAQ](https://help.boomerangapp.com)