whyEXT is a public, open-source umbrella repository for multiple browser
extensions. Each extension lives under extensions/<name>/ and can be developed,
tested, and published independently.
The active extension is dark-mode, focused on one clear job:
- Toggle dark mode per domain from popup
- Keep domain preferences local to the browser profile
- Offer simple options to inspect/clear saved domains
- Privacy-first by design
- No telemetry by default
- No hidden outbound requests
- Local-only storage unless user explicitly exports data
- Minimal permissions
- Ask only what a feature needs
- Prefer optional host permissions over broad defaults
- Transparent architecture
- Simple manifests
- Inspectable source
- Clear docs for permissions and data behavior
extensions/<name>/src: extension source filesextensions/<name>/dist: generated build outputscripts/build.js: generic builder for per-extension browser targets- Root docs: governance, security, roadmap, and sprint planning
Future-proof stack is tracked in TECH_STACK.md.
Short version:
- Keep MV3 as runtime base.
- Migrate to TypeScript + Vite +
webextension-polyfill. - Use schema validation for rule data and import/export safety.
In scope:
- Domain-level enable/disable dark mode
- Popup quick toggle for current domain
- Options list/clear for enabled domains
Out of scope:
- Cloud sync
- Telemetry pipeline
- Rule marketplace
- Complex automation engines