Larafeed
Private RSS, Atom and JSON Feed reader with passkey-only sign-in and Reeder-compatible sync APIs
Larafeed reader with feed categories and unread counts, an entry list and a Cloudflare Blog post open
Larafeed runs as one Cloudflare Worker with D1, KV and Queues and refreshes subscriptions in the background. Partial Google Reader and Fever APIs let other reader apps sync with it.
Add a website and Larafeed runs feed discovery, asking which feed you want when the page lists several. It reads RSS, Atom, RDF and JSON Feed. The reader has keyboard shortcuts and quick feed navigation. Entries are marked as read when you open them. Each entry shows an estimated reading time. You can rename feeds, sort them into categories, filter a subscription's entries by title, content or author, and star or archive entries. OPML import and export move subscriptions in and out. Sign-in is passkey-only, and administrators invite and recover users from /admin/users. Revocable app tokens let other clients connect through the Google Reader and Fever API implementations. The maintainer based them on FreshRSS and Miniflux and worked out the protocols by inspecting the API calls Reeder Classic made to Miniflux. One Worker, built with Hono and Effect, serves the React and Mantine front end from static assets and handles the API. D1 stores users, subscriptions, entries, sessions and durable job state, and a KV namespace backs the full-content feature. Three Queues process feed refreshes, OPML imports and favicon updates one feed at a time, while a cron trigger every 10 minutes schedules the feeds that are due. Refreshes use conditional HTTP requests. While a feed stays unchanged, the interval grows from 15 minutes up to 24 hours, and publisher cache hints can lengthen it. Failed refreshes are stored and shown in the interface. Optional features ship switched off: AI summaries through Workers AI and AI Gateway, image proxying and favicon normalization through the Images binding, and Turnstile on sign-in. The Deploy to Cloudflare button provisions the Worker, D1 database, KV namespace and Queues, then applies every D1 migration. The project dates from January 2023 and was rebuilt as a Workers application in August 2026.
Built for: Developers and small teams who want a private feed reader in their own Cloudflare account, Reeder Classic users included
What you can use it for
- Read RSS and Atom feeds privately, alone or with a small team
- Sync Reeder Classic with a self-hosted backend over the Google Reader or Fever API
- Move subscriptions over from another reader with OPML import
- Get short AI summaries of long articles from Workers AI
- Follow product, industry and competitor blogs in one place
Deploy
One-click
Branch main
The Deploy button asks for AUTH_ORIGIN and AUTH_OPERATOR_SECRET. After deploying, run the repository's auth:access-link Bun script from a local checkout; it uses the operator secret to create the first administrator's passkey enrollment link.
What it needs to run
- Workers AIAI
- D1 databaseslarafeed-template
- ImagesIMAGES
- KV namespacesFULL_CONTENT_KV
- Queues (consumer)larafeed-template-feed-refresh
- Queues (producer)larafeed-template-favicon-refresh, larafeed-template-feed-refresh, larafeed-template-opml-import
Good to know
Google Reader and Fever API support is partial, though the README says it works with Reeder Classic. The WebAuthn relying party comes from AUTH_ORIGIN, so settle on the final hostname before enrolling passkeys. The default configuration has no AI binding; turning on AI summaries means adding one and setting AI_SUMMARY_ENABLED. Larafeed has one maintainer and no tagged releases.
Cost on Cloudflare
Likely fits the free plan
Workers, D1, KV, Queues, cron triggers and the rate-limit binding all have Workers Free allowances. By default each 10-minute cron run reserves at most five due feeds, about 720 refreshes a day. A Queues message usually takes three operations, so that is roughly 2,200 of the 10,000 daily operations on Free. Each refresh keeps only the newest 20 entries to stay under the Free plan's per-invocation query limit. Optional features use their own quotas: 10,000 Workers AI Neurons a day and 5,000 unique Images transformations a month.
The estimate is based on Cloudflare’s documented limits and the app’s configuration. What you pay depends on your usage and plan.
Where this comes from
- Repositoryhttps://github.com/angristan/larafeed
- Documentationhttps://github.com/angristan/larafeed/blob/main/docs/deployment.md
An alternative to Feedbin, Feedly, Inoreader, Miniflux, NewsBlur, The Old Reader.
Listing history
- Oct 2, 2026 · Larafeed listed
Similar apps
All Productivity apps
Renewal reminders for domains, servers and SaaS plans, with lunar calendar cycles and a spending dashboard
- Deploy
- One-click
- License
- MIT
- GitHub stars
- 392 stars
- Last commit

Self-hosted subscription ledger with renewal reminders in each user's timezone, budgets and calendar feeds
- Deploy
- One-click
- License
- MIT
- GitHub stars
- 271 stars
- Last commit

Mind-mapping app with a two-way Markdown editor that saves maps to a private GitHub, Gitea or GitLab repository
- Deploy
- CLI
- License
- MIT
- GitHub stars
- 151 stars
- Last commit