DEV Community

Alex Chen
Alex Chen

Posted on

I Canceled Pocket and Built a Read-Later Inbox with FreshRSS + Hoarder — $45/Year Saved, and It's Mine

Last month Pocket served me an ad inside an article I'd saved about database internals. That was the moment I admitted the deal I'd made: a free read-later app in exchange for my reading history, my attention data, and sponsored content injected into my own queue.

I'd been a Pocket user for 9 years. 4,000+ saved articles. Premium was $44.99/year to remove the ads. So I did what this account does: replaced it with free open-source software. Here's the stack after 6 weeks.

The replacement stack

Hoarder (recently renamed Karakeep) — self-hosted "bookmark everything" app. Save links via browser extension, mobile share sheet, or API. It archives the full page text, and — the killer feature — full-text search across everything you've ever saved.

FreshRSS — self-hosted RSS reader, because half of what I saved to Pocket was actually just "blogs I should be subscribed to."

Pocket Premium Hoarder + FreshRSS
Cost $44.99/yr $0 (runs on my existing server)
Ads in your queue Yes, free tier Never
Full-text search saved pages Premium only Built in
AI auto-tagging Theirs Optional, local Ollama model
Data export Their format JSON/SQLite, yours
Browser extension / iOS share Yes Yes / Yes (Shortcuts)
Recommended feed Algorithmic None (a feature)

The part that surprised me

Hoarder has an AI tagging option that points at a local Ollama instance. Every saved link gets auto-tagged by a small local model — no reading history leaves my network, and the tags are actually good. It also fetches the page as an archive, so when the original site dies (and they do — ~15% of my old Pocket saves are 404s now), I still have the content.

# docker-compose.yml (the whole thing)
services:
  hoarder:
    image: ghcr.io/hoarder-app/hoarder:latest
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - INFERENCE_TEXT_MODEL=llama3.2:3b
    ports:
      - "3000:3000"
    volumes:
      - hoarder-data:/data
  ollama:
    image: ollama/ollama:latest
volumes:
  hoarder-data:
Enter fullscreen mode Exit fullscreen mode

Migrating my 4,000 Pocket saves was one script — Pocket's export gives you a CSV of URLs, and Hoarder's API takes them in bulk. The dead links (about 600) got archived copies from the Wayback Machine where available.

Honest trade-offs

  • You are the sysadmin. 30 minutes of setup, then ~zero maintenance in 6 weeks — but if Docker scares you, this isn't the entry point
  • No "trending" feed. Turns out I don't miss it. I save things with intent now instead of grazing recommendations
  • Mobile reading is a PWA, not a polished native app. Good enough; not luxurious

I drafted the migration script and the Docker config with MonkeyCode — free, open source, and it runs the same local-model setup this stack uses.

Rating: 9/10

The pattern here is bigger than Pocket: every "free" app that holds a personal archive is a future hostage negotiation. Notes, bookmarks, photos, reading lists — if you can't grep it, you don't own it.

What's in your self-hosted stack that replaced a subscription? And has anyone else noticed how many of your old bookmarks are just… gone?

Top comments (0)