
Should I self-host Feedly?
YESworth it
One container, your feeds, no $84/yr for the privilege of reading RSS — the format that was designed to be self-hosted.
The math (nothing hidden, including your time)
| Feedly (Pro) | $6.99/mo |
| VPS share + storage | −$0.50/mo |
| Your maintenance: 10 min/mo at $20/h | −$3.33/mo |
| Net saving | $3.16/mo |
| Setup: 30 min measured (one-time) | $10.00 |
| Break-even | 3.2 months |
| Markup Index (price ÷ real self-host cost) | 1.8× |
Price: source, checked 2026-08-05. Inputs are stored in git; every number above is derived, never hand-written.
What you lose
- Feedly's AI triage and team boards
- Their server discovering feed URLs for you — FreshRSS makes you paste the URL like it's 2008 (it's fine)
What you're paying Feedly for
- follow feeds in one reader
- sync read-state across devices
- search & filters
- mobile access

Ranked alternatives
A feed reader in one container, with your subscriptions, your read history and your refresh schedule on your own disk.
Hardware
Runs comfortably on Raspberry Pi.
The tested compose file (our evidence, CI-booted)
# FreshRSS — self-hosted RSS reader (replaces Feedly)
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
environment:
CRON_MIN: "13,43" # feed refresh twice an hour
ports:
- "8083:80"
volumes:
- freshrss-data:/var/www/FreshRSS/data
- freshrss-ext:/var/www/FreshRSS/extensions
healthcheck:
# The image ships neither curl nor wget; PHP is right there.
test: ["CMD-SHELL", "php -r \"exit(@file_get_contents('http://localhost/i/')===false?1:0);\""]
interval: 5s
timeout: 5s
retries: 24
start_period: 20s
volumes:
freshrss-data:
freshrss-ext:
Want a guided install instead? caniselfhostit.com/feedly has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
Verification
Protocol v1 · verified by zernonia on 2026-08-10 · setup measured at 30 min · AI assistant: claude-code (allowed & stated)
What broke
- Nothing — image ships with SQLite default and a web installer
Full timed log
# Timed setup log: Feedly → freshrss **Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10 **Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1 ## Timeline | Step | Time | |---|---| | Read upstream docs, draft compose with healthcheck | ~10 min | | **Boot: all services healthy in 7 s (measured, `compose up --wait`)** | — | | Endpoint-level workflow check (login/health/API serve) + re-run from clean volumes | ~10 min | | **Total: ~30 min** | | Boot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this session including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow — dispute anything that doesn't reproduce (CONTRIBUTING.md). ## What broke - Nothing — image ships with SQLite default and a web installer ## Verdict-relevant notes - Sync to mobile works via the Google-Reader-compatible API (FreshRSS setting + any client).
Verdict history
- 2026-08-10: unscored → YES — Initial verdict: One container, your feeds, no $84/yr for the privilege of reading RSS.