How does Oksskolten compare?
Detailed feature comparison across 9 RSS readers — self-hosted and SaaS.
Content Extraction
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| Full-text extraction | ✓ Every article, by default | ⚠ Opt-in per feed | ⚠ Opt-in per feed | ⚠ Via plugins | — | ✓ Auto (best-effort) | ✓ Pro (Full Content view) | ✓ Auto (on save) | — |
| Extraction engine | Readability.js + 500 patterns | Go Readability (~390 lines, ~60 rules) | Manual CSS selectors (DOMXPath) | Mercury plugin (external server) | — | Proprietary | Proprietary | Proprietary | — |
| Worker Thread isolation | ✓ piscina (max 2) | Go goroutines | — | — | — | — | — | — | — |
| JS-rendered sites | ✓ FlareSolverr | — | — | — | — | Enterprise only | — | — | — |
| Sites without RSS | ✓ Auto → RSS Bridge → LLM inference | — | — | — | — | Pro+ (25) / Enterprise (100) | ✓ Web feeds & Monitoring | — | — |
| Markdown conversion | ✓ Turndown (GFM) | HTML storage | HTML storage | HTML storage | HTML storage | — | — | — | — |
Miniflux extraction details
- Go reimplementation of Readability (~390 lines vs Mozilla's 3000+)
- ~60 site-specific CSS scraper rules + ~30 rewrite rules = ~90 total
- Sanitizer is security-focused (allowlist), not content-quality focused
- No JS rendering (raw HTML only)
- Crawler flag is per-feed, opt-in (default off)
FreshRSS extraction details
- No Readability algorithm — users must manually specify CSS selectors per site
- Uses phpgt/cssxpath for CSS→XPath conversion
- content_action: replace/prepend/append
- Docs warn about generating excessive traffic to source sites
TT-RSS extraction details
- No built-in extraction engine. Uses HOOK_GET_FULL_TEXT plugin hook
- Mercury plugin requires a separate Mercury Parser API server
- Feediron plugin can manipulate DOMs via CSS selectors/XPath
- On-demand toggle via a e keyboard shortcut
CommaFeed extraction details
- Full-text extraction was never implemented
- v2.6 removed "Readability" — this was a share button to Readability.com (shut down 2016), not an extraction engine
- User requests for extraction (Issue #578, #794) were rejected by maintainer
Inoreader details
- SaaS RSS reader with 150 free feeds (Pro: 2,500)
- Full Content view fetches full article text from the source site
- Web feeds can track pages without RSS via CSS change detection
- Monitoring feeds track brand mentions, keywords, and trends
- Pro plan guarantees feed refresh at least once every hour
- Browser extension for Chrome/Firefox/Edge with read-later support
Readwise Reader details
- SaaS read-it-later + RSS reader hybrid ($9.99/mo annual)
- Full-text parsing on save (browser extension yields best quality)
- Ghostreader AI: summarize, translate, Q&A, custom prompts — all included in subscription
- Unified hub: RSS + newsletters + YouTube transcripts + PDFs + EPUBs + Twitter threads
- Highlighting & annotations with auto-sync to Obsidian, Notion, Logseq via Readwise
- Text-to-Speech with AI voices and word-level tracking
- Native iOS, Android, Mac, Windows apps + browser extensions
- Feed items NOT indexed for full-text search until moved to Library
- Not self-hosted, not open source, no data sovereignty
AI Features
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| AI Summarization | ✓ 3 providers | — | — | — | — | Pro+ (Leo AI) | ✓ Pro (AI summaries) | ✓ Ghostreader | — |
| AI Translation | ✓ 6 engines | — | — | — | — | Enterprise only | ✓ 50+ languages | ✓ Ghostreader | — |
| AI Chat / Q&A | ✓ MCP + cross-archive | — | — | — | — | Ask AI (query) | — | ✓ Per-document only | — |
| AI Category suggestion | — | — | — | — | — | — | — | ✓ Auto-tagging | ✓ GPT-4o-mini |
| AI Feed generation | ✓ LLM selector inference | — | — | — | — | Pro+ (AI Feeds) | — | — | — |
| Custom AI prompts | — | — | — | — | — | — | — | ✓ Prompt library | — |
| Intelligence Training | — | — | — | — | — | Pro+ (Bayesian) | — | — | — |
Search
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| Search engine | Meilisearch (typo-tolerant) | PostgreSQL full-text | SQL LIKE | PostgreSQL FTS (tsvector) | SQL LIKE | Power Search (Pro+) | Full-text (Pro) | Full-text (Library only) | — |
| Typo tolerance | ✓ | — | — | — | — | ✓ | — | — | — |
| Full-text search | ✓ | ✓ (within PG) | Substring only | ✓ (PG FTS + operators) | Substring only | Pro+ | Pro | Library items only | — |
| Search UI | ✓ Dialog (⌘K) | ✓ | ✓ | ✓ (/ shortcut, operators) | ✓ (⌘K nav) | ✓ | ✓ | ✓ (⌘K + filtered views) | Nav only |
Feed Management
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| OPML import/export | ✓ | ✓ | ✓ | ✓ (+ filters, labels, prefs) | ✓ | ✓ | ✓ (+ OPML subscriptions) | ✓ Import (drag & drop) | ✓ |
| OPML import preview | ✓ | — | — | — | — | — | — | — | ✓ |
| RSS Auto-discovery | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Subscription filters | 🔨 Planned | — | ⚠ Limited | ✓ Regex, scoring, labels, actions | ✓ CEL + visual builder | Pro+ | ✓ Rules & filters | ✓ Filtered views (query syntax) | ✓ |
| Auto mark-as-read (N days) | — | — | — | — | ✓ per-feed | — | — | — | — |
| Adaptive scheduling | ✓ ETag/Last-Modified/ttl/freq | ✓ | ✓ | Per-feed interval + 429 backoff | ✓ Empirical | ✓ | ✓ ≤1hr (Pro) | — | — |
| URL dedup (tracking params) | ✓ 60+ params | ✓ | — | URL uniqueness + trgm dedup | — | — | — | — | — |
| Article tags (per-article) | — | — | — | ✓ + labels (color-coded) | ✓ | — | ✓ Tags + highlights | ✓ + highlight tags | — |
| Article Clipping | ✓ URL → full extraction | — | — | — | — | Read Later | ✓ Save for later | ✓ Read-it-later core | — |
| Newsletters / YouTube / PDF | — | — | — | — | — | — | ✓ Newsletters + Podcasts | ✓ All-in-one | — |
| Highlighting & Annotations | — | — | — | — | — | — | ✓ Notes + highlights | ✓ + Readwise sync | — |
| Retention policy | — | — | — | ✓ Per-feed purge + global | ✓ max age/count, starred exempt | — | — | — | — |
| Entries as RSS feed | — | — | — | ✓ Published feed | ✓ Re-syndication | — | — | — | — |
UI / UX
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| Themes | 14 + custom JSON | 2 (light/dark) | ~10 | 6 + custom CSS | 3 + 14 accent colors | — | 4 (Aqua/Light/Dark/Sepia) | Light/Dark/Auto | 8 |
| Layouts | 4 (list/card/magazine/compact) | 1 | 3 | Combined / 3-panel / widescreen / grid | 4 (title/cozy/detailed/expanded) | 3 | 3+ (list/expanded/3-pane) | Collapsible panels | 1 |
| Font selection | ✓ 9 fonts + 8 code styles | — | — | — | — | — | — | ✓ Multiple + size/spacing | — |
| Custom CSS/JS | — | — | — | ✓ USER_STYLESHEET | ✓ per-user, code editor | — | — | — | — |
| PWA / Offline | ✓ Background sync | — | — | — | — | Mobile apps | Mobile apps | ✓ Web + native apps | Install only |
| Command palette (⌘K) | 🔨 Planned | — | — | — | ✓ Feed nav | — | — | ✓ Full ⌘K | — |
| Keyboard shortcuts | ⚠ Minimal | ✓ Full set | ✓ | ✓ 60+ shortcuts | ✓ 20+ shortcuts | ✓ | ✓ | ✓ Customizable | — |
| Native mobile apps | PWA | — | — | — | — | — | ✓ iOS + Android | ✓ iOS + Android | — |
| Text-to-Speech | — | — | — | — | — | — | ✓ Pro | ✓ AI voices | — |
| Drag & drop (feeds) | ✓ | — | — | ✓ | ✓ | ✓ | ✓ | — | — |
| Mobile swipe gestures | — | — | — | — | ✓ Swipe read/sidebar | ✓ | ✓ | — | — |
| Share buttons | — | ✓ | ✓ | ✓ Share plugin + Published feed | ✓ 8 services + native | ✓ | ✓ | — | ✓ |
| WebSocket real-time | — | — | — | AJAX polling | ✓ Polling fallback | ✓ | — | — | — |
| Plugin system | — | — | ✓ Extensions | ✓ 40+ hooks, 18 built-in | — | — | — | — | — |
Notifications
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| Push (ntfy/Gotify/Pushover) | — | — | — | — | ✓ Per-feed, 3 services | — | — | — | — |
| WebSocket unread count | — | — | — | — | ✓ | — | — | — | — |
| Email digest | — | — | — | ✓ Scheduled, score filter | — | — | ✓ Pro (scheduled) | — | — |
Authentication
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| Password | ✓ | ✓ | ✓ | ✓ + TOTP 2FA | ✓ | ✓ | ✓ | ✓ | ✓ |
| Passkey / WebAuthn | ✓ | — | — | — | — | — | — | — | — |
| GitHub OAuth | ✓ | — | — | — | — | — | — | — | — |
| SSO / LDAP | — | — | — | ✓ auth_remote + OIDC plugin | — | Enterprise (SAML) | Enterprise | — | — |
| API Key | — | ✓ | ✓ | ✓ App passwords | ✓ Read-only | ✓ | ✓ OAuth 2.0 | ✓ Token-based | — |
| Multi-user | Single user | ✓ | ✓ | ✓ | ✓ Thousands | ✓ | ✓ Team plans | Single user | ✓ SaaS-ready |
| Admin panel | — | ✓ | ✓ | ✓ Users + system | ✓ Users + metrics | — | — | — | ✓ |
Deployment
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| Single container | ✓ (app) | + PostgreSQL | + web server + DB | 3+ containers (app, updater, nginx) | ✓ (embedded H2) | SaaS | SaaS | SaaS | 2 containers |
| No external DB | ✓ SQLite | PostgreSQL required | SQLite possible | PostgreSQL only | ✓ H2 embedded | SaaS | SaaS | SaaS | ✓ SQLite/D1 |
| Raspberry Pi | ✓ | ✓ | ✓ | ✓ (arm64) | ✓ | — | — | — | ARM unknown |
| Cloudflare Tunnel | ✓ Built-in | — | — | — | — | — | — | — | — |
| Serverless / Edge | Needs process | — | — | — | — | — | — | — | ✓ CF Workers |
| Self-hosted | ✓ | ✓ | ✓ | ✓ | ✓ | SaaS only | SaaS only | SaaS only | ✓ |
| Price | ✓ Free / OSS | ✓ Free / OSS | ✓ Free / OSS | ✓ Free / OSS | ✓ Free / OSS | $12.99/mo (Pro+) | $7.50/mo (annual) | $9.99/mo (annual) | ✓ Free / OSS |
API Compatibility
| Oksskolten | Miniflux | FreshRSS | TT-RSS | CommaFeed | Feedly | Inoreader | Readwise Reader | Tuvix | |
|---|---|---|---|---|---|---|---|---|---|
| Own API | — | ✓ | — | ✓ JSON API (level 23) | ✓ REST | ✓ | ✓ REST (OAuth 2.0) | ✓ REST (token auth) | — |
| Miniflux API | — | ✓ Native | — | — | — | — | — | — | — |
| Google Reader API | — | ✓ | ✓ | Via FreshAPI plugin | — | — | ✓ | — | — |
| Fever API | — | ✓ | ✓ | Via plugin | ✓ | — | — | — | — |
| WebSub | — | ✓ | ✓ | — | — | — | — | — | — |
| OpenAPI docs | — | — | — | — | ✓ | ✓ | — | — | — |
| MCP server | ✓ Built-in | — | — | — | — | — | — | — | — |
Oksskolten