Block ads. Strip trackers. Dismiss cookies. Remove paywalls. Reclaim your web.
"Suddhi" (शुद्धि) — Sanskrit for purification
Install • Features • Compare • Changelog • Architecture
You open an article. Before you read the first sentence, your browser has quietly contacted dozens of ad networks, analytics platforms, and data brokers. A cookie banner demands your consent. A chat widget pulses in the corner. A newsletter popup covers the text. The URL contains invisible tags that follow you to the next site, and the one after that.
This is not accidental. It is the architecture.
WebSuddhi dismantles it — silently, completely, before it reaches you.
One extension. 40,000+ blocking rules. Zero data collection. Every browser.
| Feature | What You Get | |
|---|---|---|
| 1 | Network Blocking | Pages load faster. 40,000+ rules block ads and trackers before they execute. |
| 2 | Cosmetic Blocking | Visual ads that slip past network blocking are silently removed before you see them. |
| 3 | URL Cleaning | Tracking tags (utm, fbclid, gclid) are stripped from every URL. You browse clean. |
| 4 | Cookie Auto-Dismiss | Cookie banners vanish automatically. You never click "Accept All" again. |
| 5 | Paywall Removal | Articles load in full. Overlays, gates, and subscribe walls are removed. |
| 6 | Annoyance Blocker | Chat widgets, newsletter popups, push prompts, app banners — gone. |
| Feature | What You Get | |
|---|---|---|
| 7 | Phishing Protection | Lookalike domains are detected using homograph analysis across 200+ brands. |
| 8 | Referrer Stripping | Sites cannot see where you came from. |
| 9 | WebRTC Protection | Your real IP stays private, even behind a VPN. |
| 10 | Filter Lists | Subscribe to custom blocklists or use our curated HaGeZi/AdGuard/PhishTank compilation. |
| 11 | Element Picker | Point-and-click to permanently block any element on any page. |
| 12 | Statistics | Track blocks over time with per-site breakdown, category charts, and trend graphs. |
| 13 | Site Detail Drawer | Click any site in Top Sites to see what's blocked there, unblock a single selector, preview it first, or clear the site's stats. |
| 14 | Pause per Site | Pause protection on a site for 15 min / 1 hour / 1 day without adding it to your permanent whitelist. Auto-resumes when the timer runs out. |
| 15 | Report Broken Site | One click from the popup pauses the current site for an hour and logs a report, so you can keep browsing and fix the rule later. |
| Feature | WebSuddhi | uBlock Origin | AdBlock Plus | Ghostery |
|---|---|---|---|---|
| Network-level blocking | Yes | Yes | Yes | Yes |
| Cosmetic element hiding | Yes | Yes | Yes | Limited |
| Cookie banner auto-dismiss | Yes | No | No | No |
| Paywall removal | Yes | No | No | No |
| URL tracking param stripping | Yes | No | No | No |
| Annoyance blocking (chat, popups) | Yes | Partial | No | No |
| Phishing detection | Yes | No | No | No |
| WebRTC leak protection | Yes | No | No | No |
| Custom filter subscriptions | Yes | Yes | Yes | No |
| Safari iOS support | Yes | No | No | Yes |
| Data collection | None | None | Acceptable Ads* | Analytics* |
* AdBlock Plus includes "Acceptable Ads" by default. Ghostery collects anonymized analytics.
| Browser | Manifest | Status |
|---|---|---|
| Chrome / Edge / Brave / Opera / Vivaldi / Arc | MV3 | Fully supported |
| Firefox | MV2 | Fully supported |
| Safari macOS | MV3 | Fully supported |
| Safari iOS / iPadOS | MV3 | Fully supported |
- Download this repository (or
git clone https://github.com/sriinnu/web-suddhi.git) - Open
chrome://extensionsin your browser - Enable Developer mode (toggle in the top-right corner)
- Click "Load unpacked" and select the
web-suddhifolder - Done. The shield icon appears in your toolbar.
- Open
about:debugging> "This Firefox" - Click "Load Temporary Add-on"
- Select
manifest-mv2.json
Safari installation requires Xcode. See Getting Started for detailed instructions including iOS.
Two layers of defense:
- Network layer — 40,000+ declarativeNetRequest rules block ad/tracker requests before they load. Zero bandwidth wasted.
- Content layer — Hides elements that slip through, dismisses cookie banners, removes paywalls, cleans annoyances.
For the full architecture, message flow, and DNR rule ranges: Architecture deep-dive
| No servers | Zero network requests to any WebSuddhi server. Ever. |
| No analytics | No usage tracking, no telemetry, no crash reporting. |
| No accounts | No sign-up, no login, no email. |
| Local only | All data stored in browser.storage.local. |
| Open source | Every line auditable. No obfuscation. |
| No dependencies | Pure vanilla JavaScript. No supply chain risk. |
WebSuddhi compiles 40,000+ rules from these trusted upstream sources at build time:
| Source | Category | Rules |
|---|---|---|
| HaGeZi Pro | Ads & Trackers | 15,000 |
| HaGeZi Threat Intelligence | Malware & Phishing | 10,000 |
| AdGuard DNS Filter | Ads & Trackers | 10,000 |
| HaGeZi Fake/Scam | Fraud & Scams | 5,000 |
| Phishing URL Blocklist | Phishing | 5,000 |
| HaGeZi Pop-Up Ads | Pop-ups | 5,000 |
| HaGeZi DynDNS | DynDNS Abuse | 1,500 |
| + Hand-curated | All categories | 223 |
Rebuild anytime: node scripts/build-blocklists.mjs
Full list of blocked domains and cookie frameworks: What Gets Blocked
| Shortcut | Action |
|---|---|
Alt+P |
Toggle element picker |
Alt+W |
Toggle whitelist for current site |
Alt+S |
Open settings |
| Popup → "Site broken?" | Pause current site for 1 hour and log a report |
The palette picker ships with 10+ built-in themes. To add your own, edit shared/themes.json — each entry becomes a card in Settings → Appearance. No rebuild, no JS edits.
{
"id": "my-theme",
"name": "My Theme",
"recommendedFont": "Geist",
"swatches": ["#F4EFE6", "#7C5CFF", "#2AA6A0", "#1A1A2E"],
"tokens": {
"--bg-primary": "#F4EFE6",
"--text-primary": "#1A1A2E",
"--accent": "#7C5CFF",
"--font-family": "'Geist', -apple-system, sans-serif"
}
}tokens maps to the same CSS custom properties used by every built-in theme (full list in shared/themes.css). recommendedFont sets the theme's default type; the user can still override it from the Font Family picker. Delete an entry and it disappears from the UI on next reload.
Contributions welcome. Fork, create a feature branch, test on 2+ browsers, submit a PR.
Guidelines, testing checklist, adding domains: Developer Guide
| Document | Description |
|---|---|
| Architecture | System design, message flow, DNR rule ranges |
| What Gets Blocked | Full domain lists, cookie frameworks, annoyances |
| Permissions | Why each permission is required |
| Troubleshooting | Common issues and solutions |
| Developer Guide | Contributing, testing, building |
| Changelog | Version history |
MIT License — Free to use, modify, and distribute.
The web was designed to be open. WebSuddhi keeps it that way.
Built in vanilla JavaScript. No frameworks. No dependencies. No tracking. No compromises.