After PolitePaul capped free accounts at 3 active subscriptions, a personal, self-hosted web-to-RSS service came into being. FeedLantern supports automatic content detection, cookies, batch management, encrypted backups, and Docker Compose deployment.
It all started with an email from PolitePaul.
Intro
The email announced that from August 29, 2026, free accounts would support at most 3 active feeds, and the update interval for free feeds would be adjusted to 1.5 hours. Additional feeds wouldn't be deleted, but they'd be frozen until you freed up a slot or upgraded your plan.
“
Free accounts will support up to 3 active feeds.
Services like PolitePaul are for pages that lack a native RSS feed, that RSSHub has no route for, or whose existing routes have broken — and there really aren't that many such pages. Still, the three-feed cap makes the service barely usable. My account already had 13 subscriptions at the time, and quite a few of those pages only updated once in a long while. A page that updates daily eats one slot, and a page that updates every few weeks or even months eats one slot just the same; slots are not allocated according to how often you actually get updates.
Under the monthly plans of the day, 20 feeds cost US$5.54 a month and 50 feeds cost US$11.77 a month. Twenty slots was still tight for subscriptions built up over a long period, while fifty meant a higher fixed outlay. PolitePaul has to carry the cost of crawling, storage, and maintenance, so the change to the free tier is understandable — but for how I use the service, it was just too expensive.
I then looked around at other similar services, but nearly all of them come with a hefty price tag; meanwhile I couldn't find any viable open-source alternative either.
So I thought, why not build one myself? GPT-6 astra had just come out, Codex made coding almost trivial, and I already had servers and a domain on hand.
Requirements
First, let me lay out the requirements.
The basic pipeline of converting a web page to RSS isn't complicated: load the page, find the article list, extract titles and links, refresh on a schedule, and output standard RSS. I already had the server and domain, and the tooling was more than enough to build such an app, so the project was named FeedLantern.
FeedLantern is meant for personal, self-hosted use. It isn't focused on offering a service to others — there are no paid plans, and it doesn't require hooking into any external AI service. If you push heavy or very frequent usage, your IP might get flagged, so I'd still recommend deploying it for your own needs.
Codex and GPT-6 astra were involved in development and testing, while everyday web crawling runs on local rules and a browser service.
Automatic detection and cookie support
On this front, FeedLantern actually goes even further than PolitePaul.
Here's the default flow: when you create a subscription, Chromium loads the real page in the background, waits for dynamic content to appear, and then looks through the rendered DOM for repeating article or card structures. At that point, the system tries to match titles, links, images, summaries, and dates, and gives you samples plus a confidence score.
When several plausible lists exist, the system shows the candidates for you to pick from; and if the result isn't accurate, you can fall back to the visual editor to re-select fields or revise rules.
When you have a large batch of pages to add, this saves you from clicking each element one by one — it's almost a one-click job.
Some pages need a login to render correctly, so there's also an option for custom cookies. The service accepts cookie strings and OpenCookie JSON, and the credentials are stored encrypted on your own machine — they're never written into logs or ordinary query responses. Detection doesn't rely on any external model, and browser scraping with rule extraction can keep running on the server.
From usable to maintainable
Beyond the initial page detection, day-to-day use calls for proper subscription management. FeedLantern offers both list and card views, and supports adding URLs in bulk, copying RSS addresses in bulk, pausing, resuming, refreshing, and deleting — as well as encrypted backups, config import, and restoring on another server.
The subscription list name stays in sync with the RSS feed title, and changing the name doesn't affect the feed address, secret key, history, or refresh schedule. The service runs with a single-admin login, no open registrations, and no multi-user or billing system.
Simple deployment
Docker Compose only listens on port 4321 locally on the server, and public access is handled by Nginx. Create a directory, download two files, and you're ready to go:
Shell
mkdir feedlantern
cd feedlantern
curl -fLO https://raw.githubusercontent.com/Jaaayden/feedlantern/v0.2.2/docker-compose.yml
curl -fLO https://raw.githubusercontent.com/Jaaayden/feedlantern/v0.2.2/seccomp_profile.json
docker compose up -d
docker compose logs --tail=50 feedlantern
Then visit http://127.0.0.1:4321 to finish the initial admin setup. If you're using a domain, drop the Nginx config template from the repo into your site config, replace the domain and existing certificate paths, and forward requests to http://127.0.0.1:4321. Detailed configuration, backup, and troubleshooting guidance lives in the repo's doc folder.
Tail
This was squarely an attempt to meet my own needs, but if you're a heavy RSS user, it should come in handy — after all, it seems to be the only open-source alternative among a field of paid services.
FeedLantern is now out as v0.2.2, released under the MIT license. The project code and deployment files live in the GitHub repository — hope it helps you too.
It all started with an email from PolitePaul.
Intro
The email announced that from August 29, 2026, free accounts would support at most 3 active feeds, and the update interval for free feeds would be adjusted to 1.5 hours. Additional feeds wouldn't be deleted, but they'd be frozen until you freed up a slot or upgraded your plan.
Services like PolitePaul are for pages that lack a native RSS feed, that RSSHub has no route for, or whose existing routes have broken — and there really aren't that many such pages. Still, the three-feed cap makes the service barely usable. My account already had 13 subscriptions at the time, and quite a few of those pages only updated once in a long while. A page that updates daily eats one slot, and a page that updates every few weeks or even months eats one slot just the same; slots are not allocated according to how often you actually get updates.
Under the monthly plans of the day, 20 feeds cost US$5.54 a month and 50 feeds cost US$11.77 a month. Twenty slots was still tight for subscriptions built up over a long period, while fifty meant a higher fixed outlay. PolitePaul has to carry the cost of crawling, storage, and maintenance, so the change to the free tier is understandable — but for how I use the service, it was just too expensive.
I then looked around at other similar services, but nearly all of them come with a hefty price tag; meanwhile I couldn't find any viable open-source alternative either.
So I thought, why not build one myself? GPT-6 astra had just come out, Codex made coding almost trivial, and I already had servers and a domain on hand.
Requirements
First, let me lay out the requirements.
The basic pipeline of converting a web page to RSS isn't complicated: load the page, find the article list, extract titles and links, refresh on a schedule, and output standard RSS. I already had the server and domain, and the tooling was more than enough to build such an app, so the project was named FeedLantern.
FeedLantern is meant for personal, self-hosted use. It isn't focused on offering a service to others — there are no paid plans, and it doesn't require hooking into any external AI service. If you push heavy or very frequent usage, your IP might get flagged, so I'd still recommend deploying it for your own needs.
Codex and GPT-6 astra were involved in development and testing, while everyday web crawling runs on local rules and a browser service.
Automatic detection and cookie support
On this front, FeedLantern actually goes even further than PolitePaul.
Here's the default flow: when you create a subscription, Chromium loads the real page in the background, waits for dynamic content to appear, and then looks through the rendered DOM for repeating article or card structures. At that point, the system tries to match titles, links, images, summaries, and dates, and gives you samples plus a confidence score.
When several plausible lists exist, the system shows the candidates for you to pick from; and if the result isn't accurate, you can fall back to the visual editor to re-select fields or revise rules.
When you have a large batch of pages to add, this saves you from clicking each element one by one — it's almost a one-click job.
Some pages need a login to render correctly, so there's also an option for custom cookies. The service accepts cookie strings and OpenCookie JSON, and the credentials are stored encrypted on your own machine — they're never written into logs or ordinary query responses. Detection doesn't rely on any external model, and browser scraping with rule extraction can keep running on the server.
From usable to maintainable
Beyond the initial page detection, day-to-day use calls for proper subscription management. FeedLantern offers both list and card views, and supports adding URLs in bulk, copying RSS addresses in bulk, pausing, resuming, refreshing, and deleting — as well as encrypted backups, config import, and restoring on another server.
The subscription list name stays in sync with the RSS feed title, and changing the name doesn't affect the feed address, secret key, history, or refresh schedule. The service runs with a single-admin login, no open registrations, and no multi-user or billing system.
Simple deployment
Docker Compose only listens on port 4321 locally on the server, and public access is handled by Nginx. Create a directory, download two files, and you're ready to go:
Then visit http://127.0.0.1:4321 to finish the initial admin setup. If you're using a domain, drop the Nginx config template from the repo into your site config, replace the domain and existing certificate paths, and forward requests to http://127.0.0.1:4321. Detailed configuration, backup, and troubleshooting guidance lives in the repo's doc folder.
Tail
This was squarely an attempt to meet my own needs, but if you're a heavy RSS user, it should come in handy — after all, it seems to be the only open-source alternative among a field of paid services.
FeedLantern is now out as v0.2.2, released under the MIT license. The project code and deployment files live in the GitHub repository — hope it helps you too.