Raspberry Pi Foundation

A code editor for kids everywhere

Most code editors are built for people who already know how to code. This one had to work for someone who'd never written a line, and had to make them feel capable, not intimidated, from the very first keystroke.
My role
Product design & System thinking
company
Raspberry Pi Foundation
78,000+
Total users reached within first year of official release (2023).
398%
Increase in saved projects year-over-year, jumping from 20,264 (2023) to 100,902 (2024).
24,378
Young people used the editor to write code that ran on the International Space Station (2024).
440%
Growth in Saving Users, showing a massive jump in authenticated, recurring engagement.
Raspberry Pi Foundation

Context

Raspberry Pi had been relying on Trinket, an open-source code platform integrated across multiple products. It worked, but it was borrowed infrastructure with real limitations: no control over the experience, no ability to adapt it for our specific users, and no way to serve the breadth of contexts the Foundation needed. We decided to build our own. I was the designer at the conception.

Problem

The brief was technical. The real problem was human. A code editor for children learning to code for the first time needs to optimise for something most editors ignore: the feeling that you can do this. The moment a child hits an error and doesn't understand it is the moment they close the tab. The interface either prevents that moment or causes it. There's no neutral ground.

Goal

Build a code editor that feels simple and un-intimidating for the widest possible audience, from a seven-year-old in a classroom to a student writing code that would go to space on the Astro Pi Mission Zero programme. It had to adapt across contexts: embedded within the Projects site, standalone for Astro Pi, and responsive across every device a teacher might use in a classroom, and safe for school environments where safeguarding is a non-negotiable constraint.

Raspberry Pi Foundation

The decision that shaped everything: design for the moment before someone gives up

I started by mapping the user journey, not what users do, but what they feel. Specifically, what happens in the moment when code doesn't work and a young user doesn't understand why?

That question changed every subsequent decision. Error messages became as important as the interface itself. The difference between "SyntaxError: unexpected token" and "Something's off on line 4 — here's what might help" is the difference between a child who keeps going and one who closes the tab. I rewrote every system error message with the same care as the UI — which meant working directly with engineering on implementation, not just handing off a design file.

The constraint: one editor, multiple contexts

This product wouldn't live in one place. It had to work as an embedded code display within the Projects site, as a standalone editor for Astro Pi, and as a classroom tool displayed by teachers on devices ranging from tablets to projectors.

That meant building versatility into the system from the start, responsive layouts, flexible type sizing, and an accessibility-first approach to contrast and hierarchy so that a child reading the screen from the back of a room had the same experience as one sitting in front of it.

Six wireframe stages before a single design decision

The wireframing process was extensive because the constraints were genuinely competing: keep features minimal, keep hierarchy clear, keep the layout buildable quickly, and make sure it could scale as features were added later. After six stages of wireframing and stakeholder feedback, we landed on something that held all of those constraints without sacrificing any of them.

Style: harmony with the ecosystem, identity of its own

The visual design had to feel coherent within the Raspberry Pi product family while being distinct enough to function as its own tool. Dark mode wasn't an aesthetic option. It was a deliberate personalisation mechanism, when someone customises the environment they're working in, they feel ownership over it, and ownership increases the likelihood they come back.

Raspberry Pi Foundation

Strategic considerations

One filter for every decision

Is this safe for a school environment, and does it serve the learning without distracting from it?

Image uploads were removed entirely

An open upload function in a tool used by children creates safeguarding risks that no design solution fully resolves. Removing it was the right call, not a compromise.

Remix is the hardest debate

Letting students copy and build on each other's projects, as Scratch allows, had a real motivational case. The safeguarding implications and distraction risk outweighed it. It's still a decision I think about.

Text size settings is one feature, two problems

Accessibility for students with visual needs, and practicality for classrooms where a teacher might be projecting onto a screen twenty feet away.

Dark mode for personalisation, not aesthetics

Ownership over your environment increases the likelihood you come back. Scoped to one toggle — full colour customisation was considered and cut. Too many choices in a tool designed to reduce cognitive load works against itself.

Raspberry Pi Foundation

What I'd do differently

The remix decision is the one I'd revisit with more time and more research. We made the right call for the launch scope, but I don't think we fully stress-tested the motivational case. A controlled version, where students can view but not copy, or remix only within a teacher-managed classroom  might have threaded the needle between engagement and safeguarding. I'd want to design and test that properly.

Raspberry Pi FoundationRaspberry Pi Foundation

Next project

Suvera
Suvera