Inspiration: For over a decade, I taught in African classrooms — rooms with 60 students, one teacher, and a curriculum that assumed every child learned the same way. When I built EduPrompt to help teachers plan better lessons, I closed one gap but found another. A teacher in an IDP camp in Abuja, Nigeria, said it best: "I can plan a beautiful lesson now. But I still do not know which of my 60 students understood it." That was the moment NiiDo became inevitable.

What it does: Four honest lessons: how hard adaptive learning actually is, the frontier challenge of African languages in AI, how infrastructure decisions are pedagogy decisions, and how teachers became the deployment channel.

How we built it: I built NiiDo solo in 1–2 months. The entire codebase is TypeScript (98.3%), with a clean frontend/backend separation.

Google Gemini is the sole AI engine powering NiiDo — every adaptive interaction flows through a single gemini.ts service. This includes the 20-question LearnerDNA assessment in NiiDo Read, personalized lesson generation in NiiDo Teach, school analytics in NiiDo Pulse, and real-time FLN question answering across WhatsApp and USSD in African languages. I used the Gemini CLI extensively to troubleshoot prompt responses and iterate on curriculum alignment before pushing to production. The Gemini API key is the only AI credential in the entire backend.

Google Cloud Run (africa-south1) hosts the Express backend — serverless, auto-scaling, and physically hosted in Africa to minimize latency for Nigerian and Kenyan users.

Firebase (Firestore + Auth + Storage) handles real-time data sync, student authentication, and LearnerDNA profile storage across low-bandwidth connections.

The Next.js 14 frontend deploys to Vercel and is PWA-enabled, natively supporting English, Hausa, Yoruba, Igbo, and other languages. NiiDo is also available as an Android app.

Challenges we ran into: Every challenge hit at once — designing an assessment that felt like a diagnostic tool rather than a test; engineering Gemini prompts that produced reliable educational output in African languages where training data is thin; syncing Gemini responses to live Firestore updates in real time; and making WhatsApp and USSD channels work within strict character and session limits. As the sole contributor, I was simultaneously the product manager, prompt engineer, frontend developer, backend engineer, and field researcher — sometimes debugging Firebase rules at midnight before a 7 am teacher training workshop.

Accomplishments that we're proud of

What we learned: Adaptive learning is harder than it looks. Getting Gemini to produce educationally sound, culturally grounded content in Hausa, Yoruba, and Igbo required deep, iterative prompt engineering — not just a language switch. I also learned that in low-resource contexts, infrastructure decisions are pedagogy decisions. Hosting on Cloud Run in africa-south1, choosing Firebase for offline-resilient sync, routing everything through a single gemini.ts service — every architectural decision had a child at the end of it.

What's next for NiiDo: NiiDo is live at niido.learnscape.africa and available on Android. The Q3 2026 pilot will deploy WhatsApp and USSD channels with teachers and learners in IDP settlements and rural schools across Nigeria — putting Gemini-powered adaptive learning in the hands of children who have never touched a smartphone, on basic feature phones, with no internet required.

Built With

  • adaptive-learning
  • africa
  • ai-for-good
  • auth
  • cloud-run
  • edtech
  • education-equity
  • firebase
  • foundational-literacy
  • gemini-api
  • google-cloud
  • hausa
  • idp-education
  • igbo
  • learner-dna
  • learnscape
  • multilingual-ai
  • nextjs
  • nigeria
  • offline-first
  • typescript
  • ussd
  • vertex-ai
  • whatsapp-api
  • yoruba
Share this project:

Updates