Security and privacy decision
Mullvad
A technically capable user can build and run a small WireGuard-based VPN for personal or small-group use, but cannot cheaply reproduce Mullvad’s global server footprint, anonymity payment options, and polished cross-platform clients; keeping Mullvad is reasonable if you need scale and convenience.
Visit website↗Open-source builds that already do this
Every project below is open source and already does this job today. Fork one, self-host it, or take the parts you need — the build prompt further down assumes an empty file, and this is the shortcut past that. Licences differ; check the one on each card before you ship.
Code Mullvad publishes itself
Not a way out of the subscription — these are the vendor’s own repositories. Worth a look for how they build, and for anything you would have to integrate with.
- mullvad/mullvadvpn-app★7,433 GitHub starsGPL-3.0The Mullvad VPN client app for desktop and mobile↗
- mullvad/mullvad-browser★2,460 GitHub starsPrivacy-focused browser for Linux, macOS and Windows. Made in collaboration between @torproject and @mullvad↗
- mullvad/dns-blocklists★1,932 GitHub starsGPL-3.0Lists and configuration for our DNS blocking service↗
- mullvad/gotatun★1,351 GitHub starsMPL-2.0Userspace WireGuard® Implementation in Rust↗
What a replacement has to do
- Provision VPN servers, run WireGuard/OpenVPN on them, generate per-account keys/configs, deliver client config and client software for devices, route device traffic through the tunnel and maintain server list.
What it still won’t have
- Global multi-region server network and bandwidth at Mullvad scale
- Anonymous, multi-payment options and account model as provided by Mullvad
- Polish of official clients, browser integration, and long-term operation experience
What remains hard
- Product polish and ongoing maintenance
First-year cost
Keep paying
Paying is—cheaper in year one.
On cash alone, building overtakes the subscription at 1 seat.
Money you would actually spend
Time you would spend
—
What you would spend
What we assumed
The verdict above measures whether you could build it. This one is only about money.
Runnable build prompt
Build a minimal self-hosted VPN service using Ubuntu 22.04 VPS instances, WireGuard for tunnels, PostgreSQL for account metadata, and a Python Flask web UI. In scope: automated VPS provisioning script (Terraform or shell) for one region, WireGuard install and firewall configuration, keypair generation and storage, an authenticated web page to create an account identifier and download per-device WireGuard configs, basic server monitoring (health checks + alerts), systemd services, and automated backup of configs. Out of scope: global multi-region server fleet, payment processing, mobile-native apps, and automated bandwidth scaling. Require input validation, error handling, and unit/integration tests for key config generation and web endpoints.
How we checked
How the score was reached
- Partly verdict base52
- An open-source build was found+5
- 4 cited sources+3
- Price verified on pricing page+3
- 3/3 assessment runs agreed+4
- Evidence score67
The base comes from the verdict. Everything under it is a check that either happened or did not, and each one is a fact frozen in this record rather than a judgement made at render time — so the same evidence always produces the same number.
How scoring works →Cited sources · 4
Every page the run actually retrieved.
- official productMullvad product page
- official pricingMullvad pricing
- open sourcetrailofbits/algo
- open sourceOutlineFoundation/outline-apps
Integrity checks
What held up, and what did not.







