reading-bookmarks
Feedly logo

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-even3.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
FreshRSS running from the boot-verified compose file
FreshRSS, running from the compose file on this page — screenshot from our verified instance, not marketing material.

Ranked alternatives

A feed reader in one container, with your subscriptions, your read history and your refresh schedule on your own disk.

FreshRSS/FreshRSS · ★ 15,740 · last commit 0d ago · AGPL-3.0

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.