Web Performance: The African Case

Rate this content
Bookmark

We often assume that everyone has a good internet connection and hardware with high specifications. While this might be true in some regions, it is not the case worldwide. I want to draw attention to Africa, where many countries struggle with poor 3G connections that are costly, depending on the amount of data consumed. This is due to the continent's limited infrastructure, leading to a reliance on mobile connections. 


Given these circumstances, efficient data usage with a good web performance becomes a priority. So our session will focus on the challenges faced by African users and developers, and how downloading large amounts of JavaScript is exacerbating data consumption and performance issues. We will explore how existing frameworks tried to solve the problem and how Qwik did with its innovative approach to resumability, presents a transformative solution to these challenges. Unlike traditional SPAs, Qwik's resumability drastically reduces the initial JavaScript payload, enabling applications to become interactive more quickly, even on slow connections.

Ayoub Alouane
Ayoub Alouane
22 min
17 Jun, 2024

Comments

Sign in or register to post your comment.

Video Summary and Transcription

Today's Talk discussed web performance and internet penetration in Africa, highlighting the challenges of limited data plans and less powerful devices. The importance of considering internet accessibility when developing websites was emphasized, as slow-loading websites can result in negative reviews and lost customers. The concept of resumability, which delivers only necessary JavaScript for improved performance, was explored, along with the implementation of the QUIC framework to achieve this. QUIC framework was also discussed in terms of lazy execution and its ability to improve website performance and resource consumption.

Available in Español: Rendimiento web: El caso africano

1. Web Performance and Internet Penetration in Africa

Short description:

Today we will talk about web performance and the African case. Internet penetration in Africa is low, especially in the middle and eastern regions. The majority of Africans rely on mobile devices for internet access, and they have to pay for each megabyte consumed. Let's consider the price for 15 gigabytes per month, which can be easily consumed in a few days. The web traffic in Africa is shared primarily by mobile devices.

Hello. So, like you see today, we will talk about web performance and the African case. My name is Eyo Belwen, I'm the CTO of the Academy at Servio. And today we will talk about inclusive technology.

So, before starting our talk, it will be great to have some context in Africa and how the internet penetration is there. So, we'll start with a graph here that shows us the internet penetration by region. We can see in the middle the world average. The world average is between 60% and 70%. And we can see that South Africa and Northern Africa are doing good. When we are talking about Northern Africa, it's generally Morocco, Algeria, Tunisia. In Southern Africa, it's South Africa. But we can see in the middle, Africa and the Eastern one, it's not doing that good. So, we can see that there is no internet penetration there. Okay.

And not only that, we can see here with this graph that the web traffic there is shared by, we can see in this graph, the web traffic shared by device type in Africa. So, here what we can see is that the majority of Africans there are relying on mobile devices. 75% are using mobile devices to access internet. So, why I'm talking about that? What we can see here is there is no fiber optic, for example. So, everyone will use his mobile phone to access internet. And the problem here is that he should pay for each megabyte he will consume. It's not like using ADCEL and limited internet with ADCEL or fiber optic. It's only mobile devices that you should pay for each megabyte you will consume. Okay.

And we can see here, for example, the price for 15 gigabyte per month. So, we'll imagine that everyone will use only 15 gigabyte per month. And when we are talking about 15 gigabytes, I think, for example, one hour video of YouTube, it will take between 500 megabytes and 500 megabytes or one gigabyte. Okay. So, imagine if someone is using 15 gigabytes, it will not take him long. It will consume it maybe in three or five days. And we can see here with this graph the minimum wage also.

2. Internet Accessibility Challenges in Africa

Short description:

In many African countries, the price of 15 gigabytes of internet per month is equivalent to or even greater than the minimum wage. This makes it difficult for people to afford internet access. While in Europe and the United States, unlimited internet access is common, in other parts of the world, people have to pay for every megabyte of data. Therefore, when developing websites, we should consider the limitations faced by users in these regions, such as limited data plans and less powerful devices.

For example, we can take Burkina Faso. The price for 15 gigabyte per month, it's nearly the price of the minimum wage there. So, he should pay all his salary to consume only 15 gigabyte per month. You can see with me, for example, the Cap Verde. The minimum wage is three times the price of 15 gigabyte of internet. Togo, it's the same thing. And we can go further. For example, if we see countries like Zimbabwe or Malawi, we can see that the price, for example, in Equatorial Guinea, the price for 15 gigabyte of internet per month is three times the minimum wage. So, to pay 15 gigabyte per month, he should pay three month of salary. That's not good.

So, why I'm talking about that? I'm talking about that because in web performance, sometimes we in Europe or in the United States, we don't care about the internet that we use because it's unlimited. Okay. So, we don't care when we are doing our sites about the JavaScript that we should deliver to the client side about optimization because we don't need that. We have 5G or we have fiber optics. So, we don't need to do that. But in other parts of the world, there is some people that care about every megabyte of internet because they are paying their money for that. And when we are saying paying their money, it's not a small thing, but it's their salary. So, for example, here, someone in Zimbabwe will not consume 15 gigabyte per month. They will only consume maybe 500 megabyte or nothing. So, the way I'm talking about that is that when we are trying to work on our websites, we should think about other people, not only Europe or United States, but there is some other parts in the world that we should care about them when we are working on our websites.

Here, for example, we can see statistics about the phones used in Africa. So, you can see that Apple, for example, is not that used there. So, for example, in Zimbabwe, Nigeria, it's not even 5% or 3%. Okay. And the more usable phones are the affordable phones like Tecno, E-Tel, Xiaomi, Huawei, and affordable Samsungs. That's the majority that people are using there. So, why I'm saying that is because when you're using an iPhone or a Samsung Ultra or something like that, you don't care about the resources because these phones have a good hardware configuration. Okay. So, when you're using Google Chrome, you're using some applications. You don't care about the performance of the phone because you have good hardware.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

A Guide to React Rendering Behavior
React Advanced Conference 2022React Advanced Conference 2022
25 min
A Guide to React Rendering Behavior
Top Content
React is a library for "rendering" UI from components, but many users find themselves confused about how React rendering actually works. What do terms like "rendering", "reconciliation", "Fibers", and "committing" actually mean? When do renders happen? How does Context affect rendering, and how do libraries like Redux cause updates? In this talk, we'll clear up the confusion and provide a solid foundation for understanding when, why, and how React renders. We'll look at: - What "rendering" actually is - How React queues renders and the standard rendering behavior - How keys and component types are used in rendering - Techniques for optimizing render performance - How context usage affects rendering behavior| - How external libraries tie into React rendering
Building Better Websites with Remix
React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Building Better Websites with Remix
Top Content
Remix is a new web framework from the creators of React Router that helps you build better, faster websites through a solid understanding of web fundamentals. Remix takes care of the heavy lifting like server rendering, code splitting, prefetching, and navigation and leaves you with the fun part: building something awesome!
Speeding Up Your React App With Less JavaScript
React Summit 2023React Summit 2023
32 min
Speeding Up Your React App With Less JavaScript
Top Content
Too much JavaScript is getting you down? New frameworks promising no JavaScript look interesting, but you have an existing React application to maintain. What if Qwik React is your answer for faster applications startup and better user experience? Qwik React allows you to easily turn your React application into a collection of islands, which can be SSRed and delayed hydrated, and in some instances, hydration skipped altogether. And all of this in an incremental way without a rewrite.
Full Stack Documentation
JSNation 2022JSNation 2022
28 min
Full Stack Documentation
Top Content
Interactive web-based tutorials have become a staple of front end frameworks, and it's easy to see why — developers love being able to try out new tools without the hassle of installing packages or cloning repos.But in the age of full stack meta-frameworks like Next, Remix and SvelteKit, these tutorials only go so far. In this talk, we'll look at how we on the Svelte team are using cutting edge web technology to rethink how we teach each other the tools of our trade.
React Concurrency, Explained
React Summit 2023React Summit 2023
23 min
React Concurrency, Explained
Top Content
React 18! Concurrent features! You might’ve already tried the new APIs like useTransition, or you might’ve just heard of them. But do you know how React 18 achieves the performance wins it brings with itself? In this talk, let’s peek under the hood of React 18’s performance features: - How React 18 lowers the time your page stays frozen (aka TBT) - What exactly happens in the main thread when you run useTransition() - What’s the catch with the improvements (there’s no free cake!), and why Vue.js and Preact straight refused to ship anything similar
SolidJS: Why All the Suspense?
JSNation 2023JSNation 2023
28 min
SolidJS: Why All the Suspense?
Top Content
Solid caught the eye of the frontend community by re-popularizing reactive programming with its compelling use of Signals to render without re-renders. We've seen them adopted in the past year in everything from Preact to Angular. Signals offer a powerful set of primitives that ensure that your UI is in sync with your state independent of components. A universal language for the frontend user interface.
But what about Async? How do we manage to orchestrate data loading and mutation, server rendering, and streaming? Ryan Carniato, creator of SolidJS, takes a look at a different primitive. One that is often misunderstood but is as powerful in its use. Join him as he shows what all the Suspense is about.

Workshops on related topic

React Performance Debugging Masterclass
React Summit 2023React Summit 2023
170 min
React Performance Debugging Masterclass
Top Content
Featured WorkshopFree
Ivan Akulov
Ivan Akulov
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
Building WebApps That Light Up the Internet with QwikCity
JSNation 2023JSNation 2023
170 min
Building WebApps That Light Up the Internet with QwikCity
Featured WorkshopFree
Miško Hevery
Miško Hevery
Building instant-on web applications at scale have been elusive. Real-world sites need tracking, analytics, and complex user interfaces and interactions. We always start with the best intentions but end up with a less-than-ideal site.
QwikCity is a new meta-framework that allows you to build large-scale applications with constant startup-up performance. We will look at how to build a QwikCity application and what makes it unique. The workshop will show you how to set up a QwikCitp project. How routing works with layout. The demo application will fetch data and present it to the user in an editable form. And finally, how one can use authentication. All of the basic parts for any large-scale applications.
Along the way, we will also look at what makes Qwik unique, and how resumability enables constant startup performance no matter the application complexity.
Back to the Roots With Remix
React Summit 2023React Summit 2023
106 min
Back to the Roots With Remix
Featured Workshop
Alex Korzhikov
Pavlik Kiselev
2 authors
The modern web would be different without rich client-side applications supported by powerful frameworks: React, Angular, Vue, Lit, and many others. These frameworks rely on client-side JavaScript, which is their core. However, there are other approaches to rendering. One of them (quite old, by the way) is server-side rendering entirely without JavaScript. Let's find out if this is a good idea and how Remix can help us with it?
Prerequisites- Good understanding of JavaScript or TypeScript- It would help to have experience with React, Redux, Node.js and writing FrontEnd and BackEnd applications- Preinstall Node.js, npm- We prefer to use VSCode, but also cloud IDEs such as codesandbox (other IDEs are also ok)
Next.js 13: Data Fetching Strategies
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Data Fetching Strategies
Top Content
WorkshopFree
Alice De Mauro
Alice De Mauro
- Introduction- Prerequisites for the workshop- Fetching strategies: fundamentals- Fetching strategies – hands-on: fetch API, cache (static VS dynamic), revalidate, suspense (parallel data fetching)- Test your build and serve it on Vercel- Future: Server components VS Client components- Workshop easter egg (unrelated to the topic, calling out accessibility)- Wrapping up
React Performance Debugging
React Advanced Conference 2023React Advanced Conference 2023
148 min
React Performance Debugging
Workshop
Ivan Akulov
Ivan Akulov
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
Master JavaScript Patterns
JSNation 2024JSNation 2024
145 min
Master JavaScript Patterns
Workshop
Adrian Hajdin
Adrian Hajdin
During this workshop, participants will review the essential JavaScript patterns that every developer should know. Through hands-on exercises, real-world examples, and interactive discussions, attendees will deepen their understanding of best practices for organizing code, solving common challenges, and designing scalable architectures. By the end of the workshop, participants will gain newfound confidence in their ability to write high-quality JavaScript code that stands the test of time.
Points Covered:
1. Introduction to JavaScript Patterns2. Foundational Patterns3. Object Creation Patterns4. Behavioral Patterns5. Architectural Patterns6. Hands-On Exercises and Case Studies
How It Will Help Developers:
- Gain a deep understanding of JavaScript patterns and their applications in real-world scenarios- Learn best practices for organizing code, solving common challenges, and designing scalable architectures- Enhance problem-solving skills and code readability- Improve collaboration and communication within development teams- Accelerate career growth and opportunities for advancement in the software industry