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

> The CRM that works for you

- Site: https://folk.app
- Category: CRM / Sales Software
- Platforms: Web app, Browser extension, Desktop app
- Verdict: **Serious undertaking** (42/100 vibecodeable)
- Estimated effort: 4-6 weeks of dedicated development

## Verdict

You can build a functional personal CRM interface and local database subset, but dealing with resilient browser scrapers, multi-provider OAuth sync, and complex AI agent orchestration requires weeks of heavy development.

Replicating folk for personal use means sacrificing many integrations. While Next.js and Tailwind make quick work of the UI grid and Kanban pipelines, wiring up real-time email syncing, handling LinkedIn DOM layout breakages in your Chrome extension, and orchestrating background AI tasks will test your patience with unglamorous debugging.

### What you can't replicate

- Built-in compliance certifications like SOC 2 Type I
- Native enterprise partnerships with bulk data enrichment vendors
- The massive existing user network and organic product-led growth loops

## What it does

An AI-powered, collaborative Customer Relationship Management platform that functions as a unified workspace for managing contacts, companies, deals, pipelines, and automated multi-channel outreach.

### Core features

- Contact database with custom fields and tags
- Collaborative pipeline boards with drag-and-drop stages
- Waterfall contact enrichment integration
- Chrome extension for 1-click lead capture from social platforms
- AI sales assistants for follow-ups, recaps, and research notes
- Email campaign builder and sequence automation
- Activity history syncing (email, calendar, notes)

## The business

### Pricing

- Standard: $30/mo — Pipeline management, email campaigns, contact enrichment, and AI assistants.
- Premium: $60/mo — Most popular tier with custom objects, sequences, roles, and higher usage limits.
- Enterprise: $100/mo — Advanced security controls, group permissions, and dedicated onboarding.

### Funding

$12.3M raised.
- Seed Round (September 2021): ~$3.3M
Investors: Accel, Hexa (eFounders)

Founded 2020.
Team size: 50-100.

## The hard parts

- Maintaining a resilient Chrome extension against frequent DOM updates on LinkedIn and social networks
- Orchestrating robust waterfall data enrichment across multiple fragile third-party provider APIs
- Building a performant, Notion-style multi-view spreadsheet grid with custom transforms and inline editing
- Synchronizing real-time two-way interaction history across Google/Microsoft accounts reliably

## How to vibe code folk

### Prerequisites

- Node.js (free): Runtime environment for building and executing the full-stack Next.js application.
- GitHub (free): Repository hosting and continuous deployment integration.
- Supabase Account (free): Managed PostgreSQL database, vector storage, and native authentication infrastructure.

### Recommended AI tools

- Claude Code: Best-in-class terminal agent for scaffolding complex full-stack schemas, data tables, and background worker logic.
- Cursor: Ideal for fine-tuning dense React data grids, Kanban boards, and complex Tailwind UI component layouts.

### Stack

- Frontend: Next.js with Tailwind CSS and shadcn/ui
- Backend: Next.js Server Actions and Route Handlers
- Database: Supabase (PostgreSQL with Row Level Security)
- Auth: better-auth
- Payments: Stripe (optional for personal clone)
- Other: Inngest for background workflows and AI agent triggers, Resend for transactional emails

### Hosting

- Vercel (Hosting the Next.js frontend and serverless API endpoints): $0-20/mo
- Supabase (Relational database storage, user authentication, and vector embeddings): $0/mo

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the Next.js project with Tailwind CSS and design the core relational database schema for contacts, companies, deals, pipelines, and interactions.

```
Scaffold a new Next.js 16 application using App Router, TypeScript, and Tailwind CSS. Configure Supabase as the database client. Write a comprehensive migration script and Prisma or Drizzle/Supabase schema for a CRM: tables for users, workspaces, contacts (with fields like name, email, company_id, status, avatar), companies, pipelines, deal_stages, deals, and interactions (type, content, timestamp). Ensure proper foreign keys and index definitions on foreign keys and email fields. Add basic validation using Zod for all record mutations.
```

2. **Authentication & Workspace Setup** — Implement authentication using better-auth with Supabase, establishing multi-user workspace memberships and access boundaries.

```
Integrate better-auth into the Next.js application using Supabase as the persistent adapter. Implement email/password and Google OAuth login flows. Create an onboarding screen where new users create a workspace, and automatically assign them as workspace admins. Implement workspace middleware to restrict database queries to the active user's workspace ID, enforcing multi-tenancy rules across all server actions.
```

3. **Notion-Style Contact Grid & Pipeline Kanban** — Build an interactive data table with inline editing, custom sorting, filtering, and a synchronized Kanban board for sales pipelines.

```
Build a responsive CRM dashboard layout featuring two main views: a spreadsheet-like data grid for contacts using TanStack Table, and a drag-and-drop Kanban board for deals across pipeline stages using @dnd-kit. The data grid must support inline cell editing, column sorting, pagination, and multi-select filtering. Wire up server actions to update contact fields and move deals between stages instantaneously with optimistic UI updates.
```

4. **Waterfall Enrichment & Integration Mock** — Implement a modular backend service that simulates or integrates external waterfall data enrichment for missing contact properties.

```
Create a backend service module in Next.js that executes a waterfall enrichment workflow for a given contact email or domain. The service should sequentially query a mock or live provider API (e.g., Clearbit or Apollo style endpoints), handle rate-limiting and timeouts gracefully, fall back to secondary providers when a field is missing, and update the contact record in Supabase with newly discovered job titles, social profiles, and company sizes.
```

5. **AI Sales Assistants & Background Workers** — Set up background jobs via Inngest to parse interaction history and generate automated recap briefs and follow-up suggestions.

```
Integrate Inngest and the Anthropic/OpenAI API to build background AI sales assistants. Create a background workflow that triggers daily or upon new interaction logs: it scans recent contact interactions, calls the LLM to generate a structured relationship recap and follow-up recommendation, and saves the generated summary back to the contact record. Display these insights inside a dedicated slide-over panel on the contact detail view.
```

6. **Email Campaigns & Sequence Automation** — Build an outreach module enabling users to create email templates, schedule bulk campaigns, and track open/reply events.

```
Build an email outreach and campaign management module. Create database tables for email_templates, campaigns, and campaign_recipients. Implement a campaign creation wizard that allows users to select a group of contacts, draft personalized emails using template variables (e.g., {{firstName}}, {{company}}), and schedule delivery. Integrate with Resend API to dispatch emails asynchronously via background workers and track delivery status webhooks.
```

7. **Chrome Extension Lead Capture Shell** — Develop a lightweight browser extension companion to extract profile details from web pages and sync them back to the CRM API.

```
Develop a Chrome Extension (Manifest V3) with a popup UI and content scripts targeted at LinkedIn profiles. The content script should parse basic DOM elements (name, headline, current company) when a user clicks a floating 'Import to CRM' button injected onto the page. Use background service workers to securely transmit the extracted payload via authenticated fetch requests to your Next.js CRM API endpoint, creating a new contact record instantly.
```

### Cost vs paying

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

- Domain name: $12
- Total: ~$12 one-time

**Ongoing costs (monthly):**

- Vercel Hobby / Supabase Free: $0
- AI API tokens & Resend usage: ~$10/mo
- Total: ~$10/mo

- Paying for the SaaS instead: $60/mo (Premium per user)
- Build time: 45-60 hours
- AI tool credits: $20/mo (Claude Pro)
- Break-even: Not a business investment; built for personal utility and learning.

## Sources

- [folk Official Website](https://folk.app)
- [folk Pricing Page](https://folk.app/pricing)
- [Inside folk's journey to 5x year-on-year growth — Growth Unhinged](https://www.growthunhinged.com/p/inside-folks-journey-to-5x-year-on-year)