StartMyVPN - Android Native VPN ClientStartMyVPN - Android Native VPN Client
Full-source Android VPN client for StartMyVPN — WireGuard & OpenVPN, guest mode, Play Billing, AdMob, Firebase, Compose UIStartMyVPN - Android Native VPN Client
Full-source Android VPN client for StartMyVPN — WireGuard & OpenVPN, guest mode, Play Billing...
Overview
A complete, production-ready Android VPN application built in Kotlin and Jetpack Compose. Ships with the full source code, both WireGuard and OpenVPN protocols, a guest-mode flow, Google Play Billing with purchase restore, AdMob, Firebase Analytics & Crashlytics, and SSL certificate pinning.
⚠ Requires the StartMyVPN SaaS backend. This app is a client for the StartMyVPN platform and will not function without it. You must have the backend running on your own server: StartMyVPN — WireGuard & OpenVPN SaaS Platform.
Why this template?
- Two protocols in one app — WireGuard for speed, OpenVPN for compatibility.
- Modern tech stack — Kotlin, Jetpack Compose, Material 3, Retrofit, Moshi, Coroutines, EncryptedSharedPreferences.
- Guest mode + claim flow — users can start connecting instantly with a device-ID login, then upgrade to a full account later.
- Monetization included — Google Play Billing subscriptions (verify & restore) and AdMob banner / interstitial / app-open.
- Secure by default — TLS certificate pinning, encrypted token storage, Android App Links for password-reset.
- Driven by the backend — remote feature flags for ads, maintenance mode, force-update, and suspended accounts — no re-release needed.
- Clean MVVM architecture — ViewModels, a single repository layer, and a typed Retrofit API.
Included screens
- Splash + app-config gate
- Guest terms → instant connect
- Login, Register, Forgot / Reset Password, Email Verification
- Claim Account (convert guest to full account)
- Home with connect button and live tunnel status
- Interactive SVG world map of server locations
- Server list bottom sheet with favorites and latency
- Subscription / pricing
- My Account, Settings, Sidebar drawer
- Force Update, Maintenance, Suspended states
Documentation
A full step-by-step configuration guide is available at docs.startmyvpn.com, covering Firebase setup, package rename, certificate pinning, deep links, AdMob, Play Billing, branding, and release signing.
Features
- 100% Kotlin + Jetpack Compose (Material 3)
- WireGuard & OpenVPN tunnel support in a single APK
- OpenVPN native module (ics-openvpn) built via CMake / NDK
- MVVM architecture with ViewModels + repositories
- Retrofit + OkHttp + Moshi networking layer
- Email/password auth with email verification
- Guest / anonymous device login + "Claim Account" flow
- Forgot & reset password via Android App Links
- Change email and change password
- Google Play Billing — subscriptions, receipt verify, restore
- AdMob banner, interstitial & app-open ads
- Firebase Analytics & Crashlytics
- TLS certificate pinning (network security config)
- Encrypted token storage (EncryptedSharedPreferences)
- Interactive SVG world map of server locations
- Free-tier and premium-tier server lists
- Server favorites, latency indicators, filtering
- Server-driven runtime state: force-update, maintenance, suspended
- Remote feature flags via the backend app-config endpoint
- Single-file theme & brand customization
- Clean, commented, production-grade code
Requirements
- StartMyVPN SaaS backend — required. This app is a client and will not function without it: StartMyVPN — WireGuard & OpenVPN SaaS Platform
- Android Studio Hedgehog (2023.1.1) or newer
- JDK 11
- Android SDK with API 26 (min) and API 36 (target)
- Android NDK 27.2.12479018 (for the OpenVPN native build)
- Gradle 8.x (wrapper included)
- A Firebase project (for Analytics and Crashlytics)
- A Google Play Console account (to publish and to test billing)
- The open-source WireGuard
tunnel.aar— build from the wireguard-android project and drop intoapp/libs/ - (Optional) AdMob account if you want in-app ads
Instructions
The package includes a SETUP.md Quick Start at the project root. A full, illustrated
configuration guide is published at docs.startmyvpn.com.
Before you start
You must first install the StartMyVPN SaaS backend on your own server. This Android app is a client for that platform and will not function without it: StartMyVPN — WireGuard & OpenVPN SaaS Platform
Quick Start
- Open the project in Android Studio and let Gradle sync.
- Create a Firebase project, download
google-services.json, and replaceapp/google-services.json. - Obtain
wireguard-tunnel.aar(build from the open-source wireguard-android repo) and place it atapp/libs/wireguard-tunnel.aar. - Set your StartMyVPN backend URL in
app/src/main/java/.../data/remote/ApiClient.kt(must end with/api/v1/). - Update
namespaceandapplicationIdinapp/build.gradle.ktsand thepackage_nameingoogle-services.json. - Update certificate pin hashes and domain in
app/src/main/res/xml/network_security_config.xml. - Update the deep-link host in
AndroidManifest.xml. - (Optional) Set your AdMob App ID and ad unit IDs.
- Rebrand: launcher icons, app name, theme colors.
- Generate a release keystore and build a signed AAB for Google Play.
The full guide includes backend endpoint expectations, a troubleshooting section, and step-by-step Play Console publishing notes.
Other items by this author
|
Android App Reskin Service
Have your App reskinned to meet your needs.
|
$499 | Buy now |
| Category | App Templates / Android / Applications / Utility |
| First release | 14 April 2026 |
| Last update | 14 April 2026 |
| Tags | android, client, management, private, secure, service, proxy, vpn, SaaS, openvpn, wireguard |








