Client

Inspire STEM Hub

Industry

Edtech

Country

Tanzania

Role

Product designer (solo)

Platform

Responsive web, offline-first

Teaching code to kids who have never seen a computer lab

Designing a STEM learning platform for two very different audiences: an 8-year-old building their first LED circuit and a teenager writing Arduino code, inside a single coherent product.

The Challenge

In Tanzania, hands-on STEM education is expensive and unevenly distributed. Inspire STEM Hub's answer was an Arduino-powered kit paired with a digital platform that could guide students through real coding and electronics projects, with or without a teacher, and with or without a reliable connection.

The platform had to serve a Primary student aged 8 using block-based coding and a Secondary student aged 16 writing Arduino-style code, on the same platform, with the same design system, without either experience feeling like a compromise.

That gap between two users is not a detail. It is the central design problem.

Role and constraints

I led the product design end-to-end: information architecture, user flows, design system, and high-fidelity UI. I worked directly with the client lead, who owned the brief and provided the full curriculum scope, benchmark references, and an early concept site that captured the product vision. Throughout the build, I worked closely with the front and back end developers, checking technical feasibility continuously so that design decisions were grounded in what could actually be built.

Scope

End-to-end product design

Design System

Built from scratch

Design System

Built from scratch

Because the platform was designed before launch, there were no active users or analytics to draw from. Product decisions were informed by the client's curriculum materials, competitor benchmarking across comparable STEM learning platforms, and ongoing feasibility checks with the development team. The design process was fundamentally about making sound decisions under uncertainty, not synthesising large volumes of user research.

The two audiences

Primary

Ages 8 to 12

Block-based drag-and-drop coding

Projects like blinking LEDs and basic sounds. Needs immediate visual reward, short feedback loops, and zero assumption of prior knowledge.

Secondary

Ages 13 to 18

Text-based Arduino IDE-style coding

Projects like motion-activated lights and smart water monitors. Needs a code editor, circuit setup guides, and a challenge progression system.

Both audiences share the same navigation shell, design system, and gamification layer. Content, interaction model, and visual density are calibrated separately per level. A Primary project card uses large type, warm colours, and a single Start action. A Secondary card shows difficulty badges, point values, estimated time, and a circuit table. Same component, different configuration.

Four distinct user types designed for simultaneously: Primary student, Secondary student, Teacher, and self-guided learner without a class.

Key assumptions

Designing a greenfield product meant assumptions had to carry the weight that research would in a later-stage product:

  • Younger learners need visual programming, short steps, and immediate feedback from the kit.

  • Teachers need classroom-level visibility without monitoring students individually.

  • Internet connectivity cannot be assumed in many classroom environments.

  • Students must be able to progress even when a teacher is unavailable.

These assumptions became the design principles the product was built against.

Audience architecture

The first structural decision was how to handle two fundamentally different learner types within one product.

Rejected

Separate apps per level

Clean separation, but doubles maintenance cost, breaks shared progress tracking, and creates a disjointed experience for students moving between levels.

Rejected

Single UI, no calibration

Simpler to build, but forces an uncomfortable middle ground; too complex for an 8-year-old, too simplified for a 16-year-old.

Chosen

One system, calibrated per level

Shared design system, navigation shell, and gamification layer, with per-level content configuration. One codebase, two experiences.

Same layout, two different learners. Block-based drag-and-drop for Primary, Arduino IDE-style code editor for Secondary. Same navigation shell, entirely different interaction model.

Visual language

The design system was built from scratch using the client's existing brand colours as the foundation. Amber was introduced as a deliberate addition: neutral colours would not create the visual stimulation that younger learners need, and warm, high-energy colour helps sustain attention and signal reward at the Primary level. The Secondary experience uses the same system with a cooler tonal shift, reflecting the more focused, technical nature of that audience's work.

Every component, from project cards to progress rings, had to serve both a child and a teenager without requiring a separate version for each.

Three decisions that mattered

DECISION 1

Gamification as structure, not decoration

Points, levels, and progress rings were not added at the end. They were designed as the primary navigation metaphor from the start. A student's level and progress ring appear in the global header on every screen, so they always know where they are without navigating away.

TRADE-OFF

Progress systems can discourage students who fall behind. The ring shows what has been earned, not what is missing; open-ended rather than a countdown.

DECISION 1

Gamification as structure, not decoration

Points, levels, and progress rings were not added at the end. They were designed as the primary navigation metaphor from the start. A student's level and progress ring appear in the global header on every screen, so they always know where they are without navigating away.

TRADE-OFF

Progress systems can discourage students who fall behind. The ring shows what has been earned, not what is missing; open-ended rather than a countdown.

DECISION 2

Offline-first with optimistic local saves

Project state is saved locally first and synced when a connection is available. From the student's perspective the save is silent and instantaneous. Sync status is visible but passive, tucked into the header rather than blocking the workspace.

TRADE-OFF

Optimistic saves create edge cases where two devices hold conflicting versions of the same student's work. A last-write-wins strategy was chosen for simplicity, acceptable because students work on one device at a time in a classroom context.

The offline-first experience from the student's perspective. Regardless of connection state, work never stops. A passive sync indicator appears in the header when offline and clears silently once progress is confirmed — no interruption to the learning flow.

DECISION 3

AI hints bounded by kit content

The platform includes an AI-powered hint system for when students get stuck. Hints are limited strictly to the current project's kit content. A student asking how to connect a sensor gets a response grounded in the specific project manual, not a generic answer from the web. The client operates in the edtech space and the curriculum materials provided were professionally developed, so the learning design logic that shaped this decision came from that foundation. The goal was to help students understand concepts without bypassing the lesson.

TRADE-OFF

The AI is less capable than an unbounded assistant. Students who need help beyond the kit scope go to the teacher or the community forum. That friction is intentional; the platform is a structured learning environment, not a general-purpose coding tool.

The wireframe established the core layout: persistent left navigation, global header with progress tracking, content grid, and gamification panel. The final screen realised that structure with the full visual system applied.

Final Screens

How a student moves through the platform, from first login to completing a project. The flow covers authentication, content personalisation, and the full project experience including the AI hint system and progress tracking.

ONBOARDING AND AUTHENTICATION

Split-panel layout with editorial image left, clean sign-in form right. Google and email options.

Registration form with inline password validation and Google sign-up option.

Age and gender selection for content personalisation. Success modal on completion.

STUDENT EXPERIENCE

Project grid with an ongoing project card, amber gamification panel, and beginner badges.

Project grid with difficulty badges, points, amber gamification panel, and estimated time per project.

Tabbed step-by-step guide covering overview, materials, circuit, code, testing, and applications.

COMMUNITY AND CHALLENGES

Secondary-level project workspace with Arduino IDE code editor, circuit setup table, materials list, and a contextual AI hint panel on the right.

Community discussion with post creation modal, image attachment, and category tagging.

Individual post view with Arduino hardware photos, comments, and reply input.

TEACHER DASHBOARD

Class cards with student count, project count, class code, and "Go to Class" action.

Table view of students showing projects started, submitted, and last active time.

Per-student breakdown of project status, points, and submissions, with a teacher notes field for parent and admin visibility.

Outcome

The platform was designed to support pilot deployment across Tanzanian classrooms, with the client retaining full control of the rollout. Based on what the product was built to do:

  • The class-code onboarding system was designed to let teachers set up a full class and assign projects in a single session.

  • The offline-first architecture was built to ensure students would not lose project progress in low-connectivity environments.

  • The AI hint system was positioned to provide the most value at circuit setup and code steps, the two most technically demanding moments in each project.

What I learned

Designing for children is not about simplifying for adults. A 9-year-old needs faster feedback, higher visual reward, and a shorter path between action and result. That is a different set of priorities, not a stripped-back version of the Secondary experience.

The offline constraint was the most clarifying design pressure on this project. When you cannot assume a connection, decisions about local state, sync behaviour, and failure handling become explicit rather than assumed. That pressure produced better decisions than a connected-first approach would have.

Product and UX Design · Nairobi, Kenya · Remote

Product and UX Design · Nairobi, Kenya · Remote

Product and UX Design · Nairobi, Kenya · Remote