I Ditched My RSS Reader for One That Actually Understands What I'm Reading
I've been chasing the perfect RSS setup for years. Feedly, Miniflux, FreshRSS — they all do the job of pulling feeds together, but they've always felt like glorified inbox managers. You still have to do all the reading yourself, decide what's worth your time, and context-switch between a dozen different topics before your morning coffee is done.
Then I found Oksskolten, and it quietly changed how I consume content.
What Is It?

Oksskolten is a self-hosted RSS reader, but that description undersells it. Under the hood it fetches the full text of every article — not just the feed excerpt — using Mozilla's Readability engine plus around 500 noise-removal patterns. Everything gets converted to clean Markdown and stored in a local SQLite database. So far so good, but that's just the foundation.
The interesting parts are what sit on top of that:



- AI summarization and translation via SSE streaming — Anthropic, Gemini, or OpenAI, your pick
- Multi-turn chat with each article through an MCP server, so you can ask follow-up questions, request a different angle, or have it explain something you didn't follow
- Full-text search powered by Meilisearch, with typo tolerance baked in
- CSS-selector-based feeds via an RSS Bridge sidecar for sites that don't publish proper feeds
- Bot-bypass via FlareSolverr for paywalled or rate-limited sources (disabled by default)
- A PWA with offline reading and background sync
It also handles adaptive feed scheduling, deduplication, and conditional HTTP (ETag/Last-Modified), so it's not hammering sources unnecessarily.
The Stack
Running this on my homelab means four containers working together:
| Container | Role |
|---|---|
oksskolten | Main app — API, SPA, cron scheduler |
oksskolten-meilisearch | Full-text search index |
oksskolten-rss-bridge | CSS-selector feeds for sites without RSS |
oksskolten-flaresolverr | Bot-bypass (off by default) |
The main app is the only thing that exposes a port externally. Everything else is internal to the Docker network. Data lives in SQLite, which keeps the operational complexity low — no Postgres to babysit, no Redis queue (unless you need it).
Setup Notes
The one thing to get right before starting is the Meilisearch master key — it needs to be at least 16 characters and shared between the Meilisearch container and the main app. Generate one before you start:
openssl rand -hex 16
Drop that in your .env as MEILI_MASTER_KEY and both services will pick it up.
The app ships with NO_SEED=1 set, so you start with an empty database rather than a bunch of demo feeds. I left that in — I'd rather build my own list than clean up someone else's.
AI provider keys (Anthropic, Gemini, OpenAI) get configured through the Settings UI after first login, not through environment variables. That's a nice touch — no need to rotate secrets in your compose file when you change providers.
One gotcha I ran into: the RSS Bridge image doesn't include curl or wget, so the standard healthcheck pattern fails. The fix is to use PHP directly:
healthcheck:
test: ["CMD", "php", "-r", "file_get_contents('http://localhost:80') or exit(1);"]
Why It's Different
Most RSS readers are passive — they collect articles and wait for you. Oksskolten shifts toward something more active. The MCP server integration is what gets me: you can point Claude Code or any MCP-compatible client at it and have a proper conversation with your reading list. Ask it to find everything you've saved about a topic, get a summary across multiple articles, or pull out a specific detail you half-remember from last week.
The full-text storage is also underrated. No more "read later" links that break when a site goes behind a paywall. The content is local the moment it's fetched.
I'm running it internally on my homelab at the moment, Tailscale-only. Might expose it via Traefik eventually, but honestly the current access pattern works fine — it's a PWA, so it installs cleanly on mobile too.
If you're looking for an RSS reader that doesn't treat AI as a gimmick bolted on afterward, Oksskolten is worth a look. The source is at github.com/babarot/oksskolten.
Running on dore, my automation/dev server. Stack lives at

/home/docker/compose/oksskolten/.