For one person, Raindrop is a database of URLs with metadata, collections, a search index and a saved copy of each page. All of that fits SQLite with FTS5 and a readability pass, and an agent can build it, including a browser extension for saving the current tab, in one session. You also don't have to start from nothing: Karakeep, linkding and Linkwarden do the same job self-hosted. What you give up is polish on other devices, because the phone apps, share sheets and Safari and Firefox extensions are the actual product.
Before you buildRaindrop Free already includes unlimited bookmarks, collections and highlights. You only need a replacement for Pro's full-text search, saved copies and backups.
Build me a personal bookmark manager to replace Raindrop.io. Requirements: - Node.js 22 + TypeScript: a Fastify server and a React front end built with Vite. `npm start` serves http://localhost:4620. - Storage: better-sqlite3 in ./data/bookmarks.db with an FTS5 index over title, note, tags, URL and saved page text. Page copies go to ./data/archive/<id>/. - Saving a URL: fetch it, read title, description, favicon and og:image, extract the article with `@mozilla/readability` + `jsdom`, and keep the cleaned HTML with its images downloaded next to it, so the page still opens when the site dies. Run this in a background queue so saving returns at once. - Collections nested up to 3 levels, tags, favourites and one note per bookmark; drag a bookmark onto a collection to move it. Grid, list and headline views; sort by date, title or domain. - Search box with `tag:`, `in:<collection>` and `domain:` operators plus plain text over FTS5; results show a highlighted snippet. - Highlights: select text in the saved copy to store a coloured highlight with an optional note, and list every highlight of a bookmark. - Maintenance page: a duplicate finder (same URL after dropping utm_* parameters and a trailing slash) and a broken-link check (HEAD with GET fallback, 10 s timeout, 5 at a time) that tags dead links. - Import the HTML or CSV export from Raindrop (folders become collections; keep tags, notes and created dates) and export both formats again. - extension/: a Manifest V3 Chrome extension that saves the current tab to localhost using a shared token from .env. - Single user: one password in .env and a signed cookie. No accounts, no telemetry, local-first. - Out of scope: sharing, mobile apps, reminders, AI tagging. - README: setup, where the data lives, loading the extension unpacked, and backing up ./data.
Opens your agent with the prompt filled in, you press enter. Or copy it and paste it into an empty folder.
The first prompt builds the core. Run these one at a time in the same folder to grow it into your own Raindrop.io.
Make the bookmark manager in this folder installable as a PWA with a share target. Requirements: - Add a web manifest with a share_target that accepts url, title and text via POST /share. - Serve a service worker that caches the app shell only, never API responses. - /share saves the bookmark through the existing queue and shows a confirmation screen with a collection picker. - Serve over HTTPS only (document a Caddy or Tailscale setup); refuse /share from non-HTTPS origins. - Update the README with the install steps for Android Chrome and iOS Safari, noting that iOS does not support share targets.
Add reminders to the bookmark manager in this folder. Requirements: - A "Remind me" menu on a bookmark: tomorrow, this weekend, next week or a picked date and time. - Store reminders in SQLite and check them every minute. - When one is due, send a notification through ntfy (NTFY_URL and NTFY_TOPIC in .env) with the title and a link back to the bookmark. - A "Reminders" view listing upcoming and past ones, with snooze for one day. - Update the README with the ntfy setup.
Add tag suggestions to the bookmark manager in this folder. Requirements: - After a page is saved, send its title, description and the first 3,000 characters of its text to a model chosen in .env (Anthropic with ANTHROPIC_API_KEY, or Ollama with OLLAMA_URL). - Ask for up to 5 tags, preferring ones that already exist in the database. - Show them as one-click chips on the bookmark; never apply a tag automatically. - Skip pages whose domain is on a NO_AI_DOMAINS list in .env. - Update the README with what is sent to the model.
The free plan already covers saving and organizing, so Pro buyers pay for search inside page text and PDFs, saved copies that survive link rot, and daily backups. At three dollars it is cheaper than the time spent keeping a self-hosted instance, a phone workflow and an archive running.
Estimate · Runs on your machine for nothing; a small VPS for access from your phone is about $5 a month. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | Unlimited bookmarks, collections, highlights and devices; sharing and collaboration; 100 MB of file uploads a month; apps for Mac, iOS, Android and the main browsers. |
| Pro | $3 | $2.33 | Adds full-text search, a web archive of saved pages, reminders, annotations, a duplicate and broken-link finder, daily backups, an AI assistant and MCP access, and 10 GB of uploads a month. |
Free keeps unlimited bookmarks, collections, highlights and devices, with 100 MB of uploads a month and import and export.
Yes. An AI coding agent such as Claude Code, Codex or Cursor can build a usable personal version in one session with the prompt on this page, running on your own machine.
About $3 a month on the Pro plan, $36 a year (checked 2026-10-14).
Native iOS, Android and Mac apps with a working share sheet; Safari and Firefox extensions; Sharing collections and collaborating with other people; Reminders and the AI assistant; Backups and a web archive that someone else keeps alive. If any of those matter to you, keep paying.
Yes: Karakeep (open source), Linkwarden (open source), linkding (open source).