[{"data":1,"prerenderedAt":94},["ShallowReactive",2],{"$f1qd7n1w2exdm0":3},{"site":4,"app":16,"alternatives":66,"compose":89,"log":90,"changelog":91},{"hourly_rate_usd":5,"break_even_window_mo":6,"reference_env":7,"attribution":8},20,18,"Fresh Debian 12, Docker + Compose preinstalled, 2 GB RAM \u002F 2 vCPU ($5-class VPS)",{"caniselfhostit":9},{"name":10,"url":11,"repo":12,"license":13,"author":14,"note":15},"caniselfhostit.com","https:\u002F\u002Fcaniselfhostit.com","https:\u002F\u002Fgithub.com\u002Fcaniselfhostit\u002Fcaniselfhostit","MIT","Jashanpreet Singh","Capability data (app → replacement pairings, pricing snapshots) seeded from this dataset. They answer 'can you run it, and how' — go there for guided installs.",{"id":17,"name":18,"domain":19,"category":20,"price_usd_mo":21,"price_plan":22,"price_unit":23,"price_source":24,"price_checked":25,"links":26,"jobs":28,"verdict":33,"alternatives":34,"provenance":36,"verdict_reason":39,"what_you_lose":40,"economics":43,"hardware_tier":47,"verified":48,"compose":56,"derived":59},"feedly","Feedly","feedly.com","reading-bookmarks",6.99,"Pro","flat","https:\u002F\u002Ffeedly.com\u002Fi\u002Fpricing","2026-08-05",{"caniselfhostit":27},"https:\u002F\u002Fcaniselfhostit.com\u002Ffeedly",[29,30,31,32],"follow feeds in one reader","sync read-state across devices","search & filters","mobile access","YES",[35],"freshrss",{"capability_seed":37,"decision_layer":38},"caniselfhostit","original","One container, your feeds, no $84\u002Fyr for the privilege of reading RSS — the format that was designed to be self-hosted.",[41,42],"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)",{"vps_share_usd_mo":44,"storage_usd_mo":45,"maint_min_mo":46},0.5,0,10,"pi",{"by":49,"at":50,"protocol":51,"setup_min":52,"assistant":53,"evidence":54,"what_broke":57},"zernonia","2026-08-10","v1",30,"claude-code",[55,56],"logs\u002Ffeedly-freshrss.md","compose\u002Ffeedly-freshrss.yml",[58],"Nothing — image ships with SQLite default and a web installer",{"hourly_rate_usd":5,"self_host_cost_usd_mo":60,"net_saving_usd_mo":61,"setup_cost_usd":46,"break_even_months":62,"break_even_date":63,"markup_index":64,"primary_abandoned":65,"verdict_stale":65},3.83,3.16,3.17,"2026-11-14",1.82,false,[67],{"id":35,"name":68,"tagline":69,"repo":70,"site":71,"license":72,"category":20,"resources":73,"provenance":78,"metrics":79},"FreshRSS","A feed reader in one container, with your subscriptions, your read history and your refresh schedule on your own disk.","FreshRSS\u002FFreshRSS","https:\u002F\u002Ffreshrss.org","AGPL-3.0",{"ram_min_mb":74,"disk_gb":75,"arm64":76,"containers":77,"external_db":65},512,5,true,1,{"capability_seed":37,"decision_layer":38},{"id":35,"stars":80,"last_commit":81,"latest_release":82,"docker_pulls":86,"open_issues":87,"fetched_at":88},15740,"2026-08-10T12:25:16Z",{"tag":83,"published_at":84,"url":85},"1.29.1","2026-05-20T17:58:03Z","https:\u002F\u002Fgithub.com\u002FFreshRSS\u002FFreshRSS\u002Freleases\u002Ftag\u002F1.29.1",null,659,"2026-08-11T03:55:21.481Z","# FreshRSS — self-hosted RSS reader (replaces Feedly)\nservices:\n  freshrss:\n    image: freshrss\u002Ffreshrss:latest\n    container_name: freshrss\n    restart: unless-stopped\n    environment:\n      CRON_MIN: \"13,43\" # feed refresh twice an hour\n    ports:\n      - \"8083:80\"\n    volumes:\n      - freshrss-data:\u002Fvar\u002Fwww\u002FFreshRSS\u002Fdata\n      - freshrss-ext:\u002Fvar\u002Fwww\u002FFreshRSS\u002Fextensions\n    healthcheck:\n      # The image ships neither curl nor wget; PHP is right there.\n      test: [\"CMD-SHELL\", \"php -r \\\"exit(@file_get_contents('http:\u002F\u002Flocalhost\u002Fi\u002F')===false?1:0);\\\"\"]\n      interval: 5s\n      timeout: 5s\n      retries: 24\n      start_period: 20s\n\nvolumes:\n  freshrss-data:\n  freshrss-ext:\n","# Timed setup log: Feedly → freshrss\n\n**Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10\n**Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 \u002F Compose v5.1\n\n## Timeline\n\n| Step | Time |\n|---|---|\n| Read upstream docs, draft compose with healthcheck | ~10 min |\n| **Boot: all services healthy in 7 s (measured, `compose up --wait`)** | — |\n| Endpoint-level workflow check (login\u002Fhealth\u002FAPI serve) + re-run from clean volumes | ~10 min |\n| **Total: ~30 min** | |\n\nBoot and endpoint checks are machine-verified; `setup_min` is the wall-clock total for this\nsession including authoring, diagnosis and re-runs. Endpoint-level ≠ full human UI workflow —\ndispute anything that doesn't reproduce (CONTRIBUTING.md).\n\n## What broke\n\n- Nothing — image ships with SQLite default and a web installer\n\n## Verdict-relevant notes\n\n- Sync to mobile works via the Google-Reader-compatible API (FreshRSS setting + any client).\n",[92],{"date":50,"app":17,"from":86,"to":33,"reason":93},"Initial verdict: One container, your feeds, no $84\u002Fyr for the privilege of reading RSS.",1786459421791]