When the Signal Dies: Engineering Offline-First Mobile Architecture for Africa's Real Conditions

A field investigation into building software that survives the blackout, the sunset network, and the cable lying broken at the bottom of the sea.
I. The Woman Who Kept Working When the Bars Disappeared
There is a nurse in a rural clinic outside Kabwe, and there is a market trader in Kariakoo, and there is a loan officer somewhere between Kisumu and the Ugandan border, and all three of them, on any given Tuesday, watch the little signal bars on their phone climb down to nothing. The rain has done something to a relay tower, or the diesel at the base station has run out, or a ship's anchor three thousand kilometres away has dragged across a fibre cable it was never meant to touch. The network does not ask permission before it disappears. It simply goes, the way weather goes, the way power goes, and the person left holding the phone must keep working anyway, because the patient is still waiting, the customer still wants the sale recorded, the client still needs the loan disbursed.
This is not the edge case. This is Tuesday.
Software built elsewhere — in cities where the grid is a background assumption and the network is a public utility as reliable as water from a tap — treats connectivity loss as an exception to be handled apologetically, with a red banner and a spinning wheel. Software built for African conditions has to treat connectivity loss as the normal operating mode, and treat a live connection as the pleasant bonus. This single inversion of assumptions is the whole discipline. Everything else in this piece is commentary on that one sentence.
What follows is an attempt to do two things at once, in the spirit of a field report rather than a marketing brochure: state plainly, with sources, what the actual conditions on the ground are as of the middle of 2026; and lay out, with the same plainness, how a serious engineering team designs against those conditions rather than around them.
II. The Ground Truth: What “African Operational Realities” Actually Means in 2026
It is worth being precise here, because vague gestures toward “unreliable infrastructure” do a disservice to both the problem and the people living inside it. The picture is uneven, improving in places, worsening in others, and rarely what the headlines from five years ago suggest.
The Grid
South Africa's Eskom, for years the world's most cited cautionary tale in electricity planning, went 365 consecutive days without a single scheduled load-shedding event by 16 May 2026 — a milestone last seen before September 2018, and a sharp turn from 2023, when the country endured roughly 332 days of rolling blackouts in a single year. The utility's Energy Availability Factor climbed from the mid-50s into the mid-to-high 60s (percent), and S&P upgraded Eskom's credit rating for the first time in a decade. That is real, and it matters for anyone building consumer apps for the South African market.
But “no load shedding” is not the same as “no power problems.” Data from solar provider Wetility recorded 91,934 separate grid outages across South Africa in the year following the end of formal load shedding — an average of six to nine unplanned outages per household per month, cumulatively knocking out power for 73 to 132 hours a year. Much of this is now driven by illegal connections, cable theft, and ageing local infrastructure rather than national supply shortfalls — a different failure mode, but a failure mode nonetheless, and an unplanned one, which is worse for engineering purposes because it cannot be scheduled around.
Zoom out from South Africa and the picture gets starker. As of the most recent continent-wide figures (2022 data, still the reference point in infrastructure planning as of an April 2026 update from the Institute for Security Studies), Sub-Saharan Africa's electricity access rate stood at 51.5%, against a global average of 91.3%. That gap represents roughly 597 million Africans without any grid access at all — not intermittent power, but none. Nigeria (about 98 million people), the Democratic Republic of Congo (about 81 million), and Ethiopia (about 58 million) carry the largest absolute deficits. Nigeria's per-capita electricity consumption sits around 144 kilowatt-hours a year — about 3.5% of South Africa's usage — which is why diesel and petrol generators remain a default rather than a backup across much of West Africa.
The honest conclusion is not “Africa has no power.” It is: power reliability varies enormously by country and even by neighbourhood, unplanned outages are common even where planned ones have stopped, and hundreds of millions of people still have no grid connection whatsoever, relying instead on solar home systems, generators, or nothing. Any architecture that assumes a phone will always have charge, or that a shutdown will always be a clean one, is designing for a market that does not exist.

The Cable at the Bottom of the Sea
On 13–14 March 2024, four submarine cables serving West Africa — the West Africa Cable System (WACS), Africa Coast to Europe (ACE), MainOne, and SAT-3 — were damaged near the coast of Côte d'Ivoire, apparently by an undersea landslide rather than sabotage or shipping activity. Thirteen countries lost internet capacity, ranging from degraded service to near-total outages; Côte d'Ivoire was hit hardest. The disruption reached further than the affected countries themselves: Microsoft's Azure cloud region in South Africa went offline, Vodacom's data network became unreachable for many subscribers, and payments company Yoco — which runs on Azure — had its services disrupted, a detail that matters enormously for the argument of this article, because Yoco is exactly the kind of cloud-dependent, connectivity-assuming service that offline-first architecture exists to route around.
Two months later, on 12 May 2024, damage to the EASSy and Seacom cables disrupted internet traffic across Kenya, Uganda, Tanzania, Rwanda, Malawi, and Mozambique, with Cloudflare's traffic data showing drops of 10% to over a third in the worst-hit countries. It was the third cable-related disruption to hit the region that year, following a February 2024 set of cuts in the Red Sea. Repair timelines for deep-sea cable faults routinely run to five weeks or more, because specialised cable-repair ships are scarce and the fault sites are kilometres underwater.
The pattern is structural, not a one-off. Roughly 150–200 submarine cable faults are recorded globally each year, the large majority from fishing gear and ship anchors rather than anything more dramatic. Africa's coastline is served by a comparatively small number of cable systems, so a single fault can take out capacity for an entire sub-region — a concentration risk that fibre-rich regions like Western Europe don't share to the same degree.
The Handset in the Pocket
According to GSMA's Mobile Economy Africa 2026 report, mobile technologies and services generated $240 billion in economic value across Africa in 2025 — 7.8% of regional GDP — supporting roughly 13 million jobs and $45 billion in public revenue. That is a genuinely large and fast-growing digital economy. But the same report identifies what it calls the “usage gap” as the continent's defining constraint: 63% of Africa's population is covered by mobile broadband signal but is not online, meaning the barrier is no longer coverage — it is affordability, devices, and digital skills.
Smartphone adoption across Sub-Saharan Africa stood at 54% in 2024, projected by GSMA to reach 81% by 2030 — but that trajectory depends almost entirely on device prices falling. A 4G-capable handset in Sub-Saharan Africa costs roughly 26% of monthly GDP per capita, against 16% across other low- and middle-income regions, a gap that has not moved between the 2025 and 2026 editions of GSMA's report. For the poorest 40% of households in the region, an entry-level smartphone can eat up to 73% of a month's income, according to World Bank figures cited by GSMA. In response, GSMA and six major operators (Airtel, Axian Telecom, Ethio Telecom, MTN, Orange, and Vodacom) launched pilot programmes for $30–$40 4G smartphones in the Democratic Republic of Congo, Ethiopia, Nigeria, Rwanda, Tanzania, and Uganda in March 2026 — though a global surge in memory-chip prices during 2026, driven substantially by AI-related demand, is reportedly putting pressure on that $30 target.
Android holds roughly 85% market share across Africa, and 81% of smartphones sold on the continent in 2025 were priced under $200, with a large share under $100. Google's Android (Go edition) — a stripped-down build designed to run acceptably on 2GB of RAM or less (extending to devices with up to 3–4GB under newer Android releases) — is the operating system underneath a meaningful share of these devices. This is not a footnote. It is a hard engineering constraint: an app that assumes 8GB of RAM, background location services, and continuous connectivity is an app designed for a phone that most of the intended market does not own.
Meanwhile, the network generation underneath these phones is itself in transition. By the end of 2024, roughly half of Sub-Saharan Africa's mobile connections were still on 3G, about a third on 4G, close to 10% on 2G, and only around 1% on 5G. South Africa has pushed its 2G/3G sunset date to the end of 2027, and individual operators (MTN has targeted 3G shutdown by the end of 2026) are moving at their own pace rather than a coordinated one — meaning a single country's network landscape can contain four generations of technology operating simultaneously, each with different latency, reliability, and data-cost characteristics, for years yet to come.
The Bill
Africa's average cost for 1GB of mobile data sits around 5.7–5.8% of average monthly income, against the United Nations Broadband Commission's “1 for 2” affordability target of 2% — nearly three times the benchmark. The distribution is wildly uneven: Egypt, Mauritius, and several North African markets sit comfortably inside the affordability target, while Zimbabwe is a global outlier, with 1GB reportedly costing around $43.75 in mid-2026 pricing data — roughly 22% of average monthly income, more than ten times the UN target. Even South Africa, often treated as the region's most developed digital market, ranked 67th out of 100 countries surveyed for data pricing in early 2026, more expensive than 27 other African nations.
What this means in practice is that data usage is not a neutral technical parameter for most African users — it is a recurring, meaningful financial decision, made under real budget pressure, every single time an app pulls data over the network. An engineering team that treats a 40MB app update or an uncompressed full-resolution image sync as a trivial background event is, functionally, asking users to make a choice between the app and something else they need to buy that week.
III. The Principle: Offline Is the Baseline, Not the Exception
Once the ground truth is in view, the correct engineering posture follows almost mechanically. The local device is not a cache that occasionally gets to be authoritative when the network fails — it is the primary data store, full stop. The network is a synchronisation channel that shows up intermittently to reconcile state, not a dependency the application waits on to function. Every read the user-facing interface performs should resolve against local data, instantly, whether or not a connection exists. Every write the user performs should succeed locally and immediately, with synchronisation to a server happening later, asynchronously, invisibly, whenever a connection becomes available.
This is sometimes called “local-first” software, and by 2026 it has matured from an academic research idea — most influentially articulated in Martin Kleppmann and colleagues' 2019 paper “Local-First Software: You Own Your Data, in Spite of the Cloud” — into a category with genuinely production-ready tooling. But the African context adds constraints that the general local-first literature, written largely for well-connected knowledge workers wanting faster collaborative editors, does not fully anticipate: extended offline windows measured in days rather than minutes, severe payload-size sensitivity because of data cost, low-RAM hardware that cannot absorb a heavyweight sync framework, and abrupt, uncontrolled power loss as a routine event rather than a disaster scenario.
IV. The Architecture, Layer by Layer
1. The Local Store as Source of Truth
On React Native, the dominant patterns in 2026 are SQLite directly, or WatermelonDB — a reactive layer built on top of SQLite that adds observable queries so the UI updates automatically when local data changes, without the developer manually wiring refresh logic. On Flutter, the equivalent role is filled by Hive, Isar, or drift, all of which are lightweight, schema-driven, and tuned to perform acceptably on the low-RAM Android Go-class devices that make up a large share of the African install base. On the web side of hybrid apps, Dexie.js and PGlite (a WASM build of Postgres that runs in-browser) fill a similar niche.
One caution belongs here, stated plainly because it is the kind of thing a team discovers the hard way: Realm, long a popular embedded mobile database (acquired by MongoDB in 2019, later rebranded Atlas Device SDKs), had its managed synchronisation service — Atlas Device Sync — formally deprecated by MongoDB, with mobile support fully discontinued as of 30 September 2025. The client-side database itself survives as an unmaintained open-source project, but any team building a new offline-first product in 2026 around Realm's sync layer is building on a foundation its own vendor has walked away from. MongoDB's own deprecation notice pointed developers toward alternatives including Ditto, ObjectBox, and PowerSync — a useful signpost, and a reminder that “the tool a tutorial from three years ago recommends” and “the tool that is safe to build on today” are not reliably the same thing. Verify before you build; vendors abandon mobile sync products more often than the marketing copy admits.
2. The Outbox: Capturing Intent Before Connectivity
Every write a user makes — a form submitted, a sale recorded, a status updated — should be captured as a discrete, timestamped mutation and appended to a local queue (commonly called an “outbox” or mutation queue), independent of whether a network exists at that moment. The UI reflects the change immediately (optimistic update), and a background process is responsible for draining the queue against the server whenever connectivity is confirmed.

This pattern — sometimes summarised as “the local store is not a cache, it is the primary store” — is the single most load-bearing idea in the whole discipline. It is also, by most accounts from teams that have shipped this in production, a simpler problem than it first appears for the majority of apps: most offline-first products do not need real-time collaborative editing, they need reliably queued writes that eventually reach the server. That distinction matters for the next decision.
3. The Sync Engine and Conflict Resolution
The sync engine is the layer responsible for pushing queued local mutations to the server and pulling remote changes back down, resolving conflicts where the same record was modified in two places before either side knew about the other. As of mid-2026, the tooling landscape has genuinely matured. A few names recur across independent engineering write-ups:
- PowerSync — watches a backend database's change stream (via Postgres logical replication, or MongoDB/MySQL change streams), filters it through developer-defined “sync rules,” and streams the relevant subset to each client's local SQLite store. Reads sync automatically; writes go through the developer's own backend API. It is widely described as the lowest-friction path for teams with an existing Postgres, MongoDB, or MySQL backend who want sync solved rather than built, at a managed-service price point.
- ElectricSQL — originally built around CRDT-based conflict resolution, it has since pivoted toward a simpler “sync engine” model focused specifically on Postgres, syncing filtered data down to a local store (often paired with TanStack DB for client-side persistence and optimistic mutations). Open-source under Apache 2.0.
- Ditto — a genuinely distinctive option worth naming specifically for African conditions: it supports direct device-to-device synchronisation over Bluetooth, Wi-Fi, or a local mesh, without requiring any path to the internet at all. For scenarios like a team of field agents in the same rural area who can reach each other but not a data centre, this “peer sync” capability is not a gimmick — it is a genuinely different resilience model than “wait for the internet to come back.”
- Jazz.tools — a CRDT-based local-first framework with first-class support for Expo, aimed at teams that want real-time collaboration with automatic conflict resolution out of the box.
- Automerge (now at version 3.0) and Yjs — mature, general-purpose CRDT libraries. The consistent advice from teams that have shipped with them: only reach for a CRDT library if the product genuinely has concurrent multi-user editing of the same record. Most apps don't. Bringing CRDT-level complexity into a product that only needs “my own queued writes eventually reach the server” is solving a harder problem than the one that exists, at real cost in binary size, RAM footprint, and debuggability — all of which are precisely the resources scarcest on the hardware this article is about.
For teams evaluating cross-platform mobile sync in 2026, one instructive account comes from engineers at software consultancy STRV, who compared PowerSync, ElectricSQL, Ditto, and LiveStore for a Kotlin Multiplatform project and chose PowerSync specifically because ElectricSQL, at the time of evaluation, still required the team to hand-build the write path — the upload queue, retry logic, and background sync — themselves, while Ditto's document-oriented model didn't fit a relational data problem, and LiveStore's tooling skewed too heavily toward the TypeScript/web ecosystem to integrate cleanly with native Android persistence layers like Room. The broader lesson generalises: the “best” sync engine is not a universal answer, it is a function of your backend, your data shape, your platform, and how much custom plumbing your team is willing to own.
Conflict resolution itself, at the strategy level, usually reduces to one of three approaches. Last-write-wins (LWW), where the most recent timestamp simply overwrites, is the simplest and is adequate for a large share of business data where conflicts are rare and low-stakes. Field-level or operational merging, where the sync engine or application logic merges non-conflicting fields from both versions (a name change and a phone number change on the same customer record, made offline by two different agents, can both survive). And CRDT-based convergence, which mathematically guarantees that any set of concurrent edits converges to the same final state on every device without a central arbiter — powerful, but genuine overkill for a form-submission app.
4. The Tombstone Problem
Here is a failure mode specific enough to be worth naming precisely, because it is the kind of bug that only shows up in the field, weeks after launch, and is genuinely hard to reproduce in a well-connected testing environment: when a record is deleted, the deletion itself must be synchronised, not just the absence of the record. This is typically done by writing a “tombstone” — a marker recording that the record existed and was deleted, along with a timestamp — rather than simply removing the row.
The trap is retention. If the backend runs a routine cleanup job that purges tombstone records after, say, seven days, and a field device has been offline for ten days — entirely plausible, given the connectivity realities described above — that device will miss the deletion entirely on its next sync, and will dutifully re-upload the “deleted” record as if it were new. The item resurrects. This is not a hypothetical: it is a documented, named pitfall in production offline-sync engineering write-ups, and the fix is straightforward once you know to look for it — the tombstone retention window must be set to be at least as long as the maximum offline duration the application is realistically expected to support, which for an app built for African field conditions may need to be measured in weeks, not days. Schema migrations carry a related discipline: mobile ORMs must execute version migrations sequentially and preserve any un-synced outbox mutations across the upgrade, and the server's sync API should be built to accept older client payload schemas via transformation middleware, because a phone that has been offline, or simply hasn't had an app-store update prompt reach it, may be running a build that is months old.
5. Background Sync Under Real Constraints
Modern mobile operating systems actively work against naive “just sync in the background” assumptions, for good reason — unmanaged background activity is the single biggest drain on battery life, and battery life is precisely the resource under greatest pressure in a region where mains power itself is unreliable. On Android, background work scheduled through WorkManager is subject to Doze mode and App Standby buckets, which can delay or batch execution significantly, especially for apps the OS has learned the user opens infrequently. On iOS, BGTaskScheduler offers execution windows the operating system grants at its own discretion, not the developer's. A serious offline-first architecture works with these constraints rather than fighting them: batching sync operations, using exponential backoff with randomised jitter on retries (so that when a downed cable is finally repaired and thousands of devices in the same region regain connectivity simultaneously, they don't all hammer the server in the same instant), and reserving foreground-service-level priority only for genuinely time-critical syncs rather than routine housekeeping.
A second, less discussed reliability trap is trusting the operating system's own connectivity flag. “Connected to Wi-Fi” is not the same as “has a path to the internet.” Captive portals on shared or public Wi-Fi, data bundles that silently exhaust mid-session, and carrier-level throttling all produce a device that reports itself online while every real request times out. Robust sync engines perform an actual lightweight network probe — a small request to a known endpoint — rather than trusting the OS-reported state, and treat “connected but unreachable” as its own distinct condition with its own retry behaviour.
6. Bandwidth as a Moral Constraint, Not Just a Technical One
Given that 1GB of data can represent close to a quarter of an average month's income in some African markets, and routinely exceeds the UN's 2%-of-income affordability benchmark almost everywhere on the continent, payload efficiency stops being a performance nicety and becomes something closer to an ethical obligation. Concretely, this means: syncing only the filtered subset of data actually relevant to a given user or role (the “sync rules” pattern PowerSync and similar engines use), rather than pulling an entire dataset to every device; sending field-level deltas rather than whole-record payloads on every update; preferring compact binary formats (Protocol Buffers, FlatBuffers) over verbose JSON where volume justifies the added complexity; compressing images before upload and choosing modern, efficient formats; and paginating historical data rather than forcing a new install to download a full multi-year history before it becomes usable — a nurse handed a replacement phone after her old one broke should not have to pay for and wait through a multi-hundred-megabyte initial sync before she can see today's patient list.
7. Surviving the Power Cut Mid-Write
Given how routinely power disappears without warning — even in South Africa's improved 2026 environment, tens of thousands of unplanned localised outages a year still occur, and across much of the rest of the continent grid access itself is far from universal — a local database that can be corrupted by an interrupted write is a liability, not a footnote. This is one of the strongest arguments for building on SQLite (directly, or through a layer like WatermelonDB, Isar, or drift) rather than a custom or less battle-tested storage format: SQLite's Write-Ahead Logging (WAL) mode is specifically designed so that a transaction that is interrupted mid-write — by a sudden loss of power, precisely the failure mode this entire article is about — leaves the database in a consistent, recoverable state rather than a corrupted one. This is a case where “boring, decades-proven technology” is a feature, not a compromise.
8. Designing the Interface for Trust
None of the backend discipline matters if the interface lies to the user about what state they're in. Good offline-first UX makes the sync state legible rather than hidden: a clear, honest indicator of whether a given piece of data has been saved locally only or confirmed on the server; queued actions that are visibly present rather than silently vanished; and, when a genuine conflict does occur and can't be silently auto-merged, a surface that shows the user both versions rather than picking one arbitrarily and discarding the other. Trust, in a system that is deliberately built to work while disconnected, has to be earned through honesty about what “saved” actually means at any given moment — not through pretending the network was never a variable at all.
V. Two Proofs From the Field
USSD and M-Pesa: The Original Offline-Tolerant Architecture
Long before “local-first” was a framework category, African mobile money systems solved a version of this problem with the tools available at the time. Unstructured Supplementary Service Data (USSD) — the same GSM-era protocol family as SMS — opens a short-lived, server-mediated menu session that works on any GSM handset, smartphone or not, requiring no data connection at all. M-Pesa, launched by Safaricom in Kenya and now central to financial inclusion across several African markets, built its core experience on exactly this rail: dial a short code, navigate a menu, complete a transaction, receive an SMS receipt as a durable, asynchronous confirmation that survives even if the session itself drops mid-transaction. That SMS receipt is, in effect, a primitive but genuinely effective version of the “confirm state through an independent, resilient channel” principle that modern sync engines formalise more elegantly. It is worth remembering that the most battle-tested offline-tolerant system on the continent predates the current tooling generation by two decades, and got the core insight — design for the disconnection, not around it — right from the start.
KoboToolbox and ODK Collect: Offline Data Collection at Humanitarian Scale
In the humanitarian and public-health sector, ODK (Open Data Kit) and KoboToolbox — the latter built on the former's engine — have become close to a de facto standard for field data collection across the continent, precisely because they were designed offline-first from the outset. Field enumerators using the ODK Collect or KoboCollect Android apps (the latter at version 2025.3.3 as of early 2026) build and complete complex, logic-branching digital forms entirely on-device, with no limit on how many submissions can accumulate locally before a connection becomes available, and only then upload the backlog to a central server. It is a clean, field-proven demonstration that the outbox pattern described above is not a theoretical nicety — it is the reason this category of software works at all in the conditions it was built for.
VI. Choosing a Stack in 2026: A Practical Decision Frame
There is no single correct answer, but by mid-2026 a reasonably clear decision tree has emerged from teams that have actually shipped this in production:
- Building on React Native, want maximum control, willing to build your own sync server: SQLite directly, or WatermelonDB for its reactive layer over SQLite.
- Building on Flutter: drift, Hive, or Isar for local persistence, each mature and tuned for low-RAM Android hardware.
- Already on Postgres, MongoDB, or MySQL, want managed sync rather than built sync: PowerSync is generally the lowest-friction path, at the cost of a recurring managed-service fee.
- Want an open-source path built specifically around Postgres: ElectricSQL, typically paired with TanStack DB, accepting that its React Native persistence layer is newer and less battle-tested than WatermelonDB's multi-year production history.
- Need true offline-to-offline sync between nearby devices with no path to the internet at all — arguably the single most Africa-relevant capability in this list: Ditto.
- Need genuine real-time collaborative editing of shared documents by multiple concurrent users: Jazz.tools, or evaluate Automerge/Yjs directly if you need fine-grained control — but confirm first that this is actually your problem, and not a more complex solution to a simpler one.
- Evaluating Realm or Atlas Device Sync from an older tutorial or Stack Overflow answer: don't. That service was discontinued for new development as of 30 September 2025. Follow MongoDB's own migration guidance toward Ditto, ObjectBox, or PowerSync instead.
Beneath any of these choices, the constant discipline is the same: local data is the primary store, every write is captured whether or not a network exists, sync is a background reconciliation process rather than a blocking dependency, tombstones outlive your longest realistic offline window, payloads are as small as the data will honestly allow, and the interface never pretends the network is more reliable than it actually is.
VII. Closing
There is an old discipline, in places where the rains do not always come on schedule and the river does not always rise when the calendar says it should, of building the granary a little larger than this year seems to need, of keeping the second well dug even when the first one is flowing well. It is not pessimism. It is a form of respect for conditions as they actually are, rather than as a brochure describes them.
Software is no different. An application that assumes the network will hold, the battery will charge, the cable under the ocean will stay intact, is an application built for a country that does not exist — not South Africa in its best year, not Kenya on its best network, not anywhere. The nurse outside Kabwe does not need an app that apologises when the signal drops. She needs one that was built, from its very first architectural decision, to already know the signal would drop, and to keep working anyway — quietly, faithfully, the way she does.
That is not a lesser standard of engineering. It is, if anything, the harder and more honest one.
Sources
- GSMA, Mobile Technologies Contributed $240 Billion to Africa's Economy in 2025, 16 June 2026
- GSMA Intelligence, The Mobile Economy Africa 2026
- TechAfrica News, 2025 vs 2026 Mobile Industry Checkpoint: Has Anything Actually Changed for Africa?, 5 March 2026
- TechAfrica News, Sunsetting Legacy Networks: Should Africa Switch Off 2G and 3G Now?, 19 March 2026
- Ecofin Agency, GSMA Launches $30–$40 4G Smartphone Pilots in Six African Markets
- African Business, A year after load-shedding, South Africa fights electricity theft, 31 May 2026
- Businessfront, Eskom finally defeated load shedding. But South Africa's power crisis is far from over, 7 June 2026
- Institute for Security Studies (African Futures), Access to electricity, updated 24 April 2026
- Internet Society, 2024 West Africa Submarine Cable Outage Report
- Carnegie Endowment for International Peace, Beneath the Waves: Addressing Vulnerabilities in Africa's Undersea Digital Infrastructure
- Data Center Dynamics, Outages spike in West Africa: Subsea cable damage off Ivory coast
- Cloudflare Radar Blog, East African internet connectivity again impacted by submarine cable cuts, May 2024
- Cellesim, Mobile Data Affordability by Country 2026, updated 16 June 2026
- StatRanker, Countries by Mobile Data Price 2026, June 2026
- AllAfrica, South Africa Pays More for Data Than 27 Other African Countries, 17 February 2026
- MarketDataForecast, Africa Smartphone Market Size, Share & Growth Report, 2034
- Accio, Best Selling Phones in Africa 2026
- Couchbase Blog, MongoDB Ends Mobile Support Today: Migrate to Couchbase, 30 September 2025
- Wikipedia, Realm (database)
- STRV (Medium), Choosing An Offline-First Sync Layer For KMP, June 2026
- DEV Community, WatermelonDB + Expo SDK 54: The Complete Mobile Offline-First Setup Guide, May 2026
- codingpancake, Building Offline-First Mobile Sync Engines: Architecture, Internals, and Best Practices
- fintechmarker, M-Pesa's real moat in Africa: USSD and agents still beat apps
- HelloDuty, USSD Applications: The Complete Guide for Africa (2026)
- SurveyLoopr, ODK vs KoboToolbox (2026): Which Should You Use?, July 2026
- mybroadband, Blow to South Africa's 2G and 3G shutdown, 13 February 2026
Figures cited reflect the most recent publicly available data at the time of writing (August 2026) and are attributed to their original sources throughout; several — particularly electricity access and mobile-technology-generation splits — are based on the latest available survey years (commonly 2022–2024) even where reported in more recent publications, and should be read as the best available approximation rather than real-time counts.