The Silicon Valley Stack Doesn’t Work Here: Why Africa Will Lead the Post-Bloat Web

57 points by yawaramin


objectif_lune

This one is actually pretty near and dear to me in terms of topics. I worked across Africa, the Pacific and some sporadic other parts of the world (like Syria during the conflict) around building ways for reporting and alerting on notifiable diseases and everything from sentinel clinic reporting up to full-scale national roll-outs of tooling and training to help track disease and prevent outbreaks.

The whole system consisted of Mobile Apps, a web application, and the last iteration of it had a desktop application, and a remote relay server that could be run off something as small as a raspberry pi. On top of that we were playing with LoRa and Mesh style networking to connect disparate locations. This was around 7 years ago now.

The article doesn't quite elide the important bits of this that people are missing.

  1. Mobile data plans are exorbitantly expensive in a lot of places, and in my case, NGOs would have to foot the bill. You have to get your file sizes down as much as possible because downloading a new version of an app could exhaust the users data plan pretty easily.
  2. Because of lack of connectivity, once your app is out there and being used, you have less opportunities to update it if there's a problem. If your app goes out there with a significant bug on a series of devices, it can take weeks or even months before you have the opportunity to update those device installations.
  3. High-end smartphones are few and far between, and especially in humanitarian aid situations, the cheapest android phones with very little resources are generally the ones that you end up with, and running a complex PWA or react native application on them can be painful because of resource constraints.
  4. There are still a lot of older hand-sets running around out there, and they can be extremely outdated, so you have to support a long tail of older device versions and fall back to more stabilized and older technology at times.
  5. Progressive syncing and CRDT style applications with offline first operation aren't just a must, they can sometimes be the only thing you can do. A device (laptop or phone) can be incommunicado for extended periods and if you're in a situation where you need that data, having networks of devices which can carry each others payloads as they roam around through a CRDT mechanism works fairly well.
  6. A lot of networks are immature or extremely locked down, or monitored heavily which limits the solutions you can use to overcome some of these things.
  7. Aggressive and poorly configured network switching is a thing and the number of times I had to debug an issue with a remote device where the issue was that whatever network that they were on, the network switching for the device would cause drops in responses because the latency on the response was too high causing the network to drop the connection to the device.
  8. Devices can come out the box with a lot of malware. We used to get shipments of phones that we'd have to send back because they were loaded with always-on connecting background apps that reported everything about the user to the telecom or whoever provisioned the phones. In one case this included keystrokes and credit and social information.

I don't think that HTMX / SSE is likely the solution (though I love HTMX for my own stuff and I haven't had an npm_modules folder in my projects for years). But the way that things are going right now is absolutely very detrimental to LMICs and other places where connectivity is expensive or hard to come by. Things like Windows now almost requiring an always-on connection and being heavily integrated into things like OneDrive, O365 make it prohibitively hard for people to do their work in remote environments irregardless of socioeconomic status.

I lived using a 3G internet connection in a remote farm for years, and struggled with things like downloading sizeable docker images timing out over the network, complete drops in connectivity. What I experienced is nowhere near as frustrating as what people in remoter environments experience on these kinds of connections.

For a lot of people, local-first, offline-first, installable media is the best, most affordable and sensible option. The thing that's missing for a lot of people is a shift in focus from creating super fancy applications and tools which rely on high amounts of connectivity to function, to software engineering with stronger guarantees about stability and the ability to use said applications without any ounce of a connection while still being able to connect and share when it matters. Western software engineers have benefited from the ability to quickly and rapidly update their applications on peoples desktops, phones and other devices with very little effort in recent years because the vast majority of their users are in western or highly connected countries. But the move towards always-on, constantly syncing, cloud-based solutions in those regions and countries leaves other places in the dust a bit. As frustrating as a broken app is in the modern world, an update usually comes in a reasonable amount of time, in the deep of Africa or on a remote island in the Pacific, that missing update may mean the difference of weeks of lost productivity and access.

Things like meshtastic get me really excited about possibilities, back then we were playing with things like WiFi guns, LoRa and more to see if we could overcome some of the hurdles the people we were supporting were hitting. Issuing a bunch of phones that can't connect, laptops that require an internet connection to use excel, ends up with people going back to paper. We'd have to fall back to sending chunks of reports in SMS messages to a central SMS gateway (incurring high costs) in order to get data out of some places. And in some instances, someone had to drive around with a USB key to different places to get data from users to a central office.

I'm not saying it's this bad now, but the rate of progress is slower in these places than it is in Western countries, and I can't imagine it has got that much better to be honest.

This is just the top of the pile, I could go on and on and on.