Why cross-platform VPN support led us to rebuild our apps in Flutter

We rebuilt our white-label VPN apps from the ground up using Flutter, replacing fragmented codebases with a single, unified platform. The result is faster development, cleaner updates, and powerful new features rolled out across iOS, Android, macOS, and Windows simultaneously.

Jord Jord
3 min read
Why cross-platform VPN support led us to rebuild our apps in Flutter

When we first launched our white-label VPN apps, iOS, macOS, Android, and Windows were all built with different frameworks and completely separate codebases.

That approach worked initially, but cracks began to appear as we expanded. Adding support for Android TV, for example, came with its own unique challenges. Integrating it into an already fragmented setup was difficult. While we got it working, the result was more of a patch than a clean solution, one that still causes issues behind the scenes today.

As we continued to grow, maintaining four (and sometimes five) separate codebases became increasingly painful. Bug fixes took longer to ship, features slowly drifted out of sync, and maintaining a consistent experience across all platforms became a constant uphill battle.

A few months ago, we decided it was time for a change. We rebuilt our apps from the ground up using Flutter. With a single codebase powering all four apps, we can move faster, build cleaner, and roll out new features across every platform simultaneously. Since switching to Flutter, adding functionality has become significantly easier, allowing us to deliver updates more quickly and providing you with the opportunity to offer more value to your customers.

Combined with the recent backend upgrades we released (which you can read more about in our V3 announcement), we’ve created a powerful platform for anyone looking to launch their own white label VPN service. And with more countries tightening restrictions on what people can watch or access online, VPN usage is higher than ever.

Building the new apps in Flutter wasn’t without its bumps. We used both wireguard_flutter and openvpn_flutter in our builds. Out of the box, openvpn_flutter only supports iOS and Android, so we had to implement macOS and Windows support. wireguard_flutter worked on all platforms, but we still needed to adjust the Windows implementation to meet our requirements. We’ve published our changes on GitHub in case they’re useful to anyone else.

While this work required extra effort up front, it’s already paying off. Having full control over these integrations makes our development process smoother and more predictable, allowing us to build, test, and ship features faster across all platforms. It also gives us the flexibility to support platform-specific requirements like full 16 KB page size compatibility, helping ensure better performance, stability, and future-proofing as operating systems continue to evolve.

Our new apps introduce several highly-requested features: speed monitoring, kill switch, and auto-connect are now included by default across all platforms. These give your customers more control over how their VPN behaves, alongside the server locations included in your plans. And this is only the beginning; we’ve already started work on the next round of features.

Windows support has also seen a significant improvement. Previously, our Windows app relied on external dependencies and manual setup, making installation fragile and more difficult to support. With the rebuilt app, everything is now fully bundled into a single installer; no additional components, drivers, or tools need to be installed separately. This results in a smoother setup process, fewer points of failure, and a far more reliable experience for both you and your customers.

We’ve been hard at work building and deploying our own DNS network, powered by PowerDNS and dnsdist. This new infrastructure enables an upcoming feature that gives your customers more control over their online experience.

They’ll be able to choose from multiple levels of protection, from ad blocking and malware prevention to filtering adult content, all tailored to their individual needs.

Just as importantly, privacy remains at the core of how we build. No DNS logs are stored, and no user activity is tracked. This network is designed from the ground up with privacy in mind, reflecting our ongoing commitment to delivering powerful features without compromising user trust.

We’re excited about what’s next. We’ll continue improving and expanding our apps in the coming months, bringing new features and enhancements for all of our customers.

If you'd like to demo our apps, you can find them here:

Android: https://play.google.com/store/apps/details?id=com.baseserv.vpnappdemo&hl=en_GB
iOS: https://apps.apple.com/us/app/bsvpn/id6474095189
macOS: https://apps.apple.com/us/app/bsvpn/id6474095189?platform=mac
Windows: https://bserv.uk/MvX5e

Whether you’re launching a new white-label VPN service or looking to improve an existing one, BillingServ provides the tools, infrastructure, and support to help you scale with confidence. Reach out to our team to learn more about what’s possible.

Built for a safer internet,
The BillingServ team

Ready to Simplify Your Billing?

Join thousands of businesses that trust BillingServ