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

> Get the most out of what you read

- Site: https://readwise.io
- Category: Knowledge Management / Reading Retention
- Verdict: **Solid side project** (68/100 vibecodeable)
- Estimated effort: 2-3 weeks part-time

## Verdict

Build a personal highlight vault and spaced-repetition reviewer over a weekend, but prepare for recurring maintenance headaches keeping e-reader sync integrations alive.

Readwise is a phenomenal product because of its ruthless focus on integrations and clean daily email habit loops. For a personal clone, you can easily build a Next.js web app that stores your highlights in PostgreSQL, runs a daily cron job via Resend to email you random highlights, and provides a clean search dashboard. However, you will immediately hit friction when trying to automatically sync highlights from Kindle and Apple Books without official APIs. If you are willing to rely on manual CSV/markdown imports or simple web article clipping rather than flawless proprietary e-reader sync, a solid personal-use clone is entirely within reach.

### What you can't replicate

- Native, frictionless automated sync pipelines for Kindle and Apple Books
- The years of accumulated platform polish and edge-case handling across thousands of reading formats

## What it does

Knowledge management and reading retention platform that consolidates highlights and notes from e-readers, implements spaced repetition review, and syncs to note-taking apps.

### Core features

- Highlight ingestion sync from Kindle, Apple Books, Instapaper, and EPUBs
- Spaced repetition spaced review scheduling algorithm
- Daily review email delivery and app notifications
- Full-text search across highlight library with tags and annotations
- Two-way export sync to external note-taking tools (Notion, Obsidian)
- Read-it-later web article ingestion with text cleaning and article parsing
- AI reading assistant features for summarization and querying

## The business

### Pricing

- Readwise Lite: $5.59/mo — Billed annually; covers daily review, search, highlight sync from all sources, and note exports.
- Readwise Full / Reader Plan: $9.99/mo — Billed annually; includes full web app organization and Readwise Reader app access.

Founded 2017.
Team size: 10-20.

## The hard parts

- Maintaining fragile unofficial ingestion pipelines for closed e-reader ecosystems (Kindle clippings, Apple Books sync)
- Implementing robust local-first offline search and cross-device sync without data conflicts
- Clean boiler-plate stripping and full-text rendering for arbitrary web URLs and PDFs
- Reliable spaced repetition scheduling queues running at scale

## How to vibe code Readwise

### Prerequisites

- Node.js (free): Required runtime for running the Next.js frontend and build tools.
- GitHub (free): Source control and automated deployment trigger to Vercel.
- Resend Account (free tier covers personal use): Required for sending the daily highlight spaced-repetition email digests.

### Recommended AI tools

- Claude Code: Best-in-class terminal agent for scaffolding the full Next.js application, database schema, and cron jobs end-to-end.
- Cursor: Ideal for fine-tuning UI components, search filtering logic, and highlight card styling.

### Stack

- Frontend: Next.js with Tailwind CSS
- Backend: Next.js Server Actions / API Routes
- Database: Neon (Serverless Postgres)
- Auth: better-auth
- Payments: None (Personal use clone)
- Other: Vercel AI SDK, Resend, Firecrawl

### Hosting

- Vercel (Hosting the Next.js web application and executing scheduled cron jobs.): $0/mo (Hobby tier)
- Neon (Serverless PostgreSQL database storing highlights, books, tags, and review schedules.): $0/mo (Free tier)

### Build guide

1. **Project Scaffolding & Database Schema** — Initialize the Next.js project with Tailwind CSS, configure better-auth for single-user security, and set up the PostgreSQL schema via Neon for books, highlights, tags, and review logs.

```
Create a new Next.js 16 project with Tailwind CSS, TypeScript, and App Router. Set up better-auth connected to a Neon PostgreSQL database using Drizzle ORM. Define the database schema with tables for 'sources' (id, title, author, category, cover_image), 'highlights' (id, source_id, text, note, location, is_favorite, created_at), 'tags' (id, name), 'highlight_tags' (highlight_id, tag_id), and 'review_logs' (id, highlight_id, reviewed_at, rating). Implement a secure login flow restricted to your personal email address so no public user signups are allowed.
```

2. **Highlight Ingestion & Import Pipeline** — Build manual upload handlers and CSV/JSON parsers to ingest highlights from Kindle clippings and export files, alongside a Firecrawl integration for clipping web articles.

```
Build an import dashboard page in the Next.js app where I can paste or upload text files (such as Kindle My Clippings.txt or exported CSVs). Write a robust parser service in TypeScript that parses Kindle clipping formats into structured book and highlight records, inserting them into Neon without creating duplicates. Add a URL input field that uses the Firecrawl API to extract clean article text, metadata, and main content for read-it-later ingestion.
```

3. **Library Dashboard & Full-Text Search** — Create a responsive dashboard allowing you to browse, search, filter, tag, and annotate your highlight collection.

```
Develop a responsive dashboard interface with a sidebar for navigation (Library, Articles, Daily Review, Tags). Build a main library view displaying highlights as clean cards with source attribution, tags, and inline note-editing capabilities. Implement full-text search across highlight text and notes using PostgreSQL full-text search capabilities, with client-side filtering by tag, source, and favorites.
```

4. **Spaced Repetition & Daily Review Engine** — Implement a spaced repetition review interface and a daily automated email dispatcher using Vercel Cron and Resend.

```
Implement a daily review page that selects 5 random highlights from books based on a simple spaced repetition algorithm or least-recently-reviewed logic. Create a Vercel cron endpoint secured with a CRON_SECRET that triggers every morning at 7:00 AM, queries 5 highlights from the database, formats them into a clean HTML email template using Resend, and sends the daily review digest to my email address.
```

5. **Export Sync to Markdown & Obsidian** — Add an export feature that generates structured Markdown summaries of books and highlights formatted for Obsidian vault syncing.

```
Build an export API route and UI component that compiles all highlights and notes for a given book into a neatly formatted Markdown file containing YAML frontmatter (title, author, date), metadata, and bulleted highlight lists. Add a button to copy the Markdown to clipboard or download it as a .md file compatible with Obsidian vaults.
```

6. **AI Reading Assistant & Polish** — Integrate the Vercel AI SDK to add AI summarization and Q&A features over your highlight library.

```
Integrate the Vercel AI SDK into a sidebar chat interface on the dashboard using Anthropic Claude via API. Allow the AI assistant to query your highlight database using tool-calling so you can ask questions like 'What did I highlight about productivity last month?' and receive synthesized answers with direct citations to your highlight library. Polish UI loading states, error boundaries, and mobile responsiveness.
```

### Cost vs paying

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

- Custom domain (optional): $12/yr
- Total: ~$12 one-time

**Ongoing costs (monthly):**

- Vercel & Neon free tiers: $0/mo
- Resend & Firecrawl free tiers: $0/mo
- OpenAI/Anthropic API usage for AI reader assistant: ~$2/mo
- Total: ~$2/mo

- Paying for the SaaS instead: $9.99/mo (Readwise Full)
- Build time: 15-20 hours
- AI tool credits: $20 (Claude Pro / Cursor Pro)
- Break-even: Never (built for personal learning and custom workflow control)

## Sources

- [Readwise Official Website & Features](https://readwise.io)
- [Readwise Pricing Page](https://readwise.io/pricing)
- [Readwise Reader Documentation](https://docs.readwise.io)