A feed reader for one person is a well-worn build: poll feeds on a schedule, keep the items in SQLite, track read and starred, add full-text search. Rules and duplicate filters are small functions over each new item. FreshRSS, Miniflux and yarr show how little it takes. What stays behind is the hosted side: Facebook, Telegram and Bluesky ingestion that breaks whenever a platform changes, apps that sync reading state to a phone, and polling thousands of feeds on a clock. A reader for a few hundred feeds on a laptop or a $5 server needs none of those.
Before you buildInoreader Free covers 150 RSS feeds at no cost. Pay, or build, only if you need rules, newsletters, web feeds or monitoring.
Build me a personal feed reader to replace Inoreader. Requirements: - Node.js 22 + TypeScript: a Fastify server with server-rendered pages (Eta) and a little vanilla JS. `npm start` serves http://localhost:4880. - Subscriptions: import and export OPML with folders, through `npm run import -- feeds.opml` and a download button on the settings page. - Fetcher: `rss-parser` with conditional GET (ETag and Last-Modified). Each feed has its own interval (default 60 minutes, minimum 15), backs off after errors, and shows last fetch, last error and item count on a feeds page. - Storage: better-sqlite3 in ./data/reader.db for feeds, folders and items (guid, link, title, author, content, published, read, starred, tags) with FTS5 over title and content. Drop duplicates by guid and by normalized link. - Full text: for feeds marked "full text", fetch the article page and extract it with `@mozilla/readability` and `jsdom`, then cache the result on the item. - Rules, stored as JSON per feed or folder: conditions (title or content contains or matches a regex, author, feed) and actions (mark read, star, add tag, delete). They run on every new item and on demand, and a test button lists what a rule would match without applying it. - Inbox: three panes (folders, items, article), unread counts, keyboard shortcuts (j, k, m, s, o), search with filters, and views for tags and starred items. - Newsletters: optional IMAP polling (`imapflow`) of one mailbox folder; each sender becomes a feed. - Single user. No accounts, no telemetry, local-first: the only outbound requests go to your feeds, their article pages and your IMAP server. - Out of scope: Facebook, Telegram and Bluesky feeds, AI summaries, mobile apps, multiple users. - README: setup, a launchd or systemd example for running it all day, and a check that a 200-feed OPML imports without errors and fills the inbox after one fetch cycle.
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 Inoreader.
Add a Fever-compatible API to the feed reader in this folder. Requirements: - Serve /fever/ with the api_key check (md5 of email:password from .env) and the calls apps use: groups, feeds, items with since_id and max_id paging, unread and saved item ids, and the mark actions for items, feeds and groups. - Map Fever's saved flag to our starred flag and keep read state in one place. - Serve it over HTTPS only when TRUST_PROXY is set; refuse requests without the key. - Test with curl scripts that cover paging and marking, and update the README with the setup steps for NetNewsWire.
Add page feeds to the feed reader in this folder. Requirements: - A new feed type where the user gives a URL, a CSS selector for the item container, and selectors for title, link and date; preview the parsed items before saving. - Fetch with a polite User-Agent, respect robots.txt, and refuse to poll faster than hourly. - Detect a page that returns 0 items on two fetches in a row and flag it in the feeds page. - Use `cheerio` for parsing, and update the README with an example.
Add a daily digest to the feed reader in this folder. Requirements: - A command `npm run digest` that builds an HTML email of unread items from the last 24 hours, grouped by folder, capped at 50 items, with a link back to each item. - Send it through nodemailer using SMTP settings in .env; support a per-folder include list. - Do not mark items read by sending the digest. - Update the README with a cron line.
Paying readers name rules that clear duplicates and noise, regex filters, newsletters delivered as feeds and scraping for sites without a feed, all kept in sync across their devices. For a heavy reader that is an inbox someone else keeps running.
Estimate · Runs on your laptop for free or on a $5 VPS. The build is token usage on your agent plan.
| Plan | Monthly | Annual, per month | What you get |
|---|---|---|---|
| Free | $0 | $0 | 150 RSS feeds, search in your articles, Google News alerts and view customization. |
| Pro | $9.99 | $7.50 | 2,500 RSS feeds refreshed at least hourly, 20 web feeds, 20 newsletter feeds, 30 feeds each for Facebook, Bluesky and Telegram, 30 monitoring feeds, 30 rules, 50 filters, 100 boosted feeds, AI summaries, PDF export, ad-free view and automatic OPML backups. |
| Custom | custom | — | A plan built from add-ons such as extra web feeds, monitoring feeds and boosted feeds, with API access. |
Free forever with up to 150 RSS feeds, search and Google News alerts; rules, filters, newsletters and web feeds need Pro.
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 $9.99 a month on the Pro plan, $119.88 a year (checked 2026-10-19).
Feeds for Facebook, Bluesky, Telegram and VK pages, and web feeds for sites with no RSS; Native iPhone and Android apps that sync read state and push alerts from your rules; AI summaries, mentions, tag suggestions and reports; Monitoring feeds and global search across public sources, plus Zapier, IFTTT and n8n hooks; Hourly refresh handled for you, and the Readwise and PDF export tools. If any of those matter to you, keep paying.
Yes: FreshRSS (open source), Miniflux (open source), yarr (open source).