---
title: "Launching Roadquiz: Driving Theory Practice for Italy and Sweden"
url: "https://ricardodantas.me/posts/launching-roadquiz/"
markdown_url: "https://ricardodantas.me/posts/launching-roadquiz/index.md"
author: "Ricardo Dantas"
date: 2026-11-12
lastmod: 2026-11-12
categories: ["Dev"]
tags: ["roadquiz","expo","react-native","nestjs","fsrs"]
summary: "Roadquiz is a driving theory exam app for Italy and Sweden on iPhone and Android, with mock exams that follow each exam's rules, spaced-repetition review and an estimate of your chance of passing today."
---

# Launching Roadquiz: Driving Theory Practice for Italy and Sweden

I lived in Sweden before moving to Italy this year. Both countries make you pass a theory exam before you get a driving licence, and the two exams have little in common.

In Italy you get 30 true or false questions and 20 minutes, and you fail with a fourth mistake. A question you leave blank counts as a mistake. In Sweden you answer 65 scored multiple choice questions in 50 minutes and need 52 right.

When I looked at the apps people use to study, most fell into one of two groups. Some had all the questions and nothing to tell you what to practise next. Others looked modern and treated every country's exam the same way. I wanted an app that runs each exam by its own rules and tells you whether you'd pass if you sat it today.

So I built Roadquiz.

## What Roadquiz is

[Roadquiz](https://roadquiz.app) is a driving theory app for iPhone and Android, for the car licence (B) in Italy and Sweden. The app itself is in English, Italian and Swedish. You practise chapter by chapter and take mock exams, and the app remembers every question you get wrong.

![Three Roadquiz screens: a Swedish mock exam question in English with the timer running, the Progress screen showing an 84% chance of passing today with mastery per chapter, and a passed Italian mock exam with its mistakes listed by chapter](https://ricardodantas.me/images/posts/launching-roadquiz/exam-readiness-results.webp)

- **Mock exams with each exam's rules.** The Italian mock exam has 30 questions, a 20 minute timer and the same mistake limit. With Italy unlocked, it draws a fixed number of questions from each of the 25 chapters, as the real exam does. The Swedish one has 65 scored questions, 50 minutes, and you need 52 right to pass.
- **Your chance of passing today.** The Progress screen turns your recent answers in each chapter and your last five mock exams into a percentage. It never goes above 99.
- **Explanations.** After each answer in practice, you can read why the right answer is right.
- **Review.** Questions you miss come back on the day they're due, most overdue first, with an optional daily reminder.

## Two countries, two question banks

The Italian exam is drawn from a question list that the ministry of transport publishes, and Roadquiz's Italian questions come from that list.

Sweden is different. Trafikverket keeps its question bank secret and says that practice questions you find online aren't the test's questions. So I wrote Roadquiz's Swedish questions from Swedish traffic law and the syllabus, more than 600 of them, with every area of the syllabus covered. You can study them in Swedish or in English. The English is a translation, which helps if you moved to Sweden and are still getting used to reading Swedish under a timer.

![Two Roadquiz screens: an answer marked wrong with its explanation below, and the Review tab with five Italian questions due today and a 72% chance of passing](https://ricardodantas.me/images/posts/launching-roadquiz/explanation-review.webp)

## How it's built

For the developers reading this:

- **App:** one Expo (React Native) codebase for iOS and Android. The answer cells, the readiness ring and the colours are shared, while bars, sheets and buttons use each platform's own components: Liquid Glass on iOS and Material 3 on Android.
- **Exam logic:** a plain TypeScript package with no React, Expo or database imports. The exam formats, the draw and pass rules, the review scheduling and the readiness score all live there, with unit tests.
- **Review scheduling:** FSRS, the open-source spaced repetition algorithm that Anki also uses. Roadquiz schedules in whole days, so a question you miss today comes back on a later day, never later the same day.
- **Backend:** NestJS with Postgres on Supabase. The full question packs are downloaded from a CDN on Bunny.net, and only the free sample ships inside the app.
- **Website:** Astro, in English, Italian and Swedish.

The app and the website both read the exam rules from that package, so the numbers on roadquiz.app and the ones in the app come from the same code.

## What's missing

The Italian questions and their explanations are only in Italian. Switching the app to English changes the menus and buttons, and the questions stay as they are on the exam.

For now it's just Italy and Sweden. Spain and the UK are next on the list, once these two show me the app is useful to people.

## Pricing

Last week I explained why Loam is a subscription. Roadquiz is a one-time purchase for each country, so nothing renews, and there are no ads.

Before you pay anything, the app gives you 50 questions and one mock exam per country, from the first launch, with no account and no connection needed.

## Try it

Roadquiz is out now on the App Store and Google Play. If you have a theory exam coming up in Italy or Sweden, or know someone who does, try the free questions and tell me how it went.

[App Store](https://apps.apple.com/app/id6811226591) | [Google Play](https://play.google.com/store/apps/details?id=app.roadquiz&referrer=utm_source%3Dricardodantas.me%26utm_medium%3Dblog%26utm_campaign%3Dlaunch-post) | [Website](https://roadquiz.app)
