I like to use tech news aggregators like HN or Lobsters to find new things to read. There are often interesting things on there, and they’ve helped me discover many blogs that I end up adding to my feed reader. I avoid the comment section though, and have uBlock rules that remove them and the login links. This has helped me unlearn the habit of checking the comments doing wonders for my mental health.

Unfortunately the AI bubble has also resulted in a lot of AI-related content showing up on there. About 95% of it is uncritically raving about AI, making grandiose claims that fail to be substantiated and sending all kinds of vitriol to those that critique it. I want to remove that content because I frankly don’t care about your AI shit, nor do I want to read about it.

Lobste.rs

Lobsters makes this easy, thanks to having tags. This works for when you’re not logged in, nor have an account:

lobste.rs##a.tag:has-text(/^ai$|^vibecoding$/):upward(4)

Put that in your cosmetic filters in uBlock and done.

HackerNews

HN is more difficult due to the lack of tags and the nested table-based layout. We also need to delete the two table rows after the entry, as that contains the list of links and a spacer element. But after a bit of twiddling:

news.ycombinator.com##table table tr:has(a:has-text(/AI\b|GPT|Claude|LLM|Large Language Model|AGI|MCP|agentic/))
news.ycombinator.com##table table tr:has(a:has-text(/AI\b|GPT|Claude|LLM|Large Language Model|AGI|MCP|agentic/)) + tr
news.ycombinator.com##table table tr:has(a:has-text(/AI\b|GPT|Claude|LLM|Large Language Model|AGI|MCP|agentic/)) + tr + tr
news.ycombinator.com##table table tr:has(a[href$=".ai"])
news.ycombinator.com##table table tr:has(a[href$=".ai"]) + tr
news.ycombinator.com##table table tr:has(a[href$=".ai"]) + tr + tr

The \b ensures that OpenAI is matched, but FAIR is not.

This removes anything matching the text (which is a regex) and the next two rows. It also removes any entry that points to a .ai hosted domain.

tech