Documents and notes decision

Pinboard

The core loop is small enough for a capable coding agent to produce a useful local version in one sitting. For Pinboard, run a fast private bookmark archive with tags, notes, and full-text search. The hard boundary is hosted longevity, simple api, archive service, and zero-maintenance reliability, plus capture polish, sync, and content partnerships.

Visit website
Subscription$1.83/month ✓ verified
Initial build3 hours
Monthly upkeep0.5 hours + $0
EvidenceAn open-source build exists

Open-source builds that already do this

Every project below is open source and already does this job today. Fork one, self-host it, or take the parts you need — the build prompt further down assumes an empty file, and this is the shortcut past that. Licences differ; check the one on each card before you ship.

What a replacement has to do

  • Save permitted web pages into a fast private bookmark archive, extract readable text, tag and annotate entries, search full text, and export the archive in open formats.

What it still won’t have

  • hosted longevity, simple API, archive service, and zero-maintenance reliability
  • publisher bypasses
  • cross-device mobile capture
  • high-quality recommendation graph
  • licensed full-text feeds

What remains hard

  • Execution quality
Read the build prompt

First-year cost

The build hours below are a category default, not an estimate for this product. Change them to your own numbers and the comparison follows.

Keep paying

Paying ischeaper in year one.

On cash alone, building overtakes the subscription at 1 seat.

Paid seatsseats

Money you would actually spend

Keep paying

Subscription price × seats × 12

Build it

AI build APIs + hosting

Time you would spend

What you would spend

What we assumed

The verdict above measures whether you could build it. This one is only about money.

Runnable build prompt

Not run yet
Build a personal replacement for Pinboard in an empty repository.
Use Next.js 15, TypeScript, SQLite, Drizzle ORM, Readability.js, and a local background worker; do not offer alternative stacks.
The core loop is: save permitted web pages into a fast private bookmark archive, extract readable text, tag and annotate entries, search full text, and export the archive in open formats.
Make the first run work locally with one documented command.
Store all user data locally by default and make export straightforward.
Put secrets in .env, ship .env.example, and never commit credentials.
Support manual URL save, RSS or Atom subscriptions, OPML import, and a simple bookmarklet.
Fetch politely with a clear user agent, rate limits, conditional requests, and robots-aware behavior.
Extract title, author, date, canonical URL, readable HTML, and selected images.
Provide inbox, unread, archive, favorites, tags, highlights, notes, and full-text search.
Keep the original URL prominent and never attempt to bypass authentication or paywalls.
Export OPML, bookmarks HTML, Markdown, and a complete JSON backup.
Include clear empty, loading, success, and recoverable error states.
Add input validation, safe filenames, and graceful handling of unavailable APIs.
Write focused tests for the core transformation and one end-to-end happy path.
Create a README with setup, architecture, permissions, data location, and backup steps.
Do not add accounts, billing, telemetry, analytics, or a hosted control plane.
Deliberately leave out paywall circumvention.
Deliberately leave out licensed publisher content and recommendation networks.
Deliberately leave out native mobile clients and seamless commercial sync.
Finish by running the tests and listing the exact commands used.
How we checkedno sources · evidence score 86