A portrait of me

Trust the Process

Archives
Log in
Subscribe
October 18, 2026

Trust the Process 005

The quest to follow (almost) every website on the web.

A portrait of me Trust the Process

Hi and welcome back to “Trust the Process”. The weekly newsletter where I share my own progress over the week and interesting links I found along the way.

This past week, I shipped one of my favorite features of Morgenblau so far: universal subscribe. I already briefly mentioned it last week, but now it’s time to dive into it for real.

Process

The cool thing about building your own product in current times is that you can get really ambitious with your ideas. Build things that you wouldn’t have even started to work on a couple of months ago because they seemed almost impossible.

For me, one such thing is trying to build what I now call a “universal subscribe” feature for the web (naming is still a work in progress).

I’ve mentioned it in previous issues of this newsletter already, but one of the reasons I think that many technically impressive projects just don’t catch on is that they focus too much on the technical aspects. I talked about this in the context of ATProto, but the same thing is true for RSS as well.

Justin Duke, the creator of Buttondown (the newsletter tool that yours truly is using right now), put it very well:

RSS, which is extremely powerful and useful as a medium but has largely failed as a consumer-facing technology in part because it demands, at some level, an understanding of the underlying technology. (We do not call Mimestream an "SMTP client"; we do call Feedbin an "RSS reader.")

Exactly.

I love RSS, I love ATProto, but your average Joe shouldn’t need to know what those are in order to use them. They should simply be able to subscribe to websites. No matter if that website supports RSS, standard.site or [insert fancy new protocol]. Hence, “universal subscribe”.

Of course, under the hood, RSS is still massively useful while building a reader like Morgenblau. Many websites on the web still offer feeds, mostly because their CMS generates one automatically (they might not even know about it). But with the rise of AI agents and people vibe coding their own personal websites, more and more interesting blogs just don’t offer one anymore.

For me, that’s especially apparent when I try to follow blogs in the product design space. Almost all of these designers’ blogs are built on Astro, Next.js or Framer, and practically none of them have an RSS feed (except for the ones where the person actually made a deliberate attempt to create a feed). Since many people don’t really know what RSS is, or don’t use it themselves, they just don’t implement it. A classic chicken-and-egg problem.

But I still want to read what they publish without having to manually check each website that interests me.

Let’s finally get to the gist of universal subscribe in Morgenblau:

Frankly, it sounds way fancier than it is. Instead of just looking for RSS feeds or standard.site publications on a website, Morgenblau now uses a layered system that, in simple terms, works like this:

  • If a site offers an RSS feed or a standard.site publication: Great, we use that directly.
  • If not, we try to determine programmatically how posts are published on that particular website. The goal is to figure out what a post URL looks like (internally called a “recipe”). Once Morgenblau knows the URL structure, it can reliably find new posts without much effort.
  • If the code is not sure that a certain URL shape is used for blog posts (e.g. because there are multiple candidates), we use a small AI model (currently Claude Haiku 5.5) which picks from the candidates (the “judge”).
  • Should it still fail, we ask the user to paste the URL of one article, which is usually enough to point the system in the right direction.

The product of this layered process is just a simple regular RSS feed, hosted by Morgenblau. The next person who wants to subscribe to the same site will get that feed directly. This way, over time, it gets cheaper and more reliable to start following sites on the internet, no matter if they offer a feed or not. The regular polling and checking for new posts doesn’t use AI at all, because Morgenblau still knows the recipe. After setup, AI only comes into play for a quick weekly sanity check or when a generated feed breaks.

Before writing any of the actual code, I gave Claude Code a laboratory: multiple agents created prototypes using different techniques and scored them against more than 200 test websites. Some of these sites were sealed away from the agents while they were building, so they couldn’t just tune their code to the test. Two interesting results from the lab:

  • Deterministic code is enough most of the time. The “judge” only had to step in on roughly a quarter of all new sites, and AI writing the whole extraction logic by itself happened on just 2% of them.
  • On the sealed websites the agents hadn’t seen before, 86% of the ones without a feed worked perfectly, and the remaining 14% still produced a usable feed. All of it for about 1/10th of a cent per feed.

Of course the whole system is not perfect, but it should now cover the vast majority of sites you’d want to follow. And, if a site blocks robots and doesn’t offer a feed by itself, we respect that. Morgenblau then just shows a “This site blocks feed readers” message.

So from now on, I can follow interesting blogs like Emil’s:

A generated feed inside Morgenblau

If you, like me, have a list of blogs you have to check manually to read their new posts and want a different experience, just reply to this email. I’m happy to give you access to the current alpha version of Morgenblau to make this feature even better and more reliable :)


Apart from the big new feature, there were a lot of small-ish improvements and polish. One I particularly like is that I started to add keyboard-driven navigation. You can now easily jump between daily digests, and between posts when you’re in the reader, via conventional but also vim-style keybindings.

Morgenblau should be entirely usable with just your keyboard, so a lot more improvements in that regard are coming.


My small design-helper Chrome extension Kai that I mentioned in the last issue also got an update. You can now edit the website in real-time and manipulate properties like margin, padding, font-size, line-height and more, directly see the results and copy the changes to your AI for implementation.

Undo/redo is now possible as well.


For my personal site, I implemented the newly launched SocialSpec. It’s essentially just a set of well-known files that, on top of a site’s RSS feed, tries to standardize the way (personal) websites share their about and contact information as well as the feeds they themselves follow. It seems to have gained quite a bit of traction over the last couple of days: Micro.blog already rolled out support natively and there is already a plugin for WordPress as well.

The SocialSpec website

If you’re not on one of these platforms yourself but still curious, it’s really easy to just implement the spec yourself. I really hope many people in the IndieWeb community start doing it, because it would essentially enable building a very social-like experience between personal websites that doesn’t even depend on a protocol like ATProto.

I’ll see if I can also do my part and somehow integrate the spec into Morgenblau. Would be really cool if personal websites on there have their own little “profile”.

Finds

Cool things I discovered this week:

  • Imperfection – mamuso.dev: Always interesting to read someone’s design process for their personal website. This one looks particularly great.
  • Chat is AI’s command line – Amelia Wattenberger: An exploration of AI-enabled interfaces that are not just a chat window.
  • The New York City Marathon, visualized: I’m running the Lausanne marathon next week, so going through this visualization (and seeing how almost no one is capable of running a negative split) was really interesting.
  • Hister | Your Own Search Engine: Luckily this is self-hostable, otherwise it would be a privacy nightmare. But I think it could enable some interesting workflows.
  • mmeshy - make beautiful mesh gradients: It’s still surprisingly hard to create nice mesh gradients, so I was pleased to discover this tool.
  • Different ways to live with dark thoughts: An interesting overview of how Buddhism can help fight depression.
  • This single technology is killing oil demand: Reading pieces like this gives me hope that greener transportation alongside the decrease of fossil fuel use is inevitable.
  • Digitale Nachhaltigkeit - Nachhaltige Digitalisierung: You probably have to translate this one, but this site our lecturer shared with us nicely highlights the difference between “digital sustainability” and “sustainable digitalization” (they are not the same).
  • Nudge UI — Design where code lives: An alternative to my own project Kai I mentioned above. Not quite the same type of tool, but also some interesting ideas in there.
  • SocialSpec: The spec I mentioned above. If you’re even just slightly interested in a more open social web, help spread the word!

From the blog

I didn’t publish any posts since the last issue.

That’s it for this issue. Thanks for sticking around! If you have any questions, feedback, or just want to say hi, reply to this email and it will land straight in my inbox.

Until the next one, Dominik

You just read issue #5 of Trust the Process. You can also browse the full archives of this newsletter.

Share this email:
Share on Bluesky
Older → Trust the Process 004

Add a comment:

Posting this comment will subscribe you to this newsletter with the email address you enter.
Personal Website
Bluesky
Powered by Buttondown, the easiest way to start and grow your newsletter.