Students lost progress every time the network dropped, and video lessons ate their data.
Demo case study. The story, team and numbers are placeholders that show how a real case study will read.
(Case study 03) Learning platform
A mobile learning app for secondary school students in Rwanda and Nigeria, many of them on prepaid data and patchy networks. I designed the app around offline-first lessons that cost almost nothing to download.
3 min read · 2024 to 2025
The 30-second version
For busy readersDesigned offline-first lessons as small text and audio packs, with progress that saves on the phone.
Course completion rose from 21% to 54%, and a lesson now costs under 1 MB.
- 54%course completion
- 8kstudents
- 4.7/5Play Store rating
Sample numbers
Every dropped connection reset the lesson
The first version streamed video. On a good connection it worked. On a bus, or at the end of the month when data ran low, it froze, and students started again from the beginning.
Most students we met had already deleted the app once to free up space.
I designed it, built it and shipped it.
- 01 · design
Ran classroom sessions with 40 students and designed the lesson format and app.
- 02 · build
Built the lesson player prototype in Flutter to test offline behaviour on cheap phones.
- 03 · ship
Ran the pilot in four schools and tracked completion week by week.
Team: 1 founder, 2 engineers, 3 teachers
Students were studying in short bursts, often offline
We asked students to log when and where they studied for a week. Almost none of it happened at a desk with wifi.
- Insight 01
Five minutes at a time
Most study sessions were under seven minutes long, often on a commute.
- Insight 02
Data is money
Students checked the size of a download before tapping it. Every megabyte was a decision.
- Insight 03
Shared phones
One phone was often shared by siblings, so progress needed to belong to a profile.
The calls that shaped the product
Why lessons are text and audio
Video was the original plan, and the most expensive thing we could ask students to download.
Under 1 MB a lesson, fully offline, and easy for teachers to update.
Why progress saves after every card
Long lessons meant one dropped connection could wipe ten minutes of work.
Lessons became stacks of short cards, so you can stop at any moment and lose nothing.
Tested on the phones students actually own
I built the lesson player as a Flutter prototype and tested it on a £40 Android phone in airplane mode. Anything that stuttered there did not ship.
Drag the slider to compare the design with the app.
- Works fully offline
- Lessons under 1 MB
- Readable on 5-inch screens
From first beta to live
→ git log --releases
- PilotJan 2025Four schools, 300 students
- v1.0Mar 2025Play Store launch
- v1.1Apr 2025Shared phone profiles
✓ On the Play Store, with 8,000 students.
More students reached the end
- 54%course completion
- 8kstudents
- 4.7/5Play Store rating
Sample numbers
Teachers started assigning lessons as homework, which we had never asked them to do.
What I would do next
Designing for the cheapest phone first made the app better for everyone, including students with good connections.
Where it's at: On the Play Store, with 8,000 students.
Next case study