DEV Community

Redreamality
Redreamality

Posted on

A self-hosted publishing and reading stack: 8 notes on Pelican, RSS, Glance, SearXNG and Cloudflare Tunnel

I keep a small garden of notes on tools I've bookmarked, and a cluster of them kept circling one question: how much of a personal publishing and reading setup can you run yourself, cheaply, without handing it to a platform? Here are eight notes from that pile, grouped by the job each tool does. Every link goes to the full note on my site.

Publishing

Pelican. A Python static site generator that still earns its place in 2026. You write Markdown or reStructuredText, it renders Jinja2 themes, emits Atom/RSS on its own, and can import from WordPress or an existing feed. No database and no server-side code, so any static host works. My note covers what Pelican does and where the project stands now, including the recent jump to requiring Python 3.11.

RSS.Beauty. Raw XML feeds look broken to anyone who clicks them. This project uses XSLT to turn RSS 2.0 and Atom 1.0 into a readable, mobile-friendly page with one-click subscribe buttons, and it deploys to Cloudflare Pages, Vercel, Netlify or a Docker container. See my notes on making a feed presentable with RSS.Beauty.

listmonk. Some readers will never install a feed reader, so email is the fallback. The weekly digest I saved walks through standing up listmonk as a self-hosted newsletter and converting between RSS and email in both directions. Here's the listmonk and RSS-to-email write-up.

Reading and finding things

ALL-about-RSS. Less a tool than a map: specs from RSS 0.90 to JSON Feed, hosted and self-hosted readers, feed generators for sites that dropped RSS, and bridges out to Kindle, Telegram, Discord or Mastodon. It also keeps a list of services that quietly removed their feeds. My summary is a guided tour of the ALL-about-RSS list.

Glance. Once you follow enough feeds you want one page for them. Glance is a self-hosted dashboard configured in YAML, with widgets for RSS, Hacker News, subreddits, weather, markets and Docker container status, and it ships as a single binary under 20 MB. The note also explains a common gotcha: widget timeouts are often caused by Pi-hole or AdGuard Home rate-limiting DNS. Read the Glance dashboard note.

SearXNG. A metasearch engine that aggregates results from many search services without tracking or profiling you. It's one of the most active self-hosted projects around, with around 37.9k stars and steady commits. I wrote up how the SearXNG repository is organised.

Exposing it, and the longer view

Cloudflare Tunnel. Running services at home is easy; reaching them from outside without opening ports is the hard part. A Tunnel runs cloudflared on your local box, gives each service a subdomain with automatic HTTPS, and can put an email or IP allowlist in front of it. The guide I saved is honest about the caveats too, such as speed and dropped connections in some regions. Here's the free Cloudflare Tunnel walkthrough.

Local-first software. The idea underneath all of this: your data should live on your device first and sync second. The local-first community page collects talks like Martin Kleppmann's "CRDTs: the hard parts" and Peter van Hardenberg's original talk, plus meetup recordings. See the local-first software reading list.


Put together, the list is a full loop: write with Pelican, make the feed readable with RSS.Beauty, mail it with listmonk, read others through Glance, search with SearXNG, and reach all of it through a Tunnel. None of it needs a paid plan, though Cloudflare does ask for a payment method on file before enabling Zero Trust. If you run a similar stack, I'd like to hear what you swapped in.

Top comments (1)

Collapse
 
officialmailkr profile image
오피셜메일 •

발행·읽기·검색을 도구의 역할별로 나눈 구성이 이해하기 좋네요. RSS와 이메일을 병행할 때 같은 글이 중복 배달되지 않도록 원문 식별자와 이미 전달한 항목을 관리하면 독자 경험을 더 안정적으로 유지할 수 있겠습니다.