<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Daniel Silva</title>
    <description>The latest articles on DEV Community by Daniel Silva (@djsilva99).</description>
    <link>https://dev.to/djsilva99</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3822831%2F2dcb4721-6092-46fc-9022-784068477139.jpeg</url>
      <title>DEV Community: Daniel Silva</title>
      <link>https://dev.to/djsilva99</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/djsilva99"/>
    <language>en</language>
    <item>
      <title>NebulaPicker: A Self-Hosted App to Easily Generate Filtered RSS Feeds</title>
      <dc:creator>Daniel Silva</dc:creator>
      <pubDate>Fri, 13 Mar 2026 23:41:57 +0000</pubDate>
      <link>https://dev.to/djsilva99/nebulapicker-a-self-hosted-app-to-easily-generate-filtered-rss-feeds-5ac9</link>
      <guid>https://dev.to/djsilva99/nebulapicker-a-self-hosted-app-to-easily-generate-filtered-rss-feeds-5ac9</guid>
      <description>&lt;p&gt;RSS is still one of the best ways to follow websites without relying on algorithms or centralized platforms. But if you follow many feeds, the signal-to-noise ratio can quickly become a problem.&lt;/p&gt;

&lt;p&gt;Sometimes you only want specific types of posts, articles matching keywords, or content from multiple feeds combined into a curated stream.&lt;/p&gt;

&lt;p&gt;That’s exactly why I built NebulaPicker.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NebulaPicker&lt;/strong&gt; is a self-hosted app that generates filtered RSS feeds in a simple way. It allows you to take existing feeds, apply filtering rules, and produce new clean RSS feeds you can use anywhere.&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/djsilva99/nebulapicker" rel="noopener noreferrer"&gt;https://github.com/djsilva99/nebulapicker&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Many RSS users face a few common challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feeds often contain too much content&lt;/li&gt;
&lt;li&gt;You may only care about specific topics or keywords&lt;/li&gt;
&lt;li&gt;Curating feeds manually is tedious&lt;/li&gt;
&lt;li&gt;Many tools are hosted services, not self-hosted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;What I wanted was a tool that could:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;take multiple RSS feeds&lt;/li&gt;
&lt;li&gt;filter them&lt;/li&gt;
&lt;li&gt;generate a new RSS feed with only the relevant items&lt;/li&gt;
&lt;li&gt;and do this in a simple, self-hosted way.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What NebulaPicker Does
&lt;/h2&gt;

&lt;p&gt;NebulaPicker lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Subscribe to existing RSS feeds using CRON jobs&lt;/li&gt;
&lt;li&gt;Filter items based on rules&lt;/li&gt;
&lt;li&gt;Generate new curated RSS feeds&lt;/li&gt;
&lt;li&gt;Combine multiple sources into one clean feed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The result is a filtered feed you can plug into any RSS reader.&lt;/p&gt;

&lt;p&gt;Many RSS tools today are cloud services. NebulaPicker is different: it is self-hosted.&lt;/p&gt;

&lt;p&gt;Running it yourself means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You own your data&lt;/li&gt;
&lt;li&gt;No API limits&lt;/li&gt;
&lt;li&gt;No subscriptions&lt;/li&gt;
&lt;li&gt;Full control over your feeds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;NebulaPicker is designed to be simple to run and maintain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Example Use Case
&lt;/h2&gt;

&lt;p&gt;Imagine you want a feed that only contains &lt;strong&gt;AI-related articles&lt;/strong&gt; from several tech blogs.&lt;/p&gt;

&lt;p&gt;With NebulaPicker you can:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Add multiple RSS feeds&lt;/li&gt;
&lt;li&gt;Create a filter for keywords like &lt;em&gt;AI&lt;/em&gt;, &lt;em&gt;LLM&lt;/em&gt;, or &lt;em&gt;machine learning&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Generate a new RSS feed containing only those articles&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You can then subscribe to that filtered feed in any RSS reader.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;p&gt;NebulaPicker is built with a modern and lightweight stack designed for simplicity and reliability.&lt;/p&gt;

&lt;p&gt;Backend API: Built with &lt;strong&gt;FastAPI&lt;/strong&gt;, providing a fast and efficient REST API.&lt;/p&gt;

&lt;p&gt;Database: Uses &lt;strong&gt;PostgreSQL&lt;/strong&gt; for storing feeds, pickers, and generated data.&lt;/p&gt;

&lt;p&gt;Frontend: The web interface is built with &lt;strong&gt;Next.js&lt;/strong&gt;, offering a responsive and smooth user experience.&lt;/p&gt;

&lt;p&gt;This architecture makes NebulaPicker easy to deploy while remaining powerful enough to handle feed filtering and content extraction workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  Available Editions
&lt;/h2&gt;

&lt;p&gt;NebulaPicker currently comes in two editions, each designed for a slightly different workflow.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Original Edition
&lt;/h3&gt;

&lt;p&gt;The Original Edition represents the original vision of NebulaPicker.&lt;/p&gt;

&lt;p&gt;It focuses on the core idea: generating filtered RSS feeds in a simple and self-hosted way.&lt;/p&gt;

&lt;p&gt;With this edition you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add RSS feeds as sources&lt;/li&gt;
&lt;li&gt;Apply filtering rules to select relevant items&lt;/li&gt;
&lt;li&gt;Generate new curated RSS feeds&lt;/li&gt;
&lt;li&gt;Use those feeds in any RSS reader&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This edition is ideal if you want a lightweight tool to filter and curate RSS content without additional processing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2wgaargve0atletv333.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2wgaargve0atletv333.png" alt="nebulapicker settings" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furidcxcll5jdc3zkf7o2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Furidcxcll5jdc3zkf7o2.png" alt="nebulapicker feed" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwslb2x4e9l64nhmodybu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwslb2x4e9l64nhmodybu.png" alt="nebulapicker generated RSS feed" width="800" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Content Extractor Edition
&lt;/h3&gt;

&lt;p&gt;The Content Extractor Edition extends NebulaPicker with full article extraction capabilities.&lt;/p&gt;

&lt;p&gt;It integrates with &lt;strong&gt;Wallabag&lt;/strong&gt; to retrieve the complete article content, not just the RSS summary.&lt;/p&gt;

&lt;p&gt;This is useful when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;RSS feeds only provide short excerpts&lt;/li&gt;
&lt;li&gt;You want full-text content in the generated feeds&lt;/li&gt;
&lt;li&gt;You use read-later tools or offline readers&lt;/li&gt;
&lt;li&gt;You want better searching or archiving&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By combining NebulaPicker filtering with Wallabag extraction, you can build filtered RSS feeds that also include the full article text. Nebulapicker is also responsive, so it is mobile friendly.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyp1708cji63570fmrolt.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyp1708cji63570fmrolt.gif" alt="nebulapicker content extractor mobile version" width="384" height="846"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;NebulaPicker is open source and easy to run. It can be started quickly using Docker Compose, without complex setup. You can find the instructions in &lt;a href="https://github.com/djsilva99/nebulapicker?tab=readme-ov-file#-quick-start-docker-compose" rel="noopener noreferrer"&gt;the nebulapicker github repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Feedback Welcome
&lt;/h2&gt;

&lt;p&gt;NebulaPicker is still evolving, and feedback is very welcome.&lt;/p&gt;

&lt;p&gt;⭐ If NebulaPicker sounds useful to you, feel free to try it and leave a star on &lt;a href="https://github.com/djsilva99/nebulapicker" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; — it really helps the project grow.&lt;/p&gt;

</description>
      <category>rss</category>
      <category>webdev</category>
      <category>opensource</category>
      <category>python</category>
    </item>
  </channel>
</rss>
