The idea.

Getting your driving licence in Belgium starts with a theory exam that trips a lot of people up: ten dense chapters, priority rules nobody remembers, and a pass mark that leaves almost no margin for error. Permis B Online turns that grind into a clear path — read, drill, simulate the exam, and know exactly when you're ready. The whole product is built around one promise: réussir du premier coup.

What it does.

Everything a candidate actually needs, in one place: the ten chapters of the Belgian program, illustrated with real road signs; a mock exam that mirrors the official test to the letter — 50 questions, 30 minutes, 41/50 to pass, −5 per serious fault, and even a read-aloud mode; per-chapter quizzes to drill weak spots; and Leitner spaced-repetition flashcards that keep resurfacing whatever you get wrong until it sticks. A dashboard tells you what to revise next and tracks every mock-exam score. In total, 420 questions and 230 flashcards across the full program.

Building it.

I built it end-to-end with a friend, @Warry: Python and FastAPI on the backend, React and Vite on the front, Stripe for payments, Docker on a self-hosted server. It's the kind of project where you wear every hat — product, design, backend, frontend, content, DevOps — which is exactly why it's the most fun way I know to learn.

Under the hood.

The part I'm proudest of is the content pipeline. Rather than hand-writing thousands of questions, the course material is generated against legal and pedagogical sources, scored on a pedagogical rubric, and revised in a loop until it clears a quality bar — then imported straight into the live database. Around it sits the SaaS machinery I wanted to push myself on: JWT auth plus Google sign-in, Stripe payments with signed webhooks and idempotent fulfilment, the faithful exam engine, the Leitner scheduler, an admin back-office, prerendered pages for SEO, transactional email, and a self-hosted CI/CD pipeline that rebuilds and redeploys on every push to main.

Live.

Permis B Online shipped on 13 July 2026 and is running in production at permis-b-online.be — real accounts, real payments, real candidates. Go take a look.