A personal news reader and social network that uses training to filter and highlight RSS feeds.

NewsBlur is an open-source, self-hosted application that functions as a personal news reader and social news network. It aggregates content via RSS feeds, allowing users to follow websites, YouTube channels, and email newsletters in a single interface. The software is deployed as a server-side application and is accessible via web browsers or native mobile applications for iOS and Android.
The application focuses on content filtering through a training system where users can highlight or hide stories based on their preferences. It supports various reading layouts and provides tools for organizing and sharing discovered content through a public or private blurblog. Users can host their own instance using Docker and Docker Compose to maintain full control over their data and configuration settings.
NewsBlur is built as a Django application using Python with a Backbone.js frontend. Its architecture relies on a combination of PostgreSQL for relational data such as accounts and subscriptions, MongoDB for storing stories and read states, and Redis for caching and story assembly. Optional Elasticsearch integration provides enhanced search capabilities, while Celery handles background feed fetching. The system also includes Node.js services for image processing and text extraction to ensure content is displayed correctly.
For developers and advanced users, the software supports Git worktrees, allowing multiple features to be developed simultaneously on unique ports. It also integrates with IFTTT to connect feed activity to other web services. The inclusion of an MCP server allows AI agents to perform actions like marking stories as read, subscribing to new feeds, or analyzing reading patterns to suggest training rules.
This software is designed for users who want a customizable, self-hosted environment for managing large volumes of web feeds.
Join our newsletter to get shiny new open source software delivered to your inbox. Unsubscribe anytime.