explaingit

samuelclay/newsblur

7,457PythonAudience · generalComplexity · 4/5Setup · moderate

TLDR

A full-featured, self-hostable personal news reader that aggregates RSS feeds, learns your reading preferences to surface relevant stories, and includes mobile apps and a social sharing feature called Blurblog.

Mindmap

mindmap
  root((NewsBlur))
    What it does
      RSS feed reader
      Story preference training
      Social sharing Blurblog
      MCP server for AI
    Tech stack
      Python and Django
      PostgreSQL
      MongoDB
      Redis
    Deployment
      Hosted at newsblur.com
      Self-host via Docker
    Audience
      News readers
      Self-hosters
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Self-host your own RSS news reader on a server using Docker so you control all your feed data.

USE CASE 2

Subscribe to blogs and websites and let NewsBlur's preference training highlight stories you are likely to enjoy.

USE CASE 3

Share articles publicly on your Blurblog page and follow what other NewsBlur users are reading.

USE CASE 4

Connect an AI assistant to your NewsBlur account via its MCP server to interact with your feeds programmatically.

Tech stack

PythonDjangoPostgreSQLMongoDBRedisDocker

Getting it running

Difficulty · moderate Time to first run · 1h+

Requires Docker and runs multiple services: PostgreSQL, MongoDB, and Redis. Setup is designed to start with a few commands but needs sufficient server RAM.

In plain English

NewsBlur is a personal news reader that lets you subscribe to websites and blogs through their RSS feeds, which are a standardized way sites publish new content so readers can follow them without visiting each site manually. It shows you stories in a clean interface and can display the original web page alongside the article, giving you the full context instead of just a text summary. One of its more distinctive features is a training system. You can tell NewsBlur whether you like or dislike specific authors, topics, or keywords, and it will learn from those signals to automatically highlight stories you are likely to enjoy and de-emphasize ones you are not. It also has social features: you can share articles on a public page called a Blurblog and see what other users are sharing. NewsBlur is available as a web app at newsblur.com and has free native apps for iOS and Android. The free account tier supports up to 64 feed subscriptions, with paid plans for more. You can also run your own copy of NewsBlur using this repository and Docker, which means setting up and running the full application on a server you control rather than using the hosted service. The self-hosted setup is designed to start with just a few commands. The technology behind it is a Python web framework called Django for the backend, with several databases running in parallel: PostgreSQL for account data, MongoDB for storing articles, and Redis for caching. It also includes an MCP server, which allows AI assistants to connect to your NewsBlur account and interact with your feeds and stories on your behalf. The project has been running as a live service since at least the early 2010s and the full source code has been open from the start, which is uncommon for a consumer product that also operates as a paid subscription service.

Copy-paste prompts

Prompt 1
How do I self-host NewsBlur using Docker? Walk me through the setup steps to get the web app running on my own server.
Prompt 2
How does NewsBlur's story training system work, and how do I teach it to highlight articles about a specific topic while hiding ones I dislike?
Prompt 3
I want to connect an AI assistant to my NewsBlur account using its MCP server. How do I set that up and what can the AI do with my feeds?
Prompt 4
What databases does NewsBlur require, and what does each one store? I want to understand the architecture before self-hosting.
Open on GitHub → Explain another repo

← samuelclay on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.