Skip to content
All work
// Case studyMobilelive

Takaful Golden

Membership discount-card app — issuance, counter-side verification and annual renewal for a national medical network.

2020 Saudi Arabia Healthcare membership · Discount card network
Healthcare & benefitsPayments

// By the numbers

5+
Years in production

live on the App Store since October 2020 and still updated in 2025

2
Client platforms

iOS and Android from a single Flutter codebase

60%
Discount ceiling

the client's advertised member discount across its provider network

24h
Issuance turnaround

the client's stated time from signup to an active membership

// The problem

What the business was up against

A discount card is only worth what a receptionist will accept. Selling the membership was never the hard part; making it usable at the counter was. Members carried a printed card, and neither side of the desk could reliably answer the two questions that actually matter — is this membership still valid, and is this clinic even in the network? Printed provider lists went stale the month they were issued, membership status lived in the head office, and every disputed discount turned into a phone call to the call centre while the member stood waiting.

// Overview

A membership app for a Saudi medical and lifestyle discount card. Members subscribe and pay in-app, receive a digital card whose validity can be checked on the spot, and browse the medical and commercial network that honours it — Arabic-first, on iOS and Android, against a Laravel backend that holds membership state as the single source of truth.

// Architecture

How it's put together

01Member-facing

Mobile App

Flutter — iOS & Android

Digital Membership Card

Presented and checked at the counter

02Application layer

Membership API

Subscription · issuance · expiry · renewal

Network Directory

Providers, offers and coupons

03Data

Relational Database

Members, providers, offers

04Integrations

Payment Gateway

Hosted checkout for annual dues

Push Notifications

New offers and renewal reminders

Membership state lives in one record; the app, the card and the call centre all read from it.

// Engineering decisions

The calls that shaped it

The handful of decisions that determined how this system behaves — and what each one bought.

  1. 01

    Membership validity is a screen, not a profile detail

    The verification moment is the product, so it gets the shortest path in the app rather than being buried in an account page. A member can prove standing in seconds at the desk, which is the difference between a card that gets honoured and a card that gets argued about.

  2. 02

    The provider network is served, never shipped

    A network that changes every month cannot live inside an app binary. Providers, offers and coupons are fetched from the API, so the directory a member sees is current without waiting on a store release — and stale provider data is worse than none, because it sends someone to a clinic that will turn them away.

  3. 03

    One record owns membership state

    Subscription, issuance, expiry and renewal all read from a single record in the backend, so the app, the printed card and the call centre can never disagree about whether someone is covered. Reconciling three versions of the truth was the failure mode worth designing out first.

  4. 04

    Card details never touch the app or the server

    Annual dues are collected through a hosted gateway flow. Payment credentials go straight from the member to the processor, which keeps card data — and the compliance burden that follows it — out of a codebase maintained by a small team.

  5. 05

    One Flutter codebase for both platforms

    A single client for iOS and Android is why a small team could keep shipping: the app was still receiving updates more than four years after launch, which a two-codebase build of this size rarely survives.

  6. 06

    Arabic-first, not Arabic-also

    Every member is a Saudi consumer, so Arabic and right-to-left layout were the default case the interface was designed around rather than a translation pass applied afterwards.

// Highlights

Signature capabilities

01

Counter-side verification

The screen that proves a membership is current sits one tap from launch, because the card's entire value is whether a receptionist will accept it in the moment it is presented.

02

Server-driven provider network

Clinics, partners, offers and coupons are fetched from the backend, so a network that changes monthly stays accurate without shipping a new build to the stores.

03

Subscription and renewal

Annual dues are taken in-app through a hosted gateway, with expiry and renewal reading from the same membership record the verification screen uses.

04

Single source of truth for membership

One record in the backend backs the app, the issued card and the call centre, so coverage questions have exactly one answer.

05

Arabic-first mobile experience

The interface was designed around Arabic and right-to-left layout from the outset, for an audience that is entirely Arabic-speaking.

// Features

Business feature set

The functional scope delivered across every part of the product.

Members

  • Sign up and obtain a membership
  • Digital membership card
  • Profile and household details
  • Inquiries and customer support
  • Arabic interface with right-to-left layout
  • Push notifications

Membership lifecycle

  • In-app subscription payment
  • Membership validity check
  • Expiry visibility
  • Annual renewal
  • Renewal reminders

Network & offers

  • Browse the medical provider network
  • Browse commercial and leisure partners
  • Filter providers by category
  • Current offers and discount coupons
  • Provider detail and contact

Platform

  • Server-driven directory, updated without a release
  • Hosted payment flow, no card data stored
  • Single codebase for iOS and Android
  • Maintained in production across five years
// Outcome

What changed operationally

Documented outcomes from the delivered system. Where exact figures are confidential, the operational change is stated instead.

  • Live on the App Store and Google Play since October 2020, still receiving updates in 2025
  • Membership verification moved from a call to the call centre to an in-app check
  • Provider network and offers updated server-side, with no app release required
  • Annual subscription collected in-app through a hosted payment flow
  • One Flutter codebase serving both iOS and Android
  • Arabic-first interface with full right-to-left layout
// Constraints

What we had to work within

  • The card is presented at a clinic desk — verification has to work in seconds, in front of staff
  • Provider network changes continuously and cannot be tied to app release cycles
  • Membership is a paid annual subscription, so billing and expiry have to be exactly right
  • Consumer audience across the Kingdom, entirely Arabic-speaking
  • Small maintenance team — the build had to stay cheap to run for years, not months
// My role

What I owned

End-to-end on this project — from architecture and data modelling through to a shipped, production product.

  • Flutter application for iOS and Android
  • Laravel API and membership data model
  • Subscription payment integration
  • Provider network and offers directory
  • Push notification delivery
  • Store submission and release management
// Stack

Built with

Mobile

FlutterDart

Backend

LaravelPHP

Data

MySQL

Integrations

PayTabsFirebase Cloud Messaging
// Makhloof Studio

Want something like Takaful Golden?

Boutique software studio — agency-quality systems, shipped by one senior engineer.

Build something like this
WhatsApp