Test your protection. See the evidence. Understand the gaps.
A browser-based lab for exploring ad-resource blocking, tracking protection, cosmetic filtering, privacy signals, popup containment, and observable resource-loading behavior.
- Live demo: https://lab.frpboy.in/
- Source code: https://github.com/frpboy/adblocker-test-lab
See docs/README.md for the current architecture, measurement model, operational guidance, known limitations, roadmap, and the detailed review of the supplied project attachments.
This repository begins with the supplied React/TSX prototype. Treat its tests and scores as a work in progress until each test is verified in target browsers. Browser APIs cannot always distinguish an extension block from DNS filtering, CSP, browser-native protections, firewalls, or ordinary network failures; inconclusive outcomes must remain inconclusive.
Requirements: Node.js 20+ and npm.
npm install
npm run devThe local server runs at http://localhost:8080 by default. It fails fast if port 8080 is already occupied.
Create a production build:
npm run build
npm run previewThe current production deployment uses lab.frpboy.in. To reproduce the deployment, import the repository into Vercel, choose the Vite framework preset, and use the default build command (npm run build) and output directory (dist). Domain and DNS changes should be handled separately from application-code changes.
Monetag is the planned advertising provider, but no ad tag is included by default. Add a provider script only after publisher approval for this site's ad-blocker-testing use case. Keep any approved live ad placement inside an explicitly labelled ad-test block; don't automate clicks or reloads, and never score an empty/no-fill slot alone as proof of blocking. Record script load, ad response/no-fill, creative rendering, and request failure as distinct observations.
- Never invent test results, block counts, scores, or performance metrics.
- Distinguish controlled first-party fixtures from exploratory third-party probes.
- Separate confirmed observations from inferences and unknown causes.
- Don't identify a particular blocker unless evidence actually supports that attribution.
- Live ads and test resources must not generate artificial impressions or clicks.
Apache-2.0 — see LICENSE.