JARR is a web news aggregator. https://app.jarr.info
  • Python 56.2%
  • JavaScript 42.8%
  • Makefile 0.7%
  • HTML 0.2%
Find a file
François Schmidts de69225460
All checks were successful
JARR CI / Frontend tests (push) Successful in 45s
JARR CI / Backend tests & lint (push) Successful in 4m25s
JARR CI / Build & push images (push) Successful in 36m42s
feat(jsclient): add OPML import/export to user settings panel
2026-03-10 11:23:54 +01:00
.forgejo/workflows test(jsclient): add comprehensive frontend test suite (126 tests) 2026-03-09 17:19:02 +00:00
Dockerfiles test(jsclient): add comprehensive frontend test suite (126 tests) 2026-03-09 17:19:02 +00:00
example_conf chore(dependencies) & feat(metrics) upgrading to python3.13 and moving to regular prometheus implementation (#273) 2025-08-08 20:15:26 +02:00
jarr fix(feed): handle icon URL encoding normalization in feed creation 2026-02-08 14:18:42 +01:00
jsclient feat(jsclient): add OPML import/export to user settings panel 2026-03-10 11:23:54 +01:00
migrations Redoing endpoint for getting counts of unread articles 2022-05-26 12:29:04 +02:00
tests fix(feed): handle icon URL encoding normalization in feed creation 2026-02-08 14:18:42 +01:00
.gitignore V3/better ui api (#102) 2020-05-03 15:23:36 +02:00
.gitmodules first step to v3 2018-08-25 00:47:02 +02:00
.mypy.ini Bumping backend dependencies (#190) 2022-03-03 15:16:19 +01:00
CONTRIBUTING.md docs: rewrite README, INSTALL, CONTRIBUTING and SECURITY 2026-02-27 11:31:31 +01:00
COPYING License is now AGPLv3. 2014-04-09 08:18:03 +02:00
ep_celery.py chore(dependencies) & feat(metrics) upgrading to python3.13 and moving to regular prometheus implementation (#273) 2025-08-08 20:15:26 +02:00
INSTALL.md docs: rewrite README, INSTALL, CONTRIBUTING and SECURITY 2026-02-27 11:31:31 +01:00
Makefile test(jsclient): add comprehensive frontend test suite (126 tests) 2026-03-09 17:19:02 +00:00
Pipfile chore(warnings) clearing unittest warnings (#274) 2026-02-07 15:49:45 +01:00
Pipfile.lock chore(dependencies) update of minor and patch version 2026-02-07 15:49:45 +01:00
pyproject.toml feat(linting): adding linting configuration 2026-02-09 10:13:32 +01:00
README.md test(jsclient): add comprehensive frontend test suite (126 tests) 2026-03-09 17:19:02 +00:00
SECURITY.md test(jsclient): add comprehensive frontend test suite (126 tests) 2026-03-09 17:19:02 +00:00
wsgi.py Bumping dependencies (#225) 2023-06-13 17:15:01 +02:00

JARR - Just Another RSS Reader

JARR is a self-hostable, web-based news aggregator and reader.

Its main feature is article clustering: JARR groups related articles from different feeds together, either by matching links or by computing content similarity using TF-IDF (Term Frequency-Inverse Document Frequency). If several of your feeds cover the same story, JARR will show it once.

Official instance

A public instance is available:

Features

  • Article clustering across feeds using link matching and TF-IDF similarity
  • Multiple feed types: RSS/Atom, JSON Feed, Reddit, Tumblr, RSS-Bridge, and custom scrapers
  • OPML import/export for easy migration from other readers
  • OAuth login via Google, Twitter, Facebook, and LinuxFr
  • Mobile-friendly React frontend with swipe gestures
  • Read/liked/unread filtering with per-feed and per-category unread counts
  • Background crawling via Celery workers with configurable scheduling
  • REST API with auto-generated Swagger documentation
  • Dark mode with automatic OS preference detection

Tech stack

Layer Technology
Backend Python 3.13, Flask, Flask-RESTX, SQLAlchemy 2
Frontend React 18, Redux Toolkit, MUI v6
Database PostgreSQL 15+
Task queue Celery 5 with RabbitMQ
Cache Redis
Auth JWT (access + refresh tokens)
Containers Docker, Docker Compose

Installation

See INSTALL.md for detailed setup instructions (Docker-based or local development).

Contributing and security

See CONTRIBUTING.md for development setup, architecture, testing, and security practices.

See SECURITY.md for security practices and how to report vulnerabilities.

Release

Bump the version, commit, and tag in one step:

make release

Docker tags

Trigger Images Tags
Push to master jarr-{base,server,worker,front} :latest
Semver tag (e.g. 1.2.3) jarr-{base,server,worker,front} :v1, :v1.2, :v1.2.3
Other tag jarr-{base,server,worker,front} :{tag}

CI/CD

The Forgejo Actions workflow (.forgejo/workflows/ci.yml) runs tests and pushes multi-arch Docker images on every push to master or any tag.

Repository configuration

Name Type Description
DOCKER_REGISTRY Variable Registry URL (e.g. registry.example.com/user)
PUBLIC_URL Variable Frontend public URL (e.g. https://app.jarr.info)
REACT_APP_API_URL Variable API URL for frontend (e.g. https://api.jarr.info)
DOCKER_USERNAME Secret Registry username
DOCKER_PASSWORD Secret Registry password/token

License

JARR is licensed under the GNU Affero General Public License v3 (AGPL-3.0).

If you run a modified version of JARR as a network service, you must make the modified source code available to your users.