All work

Blanarch · Personal product · 2026

Android VPN client, built from the protocol up

Three Blanarch screens: connected with a pinned certificate, connecting while it reads an emailed code, and connected in dark mode

Blanarch is my own Android app for connecting to FortiGate SSL-VPN gateways running FortiOS 7.6.2 or older (7.6.3 removed tunnel mode). I designed the architecture and wrote the protocol spec and the tests; Claude Code agents implemented against them, and I reviewed the result. It connects end to end on a real gateway, through network loss and session expiry. Not affiliated with Fortinet.

Architecture

  • A Flutter UI on the MVVM pattern from the official Flutter architecture guide, with one place where dependencies are wired and Result and Command types instead of thrown errors.
  • A typed Pigeon contract between Dart and Kotlin: commands go down, status events come up, and both sides are generated from one file.
  • Ports and adapters in the Kotlin engine. Protocol logic is pure and free of I/O, so sign-in, framing and PPP are tested without a network.

Connection engine

  • A coroutine orchestrator that fails over between a profile’s gateways and rejoins with the same session when it can.
  • Offline, it waits without using up retry attempts, and it rejoins as soon as the real network changes.
  • A foreground VPN service with a Quick Settings tile, notifications with Reconnect, Disconnect and inline code reply, always-on VPN and split routing.

Security and sign-in

  • Never trusts a certificate silently: the user confirms its SHA-256 fingerprint, which is then pinned per host.
  • Passwords are encrypted with AES-GCM under an Android Keystore key, behind a biometric or screen-lock app lock.
  • Sign-in by password and code, push approval, or SAML single sign-on through a loopback listener that works in any browser. It can also read emailed one-time codes over IMAP.
  • Setup links and QR codes let IT share a connection, and they never carry passwords.
  • Flutter
  • Dart
  • Kotlin
  • Coroutines
  • Pigeon
  • Android VpnService