Dull – Instagram Without Reels, YouTube Without Shorts
Three-layer WKWebView filtering beats simple CSS blockers like Opal or Freedom.

MutationObserver handles lazy-loaded Reels when CSS alone fails.
Social media users trying to reduce doomscrolling
Opal · One Sec · Freedom
Dull loads Instagram, YouTube, Facebook, and X and filters out short-form content with a mix of CSS and JS injection. MutationObserver handles anything that lazy-loads after the page renders, which is most of the annoying stuff since these platforms love to load content dynamically.
The ongoing work is maintaining the filters. Platforms change their DOM all the time, Instagram obfuscates class names, YouTube restructures how Shorts appear in the feed, etc. It's a cat-and-mouse thing that never really ends.
Also has grayscale mode, time limits, and usage tracking.
Happy to answer questions.
Three-layer WKWebView filtering beats simple CSS blockers like Opal or Freedom.
Yet another GPT wrapper for ad copy, existing tools already do this.
Complete algorithm-free YouTube workflow from feed to player, FreeTube doesn't match.
iOS webapp workaround to block Reels while keeping DMs—clever constraint hack.
AI shorts generator when Runway, Synthesia, and Descript already do this better.
Yet another AI clipper when OpusClip and Munch already dominate this space.