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

> AI meeting assistant and notetaker

- Site: https://fathom.ai
- Category: Productivity
- Platforms: macOS app, Windows app, Web app
- Verdict: **Serious undertaking** (38/100 vibecodeable)
- Estimated effort: 6-8 weeks of part-time work for a web-only subset, or 4+ months if attempting native desktop capture

## Verdict

Build a web-based transcript analyzer and RAG tool, but keep paying for the desktop audio capture app. The hardest subsystem is building cross-platform native audio capture that reliably records Zoom, Meet, and Teams without violating OS permissions.

Replicating Fathom as a solo developer with AI coding tools is a serious undertaking primarily because of the desktop app layer. While you can build a gorgeous Next.js dashboard that ingests uploaded audio, transcribes it via Whisper, summarizes it with Claude, and queries it with vector search in a few weekends, building a bulletproof macOS/Windows native audio capture engine that sits between system audio devices and video conferencing streams without dropping packets or triggering security blocks is an engineering swamp. Furthermore, maintaining robust API sync with enterprise CRMs like Salesforce and HubSpot will constantly break due to schema changes and rate limits.

### What you can't replicate

- Official native integrations and marketplace distribution on Zoom, Teams, and Google Meet
- Enterprise compliance badges (SOC 2 Type II, HIPAA signed BAAs)
- Ecosystem network effects across 300,000+ companies

## What it does

Fathom records, transcribes, summarizes, and structures virtual and desktop conversations, extracting action items and enabling conversational Q&A across past calls.

### Core features

- Desktop audio capture (bot-free and bot-based recording)
- Speech-to-text transcription pipeline
- AI summarization and action item extraction templates
- Conversational RAG across past meeting transcripts ('Ask Fathom')
- Searchable meeting library with highlight clipping and playlists
- Bi-directional CRM sync (HubSpot, Salesforce) and webhooks

## The business

### Pricing

- Free: $0/mo — Unlimited call recordings, transcriptions, and instant AI summaries.
- Premium: $20/mo — Advanced summaries, AI action items, and conversational meeting assistant.
- Team: $19/mo per user — Shared visibility, global search, and playlists across team calls.
- Business: $34/mo per user — CRM sync, deal view, and coaching metrics.
- Enterprise: Custom — Advanced security, SSO, SCIM, and dedicated support.

### Funding

$21.8M raised.
- Seed ($4.7M)
- Crowdfunding ($2M)
- Series A ($17M)
Investors: Telescope Partners, Maven Ventures, Zoom Apps Fund, Y Combinator

Founded 2020.
Team size: 40-170+.

## The hard parts

- Cross-platform desktop audio hooks (capturing system audio and microphone cleanly without OS permission crashes)
- Real-time audio chunking, compression, and robust streaming to STT APIs
- Low-latency vector search and cross-document RAG across hundreds of hours of transcripts
- Fragile third-party API rate limits and field schema mapping for heavy enterprise CRMs

## How to vibe code Fathom

### Prerequisites

- Node.js (free): Runtime for Next.js web application and backend scripts
- GitHub (free): Version control and deployment pipeline source
- OpenAI API Key (pay-as-you-go): Required for Whisper transcription services

### Recommended AI tools

- Claude Code: Best-in-class terminal agent for scaffolding full-stack apps and debugging complex asynchronous audio pipelines
- Cursor: Ideal for fine-tuning the React dashboard UI and managing component-level edits

### Stack

- Frontend: Next.js with Tailwind CSS and shadcn/ui
- Backend: Next.js API routes / server actions
- Database: Neon (Serverless Postgres with pgvector)
- Auth: better-auth
- Payments: Stripe
- Other: OpenAI API (Whisper + GPT), Anthropic API (Claude), Resend

### Hosting

- Vercel (Hosting the Next.js web application frontend and API routes): $0-20/mo
- Neon (Serverless Postgres database with vector extension support for RAG search): $0/mo

### Build guide

1. **Scaffold Web Application & Database Schema** — Initialize a Next.js project with Tailwind CSS, shadcn/ui, and better-auth. Set up the Neon Postgres database with pgvector extensions to store users, meetings, raw transcripts, and vector embeddings.

```
Create a new Next.js 16 project with TypeScript, Tailwind CSS, and App Router. Configure better-auth for email/password authentication with a Postgres adapter. Set up a Neon Postgres connection using Drizzle ORM, defining tables for users, meetings (id, title, duration, audio_url, created_at), transcripts (id, meeting_id, speaker, text, timestamp_start, timestamp_end), and summaries (id, meeting_id, content, action_items jsonb). Ensure pgvector extension is enabled on the database schema for future embeddings storage.
```

2. **Build Audio Upload and Transcription Pipeline** — Implement a file upload interface for audio recordings (MP3/WAV/M4A) and wire up OpenAI's Whisper API to transcribe audio files into structured chunks with timestamps.

```
Build a React dropzone component in the Next.js frontend allowing users to upload meeting audio files. Implement a backend API route that accepts the file, sends it to the OpenAI Whisper API with timestamp granularity enabled, and parses the response into discrete transcript objects with speaker labels, start times, end times, and text. Save these records into the transcripts table and handle file storage via Cloudflare R2 or local uploads for development.
```

3. **Implement AI Summarization and Action Item Extraction** — Create background routines or server actions that feed completed transcripts into Claude or GPT models to generate structured summaries, key moments, and extracted action items.

```
Write an AI processing service using the Anthropic API (Claude Sonnet). When a transcription finishes, retrieve the full transcript text, pass it to Claude with a system prompt designed for executive meeting summaries, and instruct it to return a structured JSON object containing an executive summary, key decisions, and a list of action items with assignees. Store this output in the summaries table and display it cleanly on the meeting detail page.
```

4. **Build 'Ask Fathom' Vector RAG Search Engine** — Generate vector embeddings for meeting transcript segments, store them using pgvector, and build a conversational chat interface allowing users to query across all past meetings.

```
Implement a retrieval-augmented generation (RAG) search feature ('Ask Fathom'). Write a background function that chunks meeting transcripts, generates text embeddings using OpenAI's embedding model, and stores them in a vector column in Neon Postgres. Build a chat interface API route that takes a user query, embeds it, performs a cosine similarity search across all user meetings to retrieve relevant context chunks, and streams an answer back using Claude with source meeting citations.
```

5. **Add Search, Playlists, and Export Polish** — Build global search across meetings and transcripts, highlight clipping tools, and export/share capabilities for meeting insights.

```
Add a global search bar and filter interface allowing users to search meetings by keyword, attendee, or date. Create a highlight clipping feature that lets users select transcript segments to bundle into custom playlists. Implement export options to copy summaries to clipboard or send summary emails via Resend.
```

### Cost vs paying

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

- Domain registration: $12
- Initial AI API credits (OpenAI/Anthropic): $25
- Total: ~$37 one-time

**Ongoing costs (monthly):**

- Vercel Hobby & Neon Free Tier: $0
- AI API Usage (Whisper/LLM calls): ~$10/mo
- Total: ~$10/mo

- Paying for the SaaS instead: $20/mo
- Build time: 45 hours
- AI tool credits: $20/mo
- Break-even: 2 months of active usage

## Sources

- [Fathom Official Website](https://fathom.ai)
- [Fathom Pricing Page](https://fathom.ai/pricing)