The reading half of Matter is a weekend: save a URL, extract the article, keep it searchable, highlight text and show it in a clean reader. Audio is reachable with a local text-to-speech voice, and newsletters can arrive through an IMAP folder. What a copy lacks is the native iPhone and iPad app with offline sync, the Gmail connection that pulls subscriptions in on its own, transcripts of podcasts and videos, and voices as natural as the paid ones. Karakeep or Wallabag already cover the library part for free.
Before you buildMatter Free already has an unlimited library, tags and the browser extension. Premium adds audio, newsletters and integrations, which are exactly the parts that are hardest to rebuild.
Build me a personal read-later library to replace Matter. Requirements: - Python 3.12 + FastAPI with Jinja2 pages and a little vanilla JS. `uvicorn` serves http://127.0.0.1:4630: library at /, reader at /read/<id>, settings at /settings. - Storage: SQLite at ./data/matter.db (SQLAlchemy) with an FTS5 index: items (url, title, author, site, saved_at, read_state, progress), clean article HTML, tags and highlights (quote, text before and after, note, colour). Full-text search over articles and highlights, filtered by tag, site and unread. - Save: POST /api/save and a bookmarklet that sends the page URL; fetch with `httpx`, extract with `trafilatura`, keep a plain-text copy for search. For PDFs keep the file and extract text with `pypdf`. - Inbox: poll an IMAP folder (`imapclient`; IMAP_HOST, IMAP_USER, IMAP_PASSWORD in .env) every 10 minutes and turn each unread newsletter into an item. Subscribe to RSS or Atom feeds (`feedparser`), fetched hourly; each new entry can be saved or dismissed with one click. - Reader: serif type, adjustable size, dark mode. Selecting text creates a highlight with an optional note; highlights re-anchor by quote plus surrounding text if the page is re-fetched. - Listen: generate audio on demand with Piper (`piper-tts`, PIPER_VOICE in .env), cache the mp3 in ./data/audio/, and play it in the reader with a speed control that remembers the position. - Export: one Markdown file per item with front matter and a "## Highlights" section into EXPORT_DIR (.env), rewritten when highlights change; also the whole library as one JSON file. - One password in .env (signed cookie). No accounts, no telemetry, local-first: outbound calls are page fetches, feeds and your IMAP server. - Out of scope: native phone apps and offline sync, podcast and YouTube transcripts, AI summaries. - README: bookmarklet install, forwarding newsletters to the IMAP folder, getting a Piper voice, and a warning that paywalled pages save only what a plain fetch can read.
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 Matter.
Add a Matter importer to the read-later library in this folder. Requirements: - A command `import-matter` that takes the reading-history CSV and the library zip exported from Matter's Settings. - Inspect both files first and print the columns and file types found before writing anything. - Re-fetch each saved URL with the normal save pipeline, keep Matter's saved date and read state, and fall back to any article text in the zip when a page is gone. - Skip URLs already in the library, so running it twice is safe, and list the ones that failed. - Update the README with the export steps.
Add Send to Kindle to the read-later library in this folder. Requirements: - Build an EPUB for one item or a tag with `ebooklib`: cover title, author, clean text and images, and highlights as an appendix. - Email it through SMTP (SMTP_HOST, SMTP_USER, SMTP_PASSWORD, KINDLE_ADDRESS in .env) from an address I have approved in my Amazon account. - A "Send" button in the reader and a daily digest option for items tagged "kindle". - Log every send and never resend an item that already went. - Update the README with the approved-sender step.
Make the read-later library in this folder installable on a phone. Requirements: - Add a web app manifest and a service worker that caches the reader shell and the 30 most recent unread items with their images. - Queue highlights made offline in IndexedDB and send them when the connection returns, merging by quote and surrounding text. - Show an offline badge and which items are available offline. - Document serving it over HTTPS through a tunnel, which service workers require. - Update the README.
People pay for a reading habit that works on a phone: share-sheet saving, offline articles, newsletters out of the inbox and a voice that reads the queue on a commute. A web library is easy to build, but the iOS app and its sync are what keep it in daily use.
Estimate · Runs on your machine; a $5 VPS or a tunnel is needed only to save from your phone. Local text to speech costs nothing. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | Unlimited library, unlimited tags, saving from the iPhone, iPad, web and browser extension. |
| Premium | $7.99 | $6.67 | HD text to speech, AI Co-Reader, newsletters, writers and RSS feeds, unlimited highlights and notes, integrations, Send to Kindle. |
| Pro | $12.99 | — | Everything in Premium plus the REST API and the command-line client. |
Free keeps an uncapped read-later library, tags, full-text search and the browser extension.
Kinda. The core is a weekend build with the prompt on this page, but real gaps remain: The native iPhone and iPad apps with offline reading and sync, Natural-sounding HD voices; a local voice is noticeably flatter.
About $7.99 a month on the Premium plan, $95.88 a year (checked 2026-10-20).
The native iPhone and iPad apps with offline reading and sync; Natural-sounding HD voices; a local voice is noticeably flatter; One-tap newsletter sync from Gmail and following writers across platforms; Transcripts of podcast episodes and YouTube videos; The AI Co-Reader and Send to Kindle. If any of those matter to you, keep paying.
Yes: Karakeep (open source), Wallabag (open source), Linkwarden (open source).