Transparency
Every number, and where it comes from
Nothing on this website is typed by hand. website/scripts/collect-stats.ts reads Veilkeep 1.0.0's build, test and benchmark reports and the source tree, and refuses to run if any recorded test failed. Generated September 25, 2026.
| List | Version | Filters converted | Rules shipped | Skipped (unsupported) | Licence |
|---|---|---|---|---|---|
| EasyList | 202609250242 | 80,649 | 3,782 | 3,317 | GPL-3.0-or-later OR CC-BY-SA-3.0-or-later (dual licensed) |
| EasyPrivacy | 202609250242 | 56,121 | 9,087 | 75 | GPL-3.0-or-later OR CC-BY-SA-3.0-or-later (dual licensed) |
| Fanboy's Annoyance List (off by default) | 202609250100 | 50,102 | 3,193 | 3,809 | CC-BY-3.0 (as declared in the list header) |
| Online Malicious URL Blocklist (URLhaus filter, AdGuard syntax) | 2026-09-24T12:11:47Z | 9,411 | 7,535 | 0 | CC0-1.0 and MIT (filter project); URLhaus data CC0-1.0 |
Totals: 206,849 list lines, 196,283 filters converted, 23,597 rules (browser guarantee: 30,000), 40,281 generic hiding selectors and 37,137 site-specific entries, compiled in 1020 ms. Source: reports/filter-report.json, filters/vendor/lock.json.
| Suite | Tests | Result | Source |
|---|---|---|---|
| Unit | 159 | passed | reports/vitest-results.json |
| Integration (service worker against a chrome API fake) | 32 | passed | reports/vitest-results.json |
| Regression (whole compiled lists) | 48 | passed | reports/vitest-results.json |
| Real browser: Chromium 153 | 22 | 22 passed, 0 failed | reports/browser-results-chromium.json |
| Real browser: Microsoft Edge 153 | 22 | 22 passed, 0 failed | reports/browser-results-msedge.json |
| Real browser: Google Chrome 153 | 22 | 22 passed, 0 failed | reports/browser-results-chrome.json |
261 unique tests; 305 test executions (the browser suite runs once per browser). Verify run of September 25, 2026: 16/16 gates passed.
| Measurement | Chromium | Edge | Chrome |
|---|---|---|---|
| Install → ready | 636 ms | 686 ms | 661 ms |
| Popup: open → content | 63 ms | 68 ms | 78 ms |
| Dashboard: open → content | 59 ms | 74 ms | 78 ms |
| Extra style recalculation | 3.5 ms | 4.2 ms | 4.9 ms |
| Extension storage used | 2.12 MB | 2.12 MB | 2.12 MB |
Source: reports/performance-*.json from tests/browser/performance.spec.ts. The test page serves "ads" instantly from localhost, so these numbers show Veilkeep's fixed cost, not the time saved by blocking on real sites.
| Item | Value | How it is counted |
|---|---|---|
| Extension source | 5,713 lines in 59 files | non-empty lines of .ts/.html/.css in src/ |
| Tests | 3,407 lines in 25 files | tests/ |
| Build & release tooling | 1,441 lines in 13 files | scripts/ |
| Documentation | 16,389 words in 23 documents | docs/ and root Markdown files |
| User-interface strings | 268 | src/_locales/en/messages.json (ready for translation) |
| Release ZIP | 2.38 MB | sha256 a1ff3e0015a41072…, reproducible |
| Third-party code in the package | css-what | packages found in the shipped bundles |
| Install-time permissions | declarativeNetRequest, storage, activeTab, scripting, alarms | dist/manifest.json |
| URL strings in shipped code | 2 (none fetched) | scripts/url-allowlist.json, enforced by scripts/validate.ts |
Reproduce these numbers
npm ci && npx playwright install chromium VK_VERIFY_BROWSERS=chromium,msedge,chrome npm run verify cd website && npm ci && npm run stats