Instapaper

instapaper.comcontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

Save articles to read later, stripped to text and synced across devices, with highlights, full-text search and text-to-speech.

Promptfree, for everyone, and the only version there is
Build me a read-later service that replaces Instapaper: an article saved in one tap, stripped to text, readable offline, with my highlights.

STACK
- Node 20+ with Fastify, server-rendered HTML
- SQLite through better-sqlite3, WAL mode, with FTS5 for search
- A worker for fetching and extraction
- A browser extension and a bookmarklet; a PWA for reading offline
- Caddy in front

THE DATA MODEL
- articles: id, url, canonical_url, url_hash, title, author, site_name, published_at, lead_image_path, content_html, text_content, word_count, reading_minutes, language, extraction_status, extraction_method, fetched_at
- saves: id, user_id, article_id, folder_id, saved_at, archived_at, deleted_at, is_starred, progress_percent, last_read_at, note
- highlights: id, save_id, text, prefix, suffix, start_offset, end_offset, colour, note, created_at
- folders, tags, save_tags
- assets: id, article_id, original_url, path, sha256, width, height — images stored locally
- Content stored once per canonical URL and shared between users; the save is the personal part

SAVING
- A bookmarklet, a browser extension, a share target on mobile, and an email address that accepts a forwarded page
- Saving returns immediately and extracts in the background; the article appears within seconds with a clear state while it is working
- Deduplicate on the canonical URL — resolve redirects, strip tracking parameters, and honour the page's own canonical tag
- Save the page as it is if extraction fails, rather than saving nothing

EXTRACTION, WHICH IS MOST OF THE PRODUCT
- Fetch politely: an identifiable user agent with a URL explaining it, a timeout, a size cap, and no redirects to private addresses
- Extract the article with a readability algorithm: score blocks by text density and link density, keep the winner, drop navigation, sidebars, related-article boxes and newsletter prompts
- Keep what belongs to the article: headings, paragraphs, lists, blockquotes, code, tables, figures with their captions, and inline emphasis. Losing a code block or a table is what makes an extraction useless for technical writing
- Sanitise everything on the server; store the cleaned HTML and a plain-text version alongside it
- Per-site rules for the ones that resist, kept as data with a fixture and a test each. A general algorithm gets you eighty per cent; the last twenty is a hundred small rules and that is why this is the hardest part
- Record which method succeeded, so a bad extraction is diagnosable and re-runnable
- Images downloaded and stored locally, resized, so the article survives the site disappearing — which is the real reason to have saved it
- Paywalled and login-required pages: detect and say so honestly. Do not build circumvention

READING
- Text on a comfortable measure, with the font, size, line height, margin and theme all adjustable and remembered
- Dark, light and sepia; the last one is not decoration, it is what people read at night
- Progress saved continuously and synced, so a phone and a laptop agree on where you are
- Estimated reading time from word count, with the rate stated
- Keyboard shortcuts for the whole loop: next, previous, archive, star, highlight
- Offline: the current list and their content cached in the browser, so a train journey works

HIGHLIGHTS AND NOTES
- Select and highlight, with a note attached
- Anchored by text with a prefix and a suffix as well as offsets, so a highlight survives the article being re-extracted. Offsets alone break the first time a rule changes
- A page of all highlights, searchable, exportable as Markdown
- Export in a shape another tool can read, because highlights are the thing people most want to keep

ORGANISING AND FINDING
- Folders, tags, starred, archived, and a real trash with a stated retention
- FTS5 over titles, authors, full text and notes, with filters by folder, tag, site, date and read state
- Sorting by saved date, published date, length, and by shortest — which is the list you read when you have ten minutes

SPEECH
- Text to speech using the browser's own voices, with speed control and a resume position
- No third-party speech service; the article text stays here

ESCAPE
- Import from the common exporters, including a plain list of URLs
- Export everything: articles as HTML or Markdown, highlights, and the metadata, in one command
- A reading list is years of intention and must never be trapped

OPERATIONS
- .env: DATABASE_PATH, STORAGE_PATH, BASE_URL, SESSION_SECRET, USER_AGENT_URL, HASH_SALT
- Migrations on boot, each once
- Fetches rate-limited per host, with backoff, because being a good citizen matters when you are fetching other people's pages
- Nightly backup off the machine, restore script
- Health endpoint reporting extraction queue depth and the failure rate

WHAT MATTERS MOST
Extraction quality and highlight anchoring. Save fifty articles from the sites you actually read and fix every extraction that came out wrong before building anything else — a read-later service that mangles half of what it saves is a read-later service you stop using in a week.

Give me the repository, the extension, the bookmarklet, migrations, .env.example, and a README with deploy steps behind Caddy.

What you lose

  • Article extraction tuned against thousands of awkward sites, which is most of the product
  • Text-to-speech and offline reading on mobile
  • Highlights synced across devices

If you would rather not build

  • Omnivore-style clients over your own store
  • The reader mode already in your browser

What it costs

read from their page 15 Aug 2026

PlanBilled monthlyBilled yearlyLast read
—$5.99/mo—15 Aug 2026

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Wallabag

$0

Self-hosted read-later with extraction, tags and mobile apps.

wallabag/wallabagfree · open source

Readability

$0

The extraction library that most of these products are built on.

mozilla/readabilityfree · open source

Why this verdict

our own opinion · changed only by a person

86/100

Verdict yes at 86. Readability does the extraction; storing highlights as text rather than DOM ranges is the decision that keeps them working.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 2/day
views01230 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Instapaper

answered from the record above

Is Instapaper free?

No — the plan we track is $5.99 a month. Premium at around $5.99/month billed monthly, cheaper annually.

Can you replace Instapaper by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 86 out of 100, build time one session. Read what you lose before you decide.

How much does Instapaper cost?

$5.99 a month on Premium — $71.88 a year. Recorded 10 Aug 2026.

What do you lose by replacing Instapaper?

Article extraction tuned against thousands of awkward sites, which is most of the product; Text-to-speech and offline reading on mobile; Highlights synced across devices. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Instapaper?

Yes: Wallabag, Readability. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 40 in Notes, docs & writing

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc