unsubbed.co

JARR

JARR lets you run (Just Another RSS Reader) is a web-based news aggregator and reader entirely on your own server.

Web-based feed aggregation with a genuinely uncommon deduplication feature, honestly reviewed. No third-party coverage exists — this review works from primary sources only.

TL;DR

  • What it is: Self-hosted web RSS/Atom reader with a three-column interface and TF-IDF article clustering that groups duplicate stories across feeds [1][2].
  • Who it’s for: Technical users who follow many overlapping news sources and are tired of seeing the same story repeated from ten different outlets. Not a beginner tool.
  • Cost savings: Feedly Pro runs $8/month, Inoreader Plus $9.99/month — JARR self-hosted on a $5 VPS is free beyond infrastructure. The official hosted instance at app.jarr.info is also available to try without deploying anything [1][2].
  • Key strength: Article clustering by link or by TF-IDF content similarity — the feature that distinguishes JARR from every other popular self-hosted RSS reader in this category [1][2].
  • Key weakness: 130 GitHub stars, no third-party review coverage, and an introductory blog post that references Python 3.4 (EOL since 2019) — all point to a niche project with uncertain maintenance trajectory [1][3].

What is JARR

JARR — Just Another RSS Reader — is a self-hosted web application for aggregating RSS and Atom feeds. You add feeds, they get crawled on a schedule, and you read articles in a three-column browser interface: feed and category navigation on the left, article list in the center, article content on the right [2].

The project is a fork. It was originally created by Cédric Bonhomme, then taken over and substantially rewritten by the current maintainer after the two diverged on direction [2]. The result is a Python/Flask backend with a SQLAlchemy ORM, PostgreSQL database, and a ReactJS single-page frontend. A crawl queue system handles feed fetching and is described as capable of handling “huge workloads without consuming too many resources” [2].

The AGPL-3.0 license governs the code [3]. There is also an official managed instance at app.jarr.info and an API endpoint at api.jarr.info [1], which means you can evaluate the software without standing up your own deployment first.

What separates JARR from FreshRSS, Miniflux, and Tiny Tiny RSS is the article clustering feature. If you follow 30 tech news feeds, the same product launch, security breach, or acquisition announcement surfaces across all of them. JARR can group those articles automatically — either by matching URLs (articles pointing to the same source) or by computing TF-IDF similarity on content (articles that cover the same subject even via different links). The story appears once in your reader as a cluster, not as 15 redundant entries [1][2].

That is a genuine, unsolved problem for anyone doing high-volume RSS consumption. It’s uncommon enough as a feature that it’s the primary reason to look at JARR at all.


Why people choose it

No independent third-party reviews of JARR the software exist in the available sources — all retrieved articles referenced unrelated subjects. What follows is grounded in the project’s own documentation [1][2][3].

The clustering feature is the only strong reason to choose JARR over better-maintained alternatives. Every other major self-hosted RSS reader handles feed management, unread tracking, and keyboard navigation. FreshRSS, Miniflux, and Tiny Tiny RSS do not implement article deduplication by content similarity as a first-class feature. JARR does [1][2].

If your actual pain point is reading HackerNews, TechCrunch, The Verge, Ars Technica, and several others simultaneously, you know the problem well. A single story generates 8–15 entries. JARR’s TF-IDF clustering is a direct answer to that — the maintainer described it as “the main thing I’d like to implement” in the original blog post, signaling it was the motivating feature for the entire fork [2].

The secondary draw is the official managed instance. You can create an account at app.jarr.info and test the clustering behavior with your actual feeds without committing to a Docker deployment [1]. That’s an unusually low-friction evaluation path for a self-hosted tool.


Features

Based on the README and homepage documentation [1][2]:

Core reading experience:

  • Three-column layout: category/feed tree, article list, content panel [2]
  • Category folding and unread-only filtering [2]
  • Per-feed error state visibility — broken feeds are visible inline [2]
  • Readability integration via API key, configurable per feed or triggered on-demand — especially useful for feeds that publish summaries only, like HackerNews [2]
  • Mobile-responsive layout, tested on tablets and phones [2]

Article clustering (the differentiator):

  • Cluster by URL: articles linking to the same source get grouped [1]
  • Cluster by content via TF-IDF: semantically similar articles across different feeds get grouped [1]
  • This is the feature no other popular self-hosted RSS reader ships by default

Technical:

  • REST API with a public endpoint at api.jarr.info [1]
  • Python/Flask backend, SQLAlchemy ORM [2]
  • PostgreSQL storage [2]
  • Queue-based crawler that scales horizontally [2]
  • CircleCI build integration and Codacy coverage tracking visible in the README [1]

What’s not documented in available materials:

  • OPML import/export (standard for migrating from other RSS readers — not confirmed)
  • Full-text search
  • Multi-user access controls and per-user feed isolation
  • Docker Compose availability (INSTALL.md is referenced in the README but was not in the provided materials)
  • Current Python version requirements (the v1 blog post mentions Python 3.4 — this needs verification against the current codebase before deploying)

Pricing: SaaS vs self-hosted math

JARR is free under AGPL-3.0 [3]. The official instance appears to operate without a paid tier — account creation is advertised without pricing [1][2].

SaaS RSS reader pricing for comparison:

  • Feedly: Free (100 sources, basic), Pro $8/month (1,000 sources, AI prioritization), Teams from $18/user/month
  • Inoreader: Free (ads, limited), Starter ~$3.33/month, Plus ~$9.99/month, Professional ~$14.99/month
  • NewsBlur: Free (64 sites, limited fetches), Premium $36/year (~$3/month)

Self-hosted JARR:

  • Software license: $0 [3]
  • VPS: $4–6/month on Hetzner or Contabo (PostgreSQL and the queue worker need memory — 1GB minimum, 2GB comfortable for several hundred feeds)
  • Your setup time

For a solo user paying $8–10/month for Feedly or Inoreader, self-hosted JARR saves roughly $50–100/year net of VPS costs. That’s not a dramatic number. The stronger case is data ownership and the clustering feature, not the price delta [1][2].

One licensing note: AGPL-3.0 is a copyleft license. If you’re a developer who wants to embed JARR into a commercial product, you’d need to open-source the entire application under AGPL as well. For personal or organizational self-hosting with no redistribution intent, this is irrelevant [3].


Deployment reality check

The README references a separate INSTALL.md [1] that wasn’t available in the provided materials. Based on the documented stack and the blog post:

What you’ll need:

  • Python 3 runtime (verify current version requirement in INSTALL.md before starting — the v1 post referenced Python 3.4, which is EOL)
  • PostgreSQL database
  • A queue/worker service for the crawler
  • A reverse proxy (Caddy or nginx) for HTTPS if you want remote access
  • A domain name

What’s unclear:

  • Docker Compose availability — not confirmed from available documentation
  • Whether OPML import works (essential if you’re migrating from another reader)
  • Current dependency state

Honest flags before deploying:

The reference to Python 3.4 in the blog post is either documentation lag or a sign the codebase hasn’t been touched in years. Python 3.4 reached end-of-life in 2019. Before provisioning a server, check the actual commit history at https://github.com/jaesivsm/jarr and look at when requirements.txt or pyproject.toml was last updated.

130 GitHub stars is low for a tool you’d build production infrastructure around. FreshRSS, the closest maintained alternative, has 10,000+. Lower adoption means fewer eyes on bugs, fewer community guides, and higher single-maintainer dependency [3].

GitHub metadata for JARR (last commit date, open issues, fork count) was not returned in the available data. That’s the first thing to check before you spend an afternoon on this deployment.

Realistic estimate for a developer familiar with Python deployments: 1–2 hours if Docker Compose exists, 3–4 hours if manual setup is required. Non-technical users should not attempt this.


Pros and cons

Pros

  • TF-IDF article clustering. A real, functional answer to the duplicate-story problem that no other major self-hosted RSS reader solves by default. If overlapping news coverage is your pain point, this feature is worth the investigation [1][2].
  • Readability integration. Per-feed automatic content fetching for summary-only feeds. Useful especially for aggregator feeds like HackerNews [2].
  • REST API. Documented and live at api.jarr.info — enables automation, third-party clients, or custom integrations [1][3].
  • Official hosted instance. Try the actual software at app.jarr.info before committing to infrastructure. Rare for a tool of this size [1].
  • Mobile-responsive. Works on phones and tablets [2].
  • AGPL-3.0. Free to self-host without per-seat fees, per-feed limits, or expiring trials [3].

Cons

  • Low adoption signal. 130 GitHub stars puts JARR well below any other self-hosted RSS reader worth mentioning. Less community means fewer guides, slower bug discovery, and the risk that a single maintainer going quiet means the project goes dark [3].
  • Maintenance uncertainty. Commit history and last-update date were not available in the provided data. The oldest available documentation references Python 3.4. You must verify the current project health before deploying [1][3].
  • Complex stack. Python, PostgreSQL, and a queue worker is a heavier deployment than Miniflux’s single binary or FreshRSS’s single PHP container. More components means more to maintain.
  • No confirmed Docker Compose. INSTALL.md exists but wasn’t available — the setup process is not publicly documented in a way that builds confidence [1].
  • No independent reviews. Zero community coverage means no independent data on reliability, edge-case behavior, or upgrade stability. You’re flying blind on everything beyond the README.
  • AGPL copyleft. Can’t be embedded in a proprietary application without open-sourcing it under AGPL [3].
  • Feature gaps unconfirmed. OPML import, full-text search, multi-user access controls, and keyboard shortcuts are all standard RSS reader features — none are clearly documented in available materials.

Who should use this / who shouldn’t

Use JARR if:

  • You follow 20+ RSS feeds covering overlapping topics and want deduplication that actually works at the content level.
  • You’re a developer comfortable with Python/PostgreSQL deployments and you want to evaluate the clustering feature on your own terms.
  • You want to try the official instance first before committing infrastructure — app.jarr.info lets you test the core feature without setup [1].

Skip it (try FreshRSS) if:

  • You want a well-documented, actively maintained self-hosted reader with Docker Compose, OPML import, multi-user support, and a plugin ecosystem. FreshRSS has 10,000+ stars and extensive community guides.

Skip it (try Miniflux) if:

  • You want the operationally simplest possible self-hosted reader. Miniflux is a single Go binary, trivial to deploy and update, low memory usage. No clustering, but nothing to break either.

Skip it (stay on Feedly or Inoreader) if:

  • You’re not technical and can’t troubleshoot a Python environment or database connection error. The dollar savings over $8–10/month SaaS don’t justify the deployment risk for non-developers.
  • You need reliable mobile apps and browser extensions backed by a company with uptime SLAs.

Use the official instance if:

  • You’re evaluating whether clustering actually solves your problem before investing in a self-hosted deployment. That’s the rational first step [1].

Alternatives worth considering

FreshRSS — The most maintained self-hosted RSS reader available. PHP-based, Docker-friendly, multi-user, OPML import/export, active development, 10,000+ stars. No content clustering, but every other standard feature is present and documented. First recommendation for most people who want to leave Feedly.

Miniflux — Go binary, minimal dependencies, extremely low resource usage (runs well on 256MB RAM). Fast, clean, and operationally simple. No clustering. Best choice if you want something that just works and never needs attention.

Tiny Tiny RSS (TTRSS) — PHP-based, long-running project, plugin ecosystem, dedicated Android app. More complex to configure than FreshRSS but has a larger legacy community.

NewsBlur — Django-based open-source reader with a hosted option at $3/month. Includes an intelligence layer that learns which types of stories you prefer and surfaces them first. The closest alternative to JARR in terms of “RSS reader that does something smarter than just aggregating.” More complex to self-host but better documented.

Feedly — The SaaS benchmark. Best polish, Leo AI for story prioritization, browser extensions, mobile apps. $8/month and up. No self-hosting. The tool most people are trying to replace.

Inoreader — Strong Feedly competitor, $3.33–$14.99/month, rules-based filtering and automation. Closed source, no self-hosting option.

For anyone specifically drawn to JARR’s clustering feature, NewsBlur is the closest alternative with a more established self-hosting path. If clustering isn’t your priority, FreshRSS is the straightforward answer.


Bottom line

JARR has one feature that makes it worth knowing about: TF-IDF article clustering across feeds. If reading 20+ news sources that cover the same territory is your actual problem, JARR addresses it directly in a way no other popular self-hosted reader does. The official instance at app.jarr.info means you can test whether that feature actually solves your specific noise problem before touching a server.

Everything else about JARR is uncertain. The maintenance signal is weak, the adoption is low, and there is no independent community coverage to calibrate against. If the clustering feature is compelling but the deployment risk isn’t, check the GitHub commit history first — the project health is the variable that determines whether this is a viable production tool or an abandoned experiment that happens to still run. If the commits are recent and the issues are being addressed, JARR deserves a serious look for its niche. If the last commit was a year ago, FreshRSS or Miniflux will serve you better without the risk.


Sources

  1. GitHub — jaesivsm/JARR (README, project documentation, 130 stars, AGPL-3.0). https://github.com/jaesivsm/jarr
  2. 1pxsolidblack — Introducing JARR v1 (official project blog post by maintainer; stack, UI, feature roadmap, history). https://1pxsolidblack.pl/jarr-en.html
  3. JARR tool profile (structured fields: slug, license, category, star count, website, canonical features). Internal enrichment record.

Note: The four third-party articles provided as research sources contained no coverage of JARR the RSS reader — they referenced Jean-Michel Jarre the musician, an experimental radio program, a book blog, and a music download site. No independent third-party reviews of the software were available. This review is based on primary sources only.

Features

Integrations & APIs

  • REST API