HS VPN: a connection that earns its Protected state.
Mahmoud led the product end to end: the problem definition in Egypt-style DPI-heavy networks, the visual language, the Flutter-and-native split, the per-node registrar, the catalog control plane, and store delivery.
Android · primaryLive on Google Play as a free, ad-supported app.In productionPackage com.hsvpn.vpn · published by Hossam Technology Company LLC.
iOS · secondaryWireGuardKit packet-tunnel extension reached TestFlight.TestFlight buildPlain WireGuard on iOS. No public App Store release confirmed in the reviewed evidence.
A started tunnel is not yet a working connection.
On networks that interfere with ordinary VPN traffic, the app needs more than a successful tap. It needs a usable server profile, a native tunnel start, and handshake evidence before it can show a protected session.
The product problem was to make that state understandable. A reassuring green label would be misleading if the device had started a tunnel service but never exchanged traffic with the selected peer. The experience therefore follows what the connection actually does, including failure and fallback states.
Choose, connect, understand.
The main path keeps location choice and the connection control close together. Once protected, the dashboard makes the session state prominent; a separate statistics view lets someone inspect the session in detail.
Those simple screens sit on top of catalog selection, peer registration, native tunnel work, and a confirmed handshake. The visible interaction is a single tap. The engineering work is everything that has to be true before that tap can honestly become “Protected”.
Platform note. The captures below are older iOS TestFlight builds. The Android build on Google Play is the live production path; these screens are presented as evidence of the earlier product experience, not as current Android UI.
iOS · TestFlight captureConnected dashboard with protected state, primary connection control, and selected server.
iOS · TestFlight captureSession statistics: current session, live speed, and active server status.
iOS · TestFlight captureServer selection with location list and live latency readouts.
End-to-end product and engineering lead.
End-to-end product and engineering lead: idea, visual design, architecture, infrastructure, and store delivery.
Crossed the product and operational boundaries: defining the connection experience, shaping the dark visual language, deciding how Flutter and native VPN code would divide responsibilities.
Designed the registration and configuration path, ran the per-region server infrastructure, and moved the Android and iOS builds through store delivery.
The repository records other contributors. This case study describes Mahmoud's leadership and decisions across the product and engineering boundaries.
How it fits together
Flutter, native tunnel, registrar, and a catalog control plane.
Flutter owns the screens, the connection orchestrator, and the catalog choices. Native code on Android and iOS owns the actual tunnel lifecycle and the OS-level VPN integration.
A per-node FastAPI registrar handles peer registration and IP assignment. Firebase Remote Config supplies the live server catalog with cached and bundled fallbacks, so a remote outage does not remove every location.
Android · primary platformLive on Google PlayAmneziaWG path is in production; plain WireGuard is also available.
iOS · secondary platformTestFlight build onlyPlain WireGuard packet-tunnel extension. No public App Store release confirmed.
Visible interactionOne tapA confirmed handshake is the point at which the session is protected.
Remote Config, then a last-known-good cache, then a bundled bootstrap. An unavailable remote response does not remove every option.
Order the candidate profiles
The orchestrator orders supported profiles for the device and network; Android prefers an AmneziaWG-capable option when enabled.
Register the client
The client public key goes to the selected node's FastAPI registrar for peer registration and address assignment.
Start the native tunnel
Hand the connection to Android or iOS VPN APIs rather than treating a Flutter button event as a tunnel.
Confirm the handshake
Show Protected only after native handshake evidence indicates that the session is working.
Decisions behind a trustworthy state.
Flutter owns product flow and catalog choice. Native Kotlin and Swift code own tunnel lifecycle. A per-node FastAPI registrar handles peer registration; Remote Config, cache, and bundled data keep the catalog recoverable.
On Android, the connection path can use AmneziaWG-oriented operation where enabled to address networks that interfere with ordinary WireGuard. The checked-in iOS TestFlight build uses plain WireGuard through a packet-tunnel extension. The two platforms should therefore be described separately, even though they share product intent and much of the Flutter experience.
Make the status honest
A user sees Protected only after a real handshake, not merely after a service starts.
Connection state waits for native handshake evidence.
Recover the catalog
A remote configuration outage need not remove every location.
Remote Config, cached, and bundled catalog layers.
Keep native responsibility clear
Product flow can change without bypassing OS tunnel rules.
Flutter orchestrates; Kotlin and Swift own native VPN lifecycle.
Place ads after connection truth
Monetization does not define protected status or block a disconnect action.
Connection-aware placement and remote switches.
Where it ran
Designed for restrictive networks, used in three.
Android uses an AmneziaWG-oriented path on networks where plain WireGuard is blocked; the iOS TestFlight build uses the WireGuardKit packet-tunnel extension. OpenVPN is not part of the shipped product.
Founder-reported Firebase observations, owner-confirmed September 2026.
Egypt
Designed-for-environment. Daily use across home, mobile, and café networks where ordinary WireGuard is fingerprinted or blocked.
Iran
Worked in Iran. Firebase showed multiple users in Iran throughout the month, with daily use.
Turkmenistan
About 1,500 users from Turkmenistan, with daily use per Firebase, as reported by the founder.
Where the product stands.
Android is publicly listed on Google Play. The listing displayed 10K+ downloads when checked on 25 September 2026; this is a dated distribution count, not an active-user or success measure.
iOS reached TestFlight. The reviewed evidence does not establish a public App Store release or measured connection success, speed, revenue, or retention outcomes.
The visible interaction is one tap. The engineering work is the catalog, the registered peer, the native tunnel, and the confirmed handshake that make the word Protected defensible. The portfolio documents those decisions without exposing server addresses, keys, or operational access details.