🛠️Devlog Across Flex – Vol. 1Building Flex Mobile


Welcome to Devlog Across Flex,

our behind-the-scenes engineering log where we unpack how the tech behind Flex Mobile actually works.

This first entry explores the digital infrastructure we’ve architected to make Flex Mobile a frictionless, all-digital travel telco, and how we’ve unified the user experience across our mobile app and web platform — all while keeping it fast, modular, and scalable.


🧠 The Core Architecture: One Source of Truth

At the center of Flex Mobile is a single, unified customer profile layer. Every account, plan, and eSIM activation is routed through a modular service mesh that communicates with both the mobile app and the web frontend via secure, token-authenticated APIs.

Key highlights:

  • Headless backend approach for decoupled development
  • API-first infrastructure with centralized customer data management
  • Real-time sync using event listeners and webhook dispatchers
  • Device-agnostic logic to handle provisioning and plan states consistently

This design ensures that whether a user activates a plan from the app or the web, the backend stays the single source of truth for entitlements, usage stats, and available perks.


📡 Provisioning and Plan Management

Once a plan is purchased, a background worker spins up to handle the following asynchronously:

  1. Verify entitlements
  2. Trigger eSIM provisioning job
  3. Log metadata (IMEI, country, activation method)
  4. Broadcast update via webhook to both app and web layers

We’ve optimized this to run in under 3 seconds, even in high-concurrency environments, thanks to parallel job execution and smart caching.


🔐 Auth, Sync, and Security

Both the app and web portal rely on a JWT-based token system for user sessions, with refresh token flows and short-lived access tokens to reduce risk.

We also introduced a client fingerprinting layer that gives us context on what device initiated an action, letting us build smoother UX flows (e.g., resuming purchases on a different device).

Real-time updates? We’ve got socket-based listeners for usage stats, so when you’re topping up data on the app, it’s reflected instantly on the web and vice versa.


📊 Usage Visualization and Plan State Logic

Data consumption isn’t just about numbers. We’ve built a lightweight logic layer that:

  • Tracks data usage in buckets (region, plan type, tier)
  • Triggers state transitions like “Active” → “Expiring Soon”
  • Sends app-side notifications and in-app banners based on thresholds

It’s designed to be modular so we can later plug in things like loyalty triggers, gamified achievements, or upgrade prompts.


✈️ A Platform Built for Travel

We’ve also localized the entire experience — not just in language, but in logic. The backend adjusts displayed plans, promotions, and banners based on geo-IP, country codes, and usage context.

For example:

  • Users landing in Singapore see immediate local plan options
  • First-time travelers get onboarding tips and eSIM install prompts
  • Returning users are preloaded with their most-used destination plans

🚀 Coming Up in Vol. 2…

Next time on Devlog Across Flex, we’ll break down how we’re layering in our loyalty tier engine, built to scale across seasonal campaigns, regional bonuses, and customer-driven milestone triggers — all while being API-addressable and context-aware.

Until then, we’ll keep building the telco future we want to use ourselves.


Leave a Reply

Your email address will not be published. Required fields are marked *