muga.app

Privacy Policy

MUGA: The web, with the noise turned down  ·  Effective date: 2026-05-25  ·  Version 2.6.0  ·  Source code

Short version: You control what MUGA does. Every feature is transparent and configurable. MUGA never acts behind your back. Nothing happens without your action. The code is open source. You can read every line at the link above.

What data does MUGA handle?

MUGA receives URLs when you click links or right-click to copy a clean link. These URLs are cleaned inside your browser. MUGA never sends your URLs or browsing data anywhere. MUGA makes very few external requests, and every one of them is disclosed on this page. The only one enabled by default is a weekly signed rule list (see "Remote rule updates" below), which you can turn off in Settings.

MUGA's data lives in two places, deliberately separated:

Neither bucket is ever visible to MUGA. Session data (chrome.storage.session) is automatically cleared when the browser restarts. Usage counters are never transmitted anywhere.

Per-device consent

Acceptance of these terms is recorded per device, not per browser account. If you install MUGA on a second device, you will be asked to read and accept the terms on that device too, even if you already accepted them somewhere else. The reasoning is captured in our architectural decision record ADR-0001: consent is an act between you and the device you are using; inheriting it across devices silently would deny each device's user the chance to read and decide.

Behavioural preferences (toggles like "Enable remote rule updates", "Remove all affiliate tags from other sources", and others) follow your browser account through sync. But on a fresh device, if any of those preferences arrives enabled from another device, MUGA shows you an explicit confirmation prompt during onboarding before acting on them. If you decline a preference on this device, the override is recorded locally and your other devices' settings are left untouched.

If we update these terms in a way that materially changes what you previously agreed to, MUGA will surface a re-acceptance flow on each device the next time the service worker wakes up. If we only add clauses (without changing existing ones), the flow shows you the new clauses and lets you accept or decline; declining keeps you under the previously accepted terms.

Migration on upgrade

If you previously installed MUGA before this version and your acceptance was stored across devices via sync, MUGA will migrate that acceptance to local storage on the first run after upgrade. The migration is one-way (sync → local) and idempotent: you keep your acceptance state without re-onboarding. The migration is implemented in src/lib/sync-migration.js in the source.

Tracking parameters

MUGA strips tracking parameters (UTMs, fbclid, gclid, and others) from URLs automatically. This happens locally. The removed parameters are not logged, transmitted, or stored anywhere.

Additional features

The following features are enabled by default and can be individually toggled in Settings:

All of these operate entirely within your browser. No external requests are made.

URL cleaning (and the click, copy, page-load self-clean paths) runs as a local computation inside your browser. It does not round-trip through any extension service worker or external server. The cleaning logic ships in the extension package as a small bundled file (src/content/cleaner-bundle.js) generated from the ES module source under src/lib/ via tools/bundle-content.mjs; the bundle is committed to the repository so reviewers can verify it matches the unbundled source.

Affiliate tags

MUGA does not add any affiliate tag of its own. By default, it respects the original referral: if a creator you follow earned an affiliate tag on a link, MUGA leaves it in place, so they keep their credit.

If you enable "Remove all affiliate tags from other sources" in Settings, third-party affiliate tags placed by other creators or networks are removed from the URL, leaving none behind. This is an optional extra, off by default: MUGA never adds its own tag in their place. All of this happens locally, with no external request.

What MUGA never does

Affiliate networks: redirect-tolerant

MUGA recognises both styles of affiliate attribution and respects both. Some programs (Amazon, eBay, Vercel, DigitalOcean, Lemon Squeezy, Apple Performance Partners, Bookshop.org, Steam Curator) carry the creator's referral as a query parameter or path segment on the merchant's own URL. Other programs (Awin, CJ Affiliate, AliExpress Portals, Impact, Partnerize, Admitad, A8.net, Rakuten, TradeTracker) carry it as a redirect through the network's own servers, where the network's 30x sets a first-party cookie on the merchant's domain at landing. MUGA does not pick winners by attribution model.

Practically: when MUGA sees an affiliate-redirect URL, the redirect passes through your browser unchanged. The network's servers see your click (that's the entire point, without it the creator's commission cannot be paid) and the merchant's first-party cookie gets populated normally. MUGA does not interpose, does not log the redirect anywhere outside your device, and does not rewrite the URL beyond removing well-known tracking parameters (utm_*, fbclid, gclid, and the rest) from the merchant's landing page once you arrive. The matrix that drives this is published in docs/affiliate-networks-matrix.md on each release.

Independently of any affiliate model, MUGA offers an optional "Follow shortener redirects" feature that resolves generic URL shorteners (bit.ly, tinyurl.com, t.co, link.medium.com, lnkd.in, fb.me, ebay.to) so you can see where a short link actually leads before clicking. When enabled, the extension itself contacts the shortener host directly with credentials: "omit" (no cookies, no identifying headers) and reads the Location header, no MUGA server is involved. Off by default. Affiliate redirect networks are NEVER followed. See the Permissions section below.

Third-party affiliate programs

When you navigate to a store via a link that already carries a creator's affiliate tag, the store's own analytics may record the visit as originating from an affiliate link. This is standard affiliate behaviour and is governed by the store's own privacy policy, not MUGA's. MUGA does not add any affiliate tag of its own and is not a party to these programs.

Permissions

MUGA requests the following browser permissions:

Optional host permission (off by default; granted only when you turn on the corresponding feature in Settings, revocable from browser settings at any time):

Remote rule updates

This is the one thing MUGA fetches on its own, and it is on by default. You can turn it off in Settings at any time. At most once every 7 days, piggybacked on a natural service-worker wake event, MUGA makes a single HTTPS GET to rules.muga.app for an updated tracking-parameter list. The response is an Ed25519-signed payload verified against a public key shipped inside the extension; an unsigned, tampered, or older payload is rejected and your existing rules are kept.

The request is sent with credentials: "omit" and cache: "no-store": no cookies, no account, no identifiers, and nothing about you or your browsing goes with it. It is a plain download of a public file. Like any request to any website, it does reveal your IP address and the time of the request to whoever serves that file. MUGA neither logs nor stores this, but we would rather say it plainly than imply the request is invisible. The fetch will not happen until you have accepted the onboarding disclosure that describes it, and it never fires while remote rules are turned off.

Open source

MUGA is licensed under the GNU General Public License v3 (GPL v3). The complete source code is public. If you want to verify that this privacy policy accurately describes the extension's behaviour, read the code. It's all there.

Contact

Questions or concerns: open an issue at github.com/yocreoquesi/muga/issues.