nowfound

Growth · December 16, 2025

IB

I built a fast RSS reader in Zig

Well, I certainly tried. I had to, because it has a certain quirk inspired by "digital minimalism." The quirk is that it only allows you to fetch new articles once per day (or X days). Why? Let me explain... I want my internet content to be like a boring newspaper. You get it in the morning, and you read the whole thing while sipping your morning coffee, and then you're done! No more new information for today. No pings, no alerts, peace, quiet, zen, etc. But with that, I needed it to be able to fetch all articles from my hundreds of feeds in one sitting. This is where Zig and curl…

Visit github.comAlternativestop 11% of December 2025

In plain words

An RSS reader built in Zig that fetches articles once per day (or at custom intervals) to promote focused, distraction-free reading. It's designed for users managing hundreds of feeds who want to consume all new content in a single session rather than receive constant notifications. The reader uses performance optimizations including curl multi for concurrent network requests and HTTP/2 multiplexing to efficiently fetch from multiple feeds at once.

written from the facts on this page · September 2026

From the sources

In the maker’s words, at launch

Well, I certainly tried. I had to, because it has a certain quirk inspired by "digital minimalism." The quirk is that it only allows you to fetch new articles once per day (or X days). Why? Let me explain... I want my internet content to be like a boring newspaper. You get it in the morning, and you read the whole thing while sipping your morning coffee, and then you're done! No more new information for today. No pings, no alerts, peace, quiet, zen, etc. But with that, I needed it to be able to fetch all articles from my hundreds of feeds in one sitting. This is where Zig and curl optimisations come in. I tried to do all the tricks in the book. If I missed something, let me know! First off, I'm using curl multi for the network layer. The cool thing is it automatically does HTTP/2 multiplexing, which means if your feeds are hosted on the same CDN it reuses the same connection. I've got it configured to handle 50 connections total with up to 6 per host, which seems to be the sweet spot before servers start getting suspicious. Also, conditional GETs. If a feed hasn't changed since last time, the server just says "Not Modified" and we bail immediately. While curl is downloading feeds, I wouldn't want CPU just being idle so the moment curl finishes downloading a single feed, it fires a callback that immediately throws the XML into a worker thread pool for parsing. The main thread keeps managing all the network stuff while worker threads are chewing through XML in parallel. Zig's memory model is perfect for this. Each feed gets its own ArenaAllocator, which is basically a playground where you can allocate strings during parsing, then when we're done, we just nuke the entire arena in one go. For parsing itself, I'm using libexpat because it doesn't load the entire XML into memory like a DOM parser would. This matters because some podcast feeds especially are like 10MB+ of XML. So with smart truncation we download the first few X mb's (configurable), scan backwards to find the last complete item tag, cut it there, and parse just that. Keeps memory usage sane even when feed sizes get massive. And for the UI I just pipe everything to the system's "less" command. You get vim navigation, searching, and paging for free. Plus I'm using OSC 8 hyperlinks, so you can actually click links to open them on your browser. Zero TUI framework needed. I've also included OPML import/export and feed groups as additional features. The result: content from hundreds of RSS feeds retrieved in matter of seconds, and peace of mind for the rest of the day. The code is open source and MIT licensed. If you have ideas on how to make it even faster or better, comment below. Feature requests and other suggestions are also welcome, here or GitHub.

More growth this month

the category →
  • ​​A pixel-art solar system at its real current positions.​

    Growth · 29d ago · astrapixels.com

  • Put your startup on the map. Literally.

    Growth · 13d ago · worldmap.lol

Launched alongside, December 2025

the whole month →
  • GP

    Life & fun · Dec 2025 · dosaygo-studio.github.io

  • JG

    Hi everyone! My name's Luke and I made the original Jmail here alongside Riley Walz. We had a ton of friends collaborate on building out more of the app suite last night in lieue of DOJ's "Epstein files" release. Please AMA!

    Life & fun · Dec 2025 · jmail.world

  • Design and ship studio-grade landing pages with AI

    AI · Dec 2025 · loki.build

  • AI turns your health goals into a 7-day menu & grocery list

    AI · Dec 2025 · planeatai.com

  • 2G

    Community, All the HN belong to you. This is an archive of hacker news that fits in your browser. When I made HN Made of Primes I realized I could probably do this offline sqlite/wasm thing with the whole GBs of archive. The whole dataset. So I tried it, and this is it. Have Hacker News on your device. Go to this repo (https://github.com/DOSAYGO-STUDIO/HackerBook): you can download it. Big Query -> ETL -> npx serve docs - that's it. 20 years of HN arguments and beauty, can be yours forever. So they'll never die. Ever. It's the unkillable static archive of HN and it's…

    Dev tools · Dec 2025 · hackerbook.dosaygo.com

  • AI video studio for viral social clips

    AI · Dec 2025 · cybercut.ai