One Platform. Unlimited Learning.

SelfLab: a self-paced platform built by students, for students

SelfLab, a platform for learning to code step by step, with in-browser code execution. Built with React/Node/PostgreSQL, featuring authentication and automated evaluation. Key challenge: securing code execution, solved with a sandboxed environment.

Holberton
August 21, 2026
2 min Read

Introduction

Every cohort produces a handful of final projects that go beyond the assignment brief. SelfLab is one of them: an educational platform built to let students follow learning paths, take on programming challenges, and write and run code directly in the browser, while giving teachers a space to create content and an automated system to evaluate what gets submitted.

Here's a closer look at what the project involved, how it was built, and the problems the team had to solve along the way.

What is SelfLab?

SelfLab is a practical platform for learning programming step by step, built around each learner's interests and goals. Students move through structured learning paths and challenges, writing and testing code without leaving the browser. On the other side, teachers have their own space to create and manage educational content, with submitted code evaluated automatically.

The tech stack

The project was built as a full production-style stack, split across three layers.

Frontend: React, TypeScript, Vite, Tailwind CSS, and React Router.

Backend: Node.js, Express, TypeScript, Prisma, and PostgreSQL.

Infrastructure & CI/CD: Docker, Caddy, and GitHub Actions.

On top of that, the team implemented JWT authentication, role-based access control, in-browser code execution, and analytics.

Challenges and solutions

Two problems stood out during development.

The first was a design challenge: building a good experience for two different audiences at once, the students working through the platform, and the teachers creating the curriculum behind it.

The second was more technical: executing and evaluating students' code without putting the backend at risk. The team addressed this with a sandboxed execution environment paired with an asynchronous queue system for code checking, keeping code evaluation isolated and safe.

Congratulations to Mohammed Ali S. Aloufi, Yazeed AlJohani, Mohammed Saeed, and Badr Alshaya, the team behind SelfLab, built as part of the Holberton Foundation Bootcamp, Foundation Track, delivered by Tuwaiq Academy.