Skip to content
GODJI TECH
All products

Platform · Mobile

My ADA

The member app for a national church in Mozambique — a WhatsApp-grade community, the Apostle's weekly word as a channel, a Bible in local languages that works offline, giving by M-Pesa and a toolkit for the leaders of 1,508 assemblies. On the stores, and updated over the air almost daily.

Type
Client app
App
React Native · Expo
Backend
Django · DRF · WebSockets
Hosting
AWS · Cape Town

The brief

A church that could only reach its members through forwarded PDFs.

The denomination already had a back office — its ERP — and a public website. What it did not have was a way to reach its members directly. The Apostle's weekly update went out as a PDF forwarded on WhatsApp, group conversations lived in dozens of unofficial groups, and a treasurer in a district with no fibre line could only declare Sunday's collection by phone.

The app had to be the member's front door to the church: two taps to anything that matters, in their language, on a cheap Android phone on a slow connection — and it had to be improved continuously without waiting weeks for store review.

What we built

For members, and for the leaders who serve them.

  • Community that feels like WhatsApp

    National, provincial, district and assembly chats plus groups and direct messages — voice notes, photos, video, documents, quotes, forwarding, read receipts, pinned messages and search.

  • The Apostle's Update as a channel

    Each week's word arrives as a post with reactions and threaded comments, pushed once to every member and mirrored on the website — imported from the ministry's source, machine-drafted into Portuguese and reviewed by the team.

  • A Bible that works without signal

    KJV plus licensed YouVersion versions including Makhuwa-Meetto, Sena and Shona, downloaded once on Wi-Fi and searched locally — with highlights, bookmarks, reading plans and a word-of-the-day widget.

  • Giving, events and church life

    Give by M-Pesa or declare for the treasurer, RSVP to events, sign attendance by QR, find the nearest church on a live map and watch live TV with picture-in-picture.

  • Contributions from the pew

    Collective submissions with proof of payment, contributor statements, dues reports and an approvals inbox — the same ledger the finance team closes each month, reachable from a phone.

  • Putting the church on the map

    Leaders capture a GPS pin and a photo of their building, which waits in an approvals inbox with accuracy flags. Ninety per cent of the map was empty when we started.

Design decision

Built for a member in Nampula on 3G

Chat exists so the church owns its community and its data — not to out-build WhatsApp. Every feature was judged by one test: does it serve the church, and would a member on a slow connection use it? Anything that failed, like a flip-book reader, was replaced by behaviour people already know.

Screens

What it looks like.

Captured on a live production phone. Other members' names and photos are blurred or replaced.

  • Home — word of the day, reading plan, quick access
    Home — word of the day, reading plan, quick access
  • The Apostle's Update — a channel, not a flip book
    The Apostle's Update — a channel, not a flip book
  • Bible — versions, search, bookmarks, highlights
    Bible — versions, search, bookmarks, highlights
  • Chats — national, ministry, assembly and direct
    Chats — national, ministry, assembly and direct
  • Find a church — 1,508 assemblies sorted by distance
    Find a church — 1,508 assemblies sorted by distance
  • My Space — your record, diary, requests and care
    My Space — your record, diary, requests and care

Architecture

A client of the church's ERP, not a system of its own.

Everything a member sees comes from the same Django back end the finance and HR teams use — one register of people, churches and money.

my-ada ▸ stack

   My ADA   React Native · Expo · one JS runtime on iOS and Android
      │ HTTPS (scoped tokens)          │ WebSocket (chat), polling fallback
      ▼                                ▼
   Finanças ERP   Django · DRF · gunicorn · realtime service
      │             │              │                │
      ▼             ▼              ▼                ▼
  PostgreSQL     S3 media      Expo Push        Website (ada.org.mz)
  on RDS         signed URLs   APNs / FCM       updates, comments, accounts

  Over the air   JS changes publish in minutes to every phone;
                 native changes batch into store releases.

A member sees only their own assembly's money, a district administrator their district, and headquarters everything. The permission model that governs the ERP's reports governs the app's screens — there is no second rule book to keep in step.

The harder parts

Where the real work went.

Shipping daily to phones in people's pockets

In three weeks the app went from 2.4.4 to 3.0.4 — sixteen versions, the first App Store release and iPad support, then daily over-the-air updates. The trick was one runtime on both platforms, and a strict line between what ships over the air and what needs a store build.

Chat that behaves on a bad network

A list that never jumps when the keyboard opens, sends that retry on their own and say why they failed, placeholders instead of blank images, and polling under the WebSocket for when it cannot connect. Each was a real member's bug report before it was a feature.

Not locking people out

Disabling dormant accounts is good security and a terrible first impression for a treasurer at month-end. The app recognises a disabled account, offers a one-tap reactivation request, and the decision lands in both back offices.

A Bible that respects licences and bandwidth

Local-language Bibles come from YouVersion under licence, fetched through our API so keys never reach the phone. Whole-version packs are compressed and cached, so one download on Wi-Fi gives a member their Bible for good — searchable even in airplane mode.

Stack

What it runs on.

  • React Native
  • Expo
  • EAS Build & Update
  • iOS
  • Android
  • Django
  • DRF
  • WebSockets
  • PostgreSQL
  • AWS EC2 · RDS · S3
  • Expo Push · APNs · FCM
  • M-Pesa
  • YouVersion API