Case Studies WebArmor: ad and tracker blocking in the browser
WebArmor: ad and tracker blocking in the browser
TL;DR WebArmor blocks ads and trackers in the browser for a cleaner, faster web. The engineering challenge is doing that on Manifest V3, where blocking moved to a declarative rules API, and doing it without breaking the sites people actually want to use.
WebArmor is my take on a browser content blocker: ad blocking, tracker protection, and paywall handling, aimed at a cleaner and faster web. Blockers look simple from the outside. The interesting part is doing it well on modern browser rules without breaking the sites people rely on.
The problem
The open web has an accretion problem. Ads, trackers, and analytics pile onto pages until a news article ships more third-party code than actual content. That costs load time, battery, and privacy. People want that weight gone.
The complication is that the browser platform for doing this changed. On Manifest V3, extensions can no longer intercept every request in JavaScript. Blocking moved to a declarative rules system, which is faster and more private but less freeform.
The approach
Two goals pulled against each other, and the design is about balancing them.
- Block what matters. Cover the common ad and tracker sources so pages get lighter and cleaner.
- Do not break the web. Aggressive blocking that snaps sites is worse than no blocking. Compatibility and an easy per-site off switch matter as much as the block list.
Working within the declarative rules API meant thinking in terms of rules the browser enforces, rather than code that runs on every request. That constraint is also what keeps the extension fast and private.
What shipped
WebArmor blocks ads and trackers through the browser's rules engine, cutting the third-party weight on a typical page. Pages load lighter, with less tracking following the user around. When a site genuinely needs something, the user can turn the blocker off for that site rather than fighting it.
What I learned building it
The lesson was respect for compatibility. It is easy to write a blocker that scores well on a block-count metric and quietly breaks checkout pages and logins. The harder, better goal is a blocker people can leave on all day because it stays out of their way. On Manifest V3 the platform pushes you toward that anyway, by trading raw power for speed and privacy.
WebArmor is one of a handful of browser tools I have built. You can find them in the Chrome extensions section of the site.
FAQ
How does ad blocking work on Manifest V3?
V3 replaced the old request-interception approach with a declarative rules API. You register rules that tell the browser what to block, and the browser enforces them. It is faster and more private, but you work within rule limits instead of running arbitrary code on every request.
Does blocking trackers make pages faster?
Often, yes. Trackers and ad scripts add network requests and main-thread work. Removing them can noticeably cut load time and jank, especially on heavy news and shopping sites.
Can a blocker break websites?
It can, if it blocks something a site needs to function. A good blocker balances aggressiveness with compatibility, and gives the user a way to disable it per site when something breaks.