Skip to content
 
 

Repository files navigation

RSSMonster

A modern, self-hosted RSS reader that turns information overload into organized, explainable reading.

Release CI Docker pulls GitHub stars License: MIT

Documentation · Quick start · Features · Choose a deployment

RSSMonster Reader Mode: navigation, article list, and selected article in a three-panel workspace

Why RSSMonster?

RSSMonster treats your feeds as a stream of signals rather than a pile of unread items. Keep the familiar feed inbox, then use intelligent organization to decide what deserves attention and how different reports fit together.

  • Follow a story without rereading every headline. Semantic Events collect reporting about the same occurrence and let you expand its coverage. Duplicate handling separately identifies repeated content, preserving the distinction between a syndicated copy and another publisher's reporting.
  • Understand why something ranks highly. Recommended emphasizes your personal interests; Top Stories surfaces current coverage with broad source support. Inspect the contributing signals, or choose chronological reading when you simply want to catch up.
  • Define your own reading views. Declarative Smart Folders turn advanced search expressions into reusable selections. A project watchlist, today's unread articles, and a quality-focused research inbox can each have their own rules without moving articles between collections.
  • Read comfortably throughout the day. A three-panel desktop Reader, spacious Expanded view, compact summaries, keyboard navigation, and mobile gestures support both quick scans and longer reading sessions.
  • Choose how much infrastructure you need. Start with SQLite for lightweight personal reading, or use MySQL and optional local inference for semantic organization and background analysis. You control storage and provider choices.

See RSSMonster in action

The hero shows Reader Mode. These views show other ways to read and explore your library, including features available with inference enabled. Click or tap a screenshot to view it at full resolution. See reading modes for the controls and layout differences.

Scan or read in depth

Expanded Mode
Read article content and compare story sources.
Summarized Mode
Scan short previews in a compact stream.
RSSMonster Expanded Mode showing full articles in a reading stream RSSMonster Summarized Mode showing compact article summaries

Follow stories and interests

Events and Topics
Inspect story coverage and broader themes.
Interest Islands
Explore recurring interests shaped by reading feedback.
RSSMonster event and topic insights dashboard RSSMonster interest islands insights dashboard

Read across devices

Landscape
Keep navigation visible on wider screens.
Portrait
Read a focused stream with compact touch controls.
RSSMonster responsive landscape layout in dark mode RSSMonster responsive portrait layout in dark mode

Main capabilities

Reading

Use Reader, Expanded, or Summarized mode; Headlines offers a denser list, while Summary Bullets displays generated summaries when analysis is available. Bookmark articles, open original sources, and control when articles are marked read. Keyboard shortcuts, portrait bookmark swipes, and light, dark, or system themes support everyday reading.

Install the Progressive Web App on supported devices and optionally enable Web Push for new articles. The app caches its shell; loading articles and saving reading state still require server access.

Organization

Arrange subscriptions into categories, label articles with tags, and keep favorites for later. Feed item filters accept or exclude future entries per subscription. Automated actions apply regular-expression rules to bookmark, mark read, tag, hide, or override scores on matching incoming articles.

Search combines words, dates, article state, tags, and supported score or semantic filters. Save a query such as @today unread:true sort:desc as a Smart Folder; new matches appear automatically. Inference-backed score and semantic selections need the corresponding processing to be enabled and available.

Intelligence

Events connect reports about an occurrence; Topics connect broader themes; Interest Islands learn recurring personal interests from reading feedback. Related-article recommendations use semantic evidence, while expandable story sources keep alternative coverage accessible. Sparse evidence can legitimately produce no recommendations.

Scoring and Ranking documents Recommended, Top Stories, and Quality ordering. Article quality describes writing, tone, and promotional content; FeedTrust describes a subscribed source's recent value. These remain separate signals, and neither is factual verification.

The optional assistant supports conversational discovery and source-based answers about stored articles. It uses an OpenAI provider and is configured separately from local embeddings, summaries, tags, and scoring.

Self-hosting and compatibility

Run with SQLite or MySQL and keep accounts, subscriptions, and reading state scoped to each user. Move subscriptions with OPML import/export, or expose saved selections as private, tokenized generated RSS feeds. Fever and Google Reader compatibility connect supported client workflows; consult their documented contracts and limitations when choosing a client.

Choose a deployment

Choose the profile before starting: the screenshots showcase capabilities from the broader product, and the default profile deliberately runs without models.

Deployment Best for Included capabilities
SQLite quick start Trying RSSMonster and lightweight personal reading Web reader, scheduled crawling, search, subscriptions, and rule-based organization. No separate database service, inference service, or AI worker.
Comprehensive MySQL deployment Local intelligent processing, multiple active users, and higher write concurrency MySQL 8.4, crawl and AI workers, Qwen embeddings and generation, and ModernBERT scoring for analysis, semantic organization, and recommendations.

Saved search-based Smart Folders work in both profiles. Choose the comprehensive profile for local classification, embeddings, scoring, semantic labels, Smart Folder recommendations, and feed rediscovery without an OpenAI API key. These inference-backed features are disabled in the SQLite quick start; the optional OpenAI assistant requires separate configuration. For model downloads, credentials, startup, and readiness checks, follow the MySQL deployment guide.

Database choice and inference settings are separate configuration concerns; these are the two supplied deployment profiles. Read database configuration and model usage before customizing a source installation.

Docker Quick Start

Have Git, Docker Engine or Docker Desktop, and Docker Compose available. The commands below use a POSIX shell and start the default SQLite profile.

1. Clone the repository.

git clone https://github.com/pietheinstrengholt/rssmonster.git
cd rssmonster

2. Create application secrets. Create an owner-only .env in the repository root:

touch .env
chmod 600 .env
openssl rand -hex 32

Run the OpenSSL command twice, then add the two different generated values to .env in place of these placeholders:

JWT_SECRET=replace-with-a-long-random-secret
FEVER_CREDENTIAL_SECRET=replace-with-a-different-long-random-secret

Keep these values private and stable across restarts; never commit the file. On systems without POSIX permissions, restrict access using the host's file access controls.

3. Start RSSMonster and create your account.

docker compose up -d

Open http://localhost:3000. Startup initializes the SQLite database and starts the web application and dedicated crawl worker. Create your first account, then add feeds or import an OPML subscription list. The first account becomes the administrator; see First Login.

Persistent data lives in the rssmonster-data Docker volume, mounted at /app/data. docker compose down stops the deployment while keeping data. Do not use docker compose down -v unless you intend to delete the database volume.

The application port binds to host loopback by default. Before exposing it to other machines, follow configuration and reverse-proxy guidance and configure HTTPS. See Getting Started for complete installation instructions, health checks, logs, and production setup.

Documentation

Use the documentation index to explore the complete guides.

Topic Guides
Installation and deployment Getting Started, manual installation, production deployment
Configuration and storage Environment settings and reverse proxies, SQLite and MySQL, Backup and Restore
Local inference and models Inference administration, Model Usage, Assistant and MCP
Finding and organizing articles Search, Smart Folders, feed item filters, Actions
Semantic architecture and rankings How RSSMonster Works, implementation guide, Scoring, FeedTrust
Notifications and integrations Web Push, Fever API, Google Reader API
Development and maintenance Contributing, npm Commands, Server Jobs

Contributing

Bug reports, documentation improvements, tests, and focused feature contributions are welcome. Read Contributing for development setup, validation, and pull requests. Describe reproducible issues and include your deployment profile so others can investigate the same behavior.

Credits and license

Created by Piethein Strengholt and contributors. Built with Node.js, Express, Vue 3, Sequelize, SQLite/MySQL, Bootstrap Icons, and feedsmith.

Copyright © 2026 Piethein Strengholt. Released under the MIT License.

About

Modern, self-hosted RSS reader with smart folders, powerful search, and a clean three-pane reading experience. Built with Vue and Express.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages