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

> Remove your home address, phone and other private info from Google, and 950+ sites

- Site: https://optery.com
- Category: Privacy & Data Protection
- Platforms: Web app
- Verdict: **Serious undertaking** (42/100 vibecodeable)
- Estimated effort: 3-4 months of part-time work

## Verdict

Build a personal single-user subset focusing on 10 major people-search sites, but keep paying for the full service because maintaining 650+ scraping templates is a full-time job.

While a solo developer can easily write a few Puppeteer or Playwright scripts to query whitepages and whitepages-like clones, maintaining them is a punishing maintenance nightmare. Data brokers deliberately break layouts, alter form fields, and deploy aggressive Cloudflare bot walls every few weeks. Building a personal scanner for 5-10 specific broker sites is a rewarding weekend project, but replicating Optery's full 650+ site catalog requires an ongoing army of broken-script fixes.

### What you can't replicate

- Maintenance coverage across 650+ live data broker sites with constantly changing DOMs
- Assigned human privacy agent operations network
- SOC 2 Type II security audit certification and legal posture

## What it does

Privacy and data protection service that automates the discovery and removal of personal identifiable information from data broker and people-search websites.

### Core features

- Initial exposure scanning across data broker directories
- Automated form filling and opt-out submission engine
- Screenshot verification capture for exposure and removal reports
- User dashboard tracking removal status and progress
- Periodic re-scanning to catch repopulated profiles
- Custom removal request tooling for unlisted brokers

## The business

### Pricing

- Free Basic: $0/mo — Self-service opt-out tools and quarterly exposure reports.
- Core: $3.99/mo — Automated removals from 380+ sites.
- Extended: $14.99/mo — Automated removals from 555+ sites with human agent support.
- Ultimate: $24.99/mo — Full coverage across 635+ sites and custom removal requests.

### Funding

$6.0M raised.
- Seed Round (May 2023): $2.7M
- Prior Seed / Initial funding rounds
Investors: Bayhouse Capital, Y Combinator, Goodwater Capital, Global Founders Capital, Pioneer Fund, Soma Capital, TRAC

Founded 2020.
Team size: 51-200.

## The hard parts

- Whack-a-mole anti-scraping and CAPTCHA bypass across hundreds of diverse data broker layouts
- Fuzzy-matching identity resolution to prevent false positives when searching messy public records
- Headless browser infrastructure and screenshot rendering at scale
- Multi-step verification handling (email confirmation links and SMS codes)

## How to vibe code Optery

### Prerequisites

- Node.js (Free): Required for running TypeScript backend automation scripts and Next.js.
- GitHub (Free): Code repository and CI/CD deployment pipeline.
- Cloudflare account ($0-5/mo): Hosts the Next.js app and handles serverless cron triggers and browser rendering.

### Recommended AI tools

- Claude Code: Best-in-class agent for building complex multi-file scraping pipelines and database schemas.
- Cursor: Ideal for fine-tuning UI dashboards and debugging React component state.

### Stack

- Frontend: Next.js
- Backend: Next.js API routes & Cloudflare Workers
- Database: Turso
- Auth: better-auth
- Payments: None
- Other: Playwright, Resend

### Hosting

- Cloudflare (Hosting Next.js application, serverless cron workers, and browser rendering tasks): $0-5/mo
- Turso (Serverless SQLite database for storing user scan results and broker targets): $0/mo

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the Next.js application with Tailwind CSS, set up Turso SQLite database tables for users, search profiles, data brokers, and exposure reports.

```
Scaffold a new Next.js 16 project with TypeScript and Tailwind CSS v4. Set up Turso database connection using libSQL client. Create database schemas for 'users' (id, email, first_name, last_name, city, state, birth_year), 'brokers' (id, name, base_url, opt_out_url, active), 'exposures' (id, user_id, broker_id, profile_url, status, screenshot_url, found_at), and 'removal_logs' (id, exposure_id, status, updated_at). Configure better-auth for secure email/password authentication. Ensure the project structure is clean with separate directories for components, lib, and server actions.
```

2. **User Dashboard & Exposure Report UI** — Build the main user dashboard displaying exposure metrics, list of scanned brokers, status badges, and profile configuration inputs.

```
Create a responsive Next.js dashboard UI using Tailwind CSS that displays an overview of a user's data exposure risk score, total brokers scanned, profiles found, and profiles removed. Include a profile settings page where users can input their first name, last name, city, state, and birth year. Implement data tables with status filters (Exposed, Pending Removal, Removed) and modal dialogs to view exposure details and verification screenshots.
```

3. **Data Broker Scraper Pipeline (Playwright)** — Implement initial scanning scrapers for targeted people-search sites using Playwright headless browser automation.

```
Implement a scraping engine using Playwright in a server-side utility. Write specific extraction modules for 5 popular mock or public people-search directories (e.g. searching whitepages-style layouts by name and location). The script must navigate to the search URL, fill in first name, last name, and state, submit the form, parse search result cards to check if the target individual's profile exists, extract the profile URL, and capture a full-page screenshot saving it to object storage. Return structured JSON matching the exposure schema.
```

4. **Automated Opt-Out Form Submitter** — Build automated form-filling logic to execute opt-out requests on supported broker sites.

```
Develop an automated opt-out execution service using Playwright. For each supported broker in the database, write an action script that navigates to the broker's specific opt-out or removal page, fills out the required removal request form using user profile details, handles simple email confirmation prompts if necessary, and submits the form. Log the submission attempt in the removal_logs table and update the exposure status to 'Pending Removal'.
```

5. **Cron Jobs & Automated Monthly Re-Scans** — Set up Cloudflare Worker cron triggers to execute scheduled monthly scans and removal status verification checks.

```
Configure Cloudflare Workers cron triggers to execute a scheduled background task once a month. The worker should iterate through all active users, trigger the exposure scanning pipeline against their configured profiles, check whether previously removed profiles have repopulated, and send notification emails via Resend summarizing newly detected exposures or successful removals. Ensure proper error handling and rate-limiting to avoid getting blocked by target sites.
```

### Cost vs paying

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

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

**Ongoing costs (monthly):**

- Cloudflare Workers / Turso DB: $0-5/mo
- Resend Email API: $0/mo
- Total: ~$0-5/mo

- Paying for the SaaS instead: $24.99/mo (Ultimate plan)
- Build time: 40-60 hours
- AI tool credits: $20/mo (Claude Pro / Cursor)
- Break-even: Not applicable (built for personal learning and fun)

## Sources

- [Optery Official Website](https://optery.com)
- [Optery Pricing Page](https://optery.com/pricing)
- [Optery Business Pricing Page](https://optery.com/business-pricing)