I’ve been testing VPN services and somehow every one with a client has written their own. Proton, Windscribe, IVPN, Mullvad, AirVPN, NordVPN, and the list goes on.
Don’t these services all do the same thing? Connect to a server to get a list of servers, then use WireGuard or OpenVPN to make a connection, and have some fancy stuff like split tunneling or a killswitch. It should just take configuration by adding profiles per service and it should be possible to use the same client.
What am I missing?


Wouldn’t less variety of clients be less safe. Having one client means a security bottle neck becomes vulnerable because more is ‘known’/certain to attackers.
Besides all text editors are doing the same thing, so why not just have one text editor?
Ultimately if you follow this line of thinking - then why not have a universal code library that just forms programs as the user needs them.
Okay, so you want Star Trek style Holodeck?
I mean, from what I’ve seen, a lot of companies already use wireguard as its base layer, so if this is not secure, the VPN service itself will not be. They could simply offer the user to create a wireguard config and download that, like Mullvad does, which not only would allow users to skip the app, but also allow users to use VPNs only with certain networks and not all, and even allow tunneling if the end user uses a dedicated firewall. That way you could use certain VPN connections for certain addresses/pools and others for other, or even circumvent it in very niche cases, if need be.