ShieldPro Ultimate Ad Blocker โ a project by Ahsan Mahmood
Manifest V3 ad-blocking and privacy suite, ~499 blocking rules.
Manifest V3 changed what a browser extension is allowed to do to a request.
ShieldPro Ultimate Ad Blocker is built for that version of the platform rather than carried across into it, which turns out to be a rather different piece of work. Roughly 499 blocking rules ship with it. The tiers, the custom filter lists and the whitelist are the parts a person actually touches.
An ad blocker is two things. A list of rules, and a set of ways for a person to disagree with that list.
The second is where products in this category differ from each other, because the first is close to a commodity.
A blocker is judged on two things, and only one of them is blocking.
The other is what it does when it is wrong. Every rule set broad enough to be useful will eventually take out a checkout button, an embedded video or a login frame. The page gives no sign that an extension is the reason. It simply looks broken.
Nothing tells the reader why.
That is what the whitelist is for.
One site, switched off, in less time than it takes to work out what went wrong. An escape hatch that is quick to reach is the difference between a tool somebody keeps and a tool they remove in irritation on a bad afternoon.
Custom filter lists are the same idea pointed the other way.
The shipped rules cover what is common to everyone. A custom list covers the handful of sites you personally use, which a general rule set has no reason to know anything about.
The extension loads no remote code.
Nothing is fetched from a content delivery network, no script arrives at runtime, and everything in the package is everything that runs. That rule has teeth. It is also the only honest position for a privacy tool, because an extension that can pull new behaviour after it is installed is an extension whose behaviour you have no way to check.
It is TypeScript and React on the Chrome Extension API, with a progressive tier system over the feature set.
What it cost is the list, and that cost never stops.
A rule set is never finished. Sites change, an advertiser moves a domain, and a rule that worked in one quarter matches nothing in the next. A blocker is only as current as the last time somebody sat down with its rules, which means the maintenance is the actual product and the rule count is a snapshot of it.
That is the job.
The work of keeping one current is invisible from the outside, because a stale rule set and a fresh one look identical right up until somebody visits the site the stale one has quietly stopped covering.
Rules are also the thing that cannot be tested the way code is tested.
A rule set can be entirely valid and entirely out of date at the same moment, and no build will tell you which of the two it is looking at.
There is a second cost, and it is the one a user feels.
Blocking is a judgement made about somebody else's page, applied before anybody has looked at it and applied again on every page after that. Get it slightly wrong and a site is quietly broken with no explanation attached, which is why the escape hatch matters more than the number of rules does.
The site is shieldpro.aoneahsan.com.
The rule count is the easy number to print on a page. What actually decides whether an ad blocker stays installed is the day it is wrong about a site somebody needs, and how long that takes to put right.
What it does, and what that costs to build
- Ad blocking
- Progressive tiers
- Custom filters
- Whitelist support
Built with
- TypeScript
- React
- Chrome Extension API
Worth knowing
- extension
- ad-blocker
- chrome
- privacy
Who built ShieldPro Ultimate Ad Blocker?
Ahsan Mahmood built it, in TypeScript and React against the Chrome Extension API, for Manifest V3 rather than ported into it. The site is shieldpro.aoneahsan.com. The extension ships roughly 499 blocking rules, a progressive tier system, custom filter lists and whitelist support, which is a small enough surface that one person can hold all of it, and holding all of it is the only way a privacy tool gets to be honest about what it does.
What happens when a rule breaks a site?
You whitelist the site and the extension stops acting on it. That escape hatch matters more than the rule count does, because any filter list broad enough to be useful will eventually take out a checkout button, an embedded video or a login frame, and the page gives you no clue that an extension was the cause. The difference between a blocker somebody keeps and one they remove in irritation is how fast the exception can be made. Whitelisting is the feature that admits the tool can be wrong.
Can I add rules of my own?
Yes, through custom filter lists. The shipped rules cover what is common; a custom list covers the sites you personally use, which the general set has no reason to know anything about. It is the same idea as the whitelist pointed the other way: one is you telling the extension to stop, and the other is you telling it to start. Between them they are the reason a blocker can be adapted rather than merely tolerated.
Does the extension fetch anything after it is installed?
No code, no. An extension may load no remote code at all: no script from a content delivery network, no runtime fetch of executable content, nothing arriving after installation. That is a store rule with real consequences, and for a privacy tool it is also the only defensible position, because an extension able to pull new behaviour later is an extension whose behaviour nobody can verify. What you install is what runs on your machine.
Does ShieldPro work on iPhone?
No. It is a browser extension for a desktop browser, and phone browsers do not run desktop extensions. There is no iOS release behind any of my work either, because there is no Apple Developer account here and nothing I build has shipped to the App Store. Blocking on a phone is a genuinely different problem with a different mechanism behind it, and claiming this extension covers it would be the sort of thing a reader finds out in about a minute.
https://aoneahsan.com/projects/com.aoneahsan.shieldpro