vuejs.school teaches Vue.js, the JavaScript framework for building user interfaces. Everything here is built around one idea: you learn Vue by writing small pieces of Vue, checking that you understood them, and coming back to them at the right moment.
Lessons and their quizzes handle the first two. Reviews handle the third: they bring each question back on a schedule, so you see it again before you forget it.
What a lesson looks like
A lesson is a short tutorial on one topic. It opens with a plain explanation, shows a runnable example, and ends with a quiz. Short means you can finish one in a sitting. One topic means a lesson about computed() does not also try to teach you watchers.
The example is real code, not a screenshot. You can read it, run it and change it. Changing it is the point. If a lesson shows a counter that goes up by one, make it go up by two. If it shows a list, add an item. The moment you change something and see the result, the idea stops being text you read and becomes something you did.
The quiz has a few questions, each about one concept from the lesson. Every option you can pick, right or wrong, comes with an explanation, so a wrong answer teaches you something rather than just costing a point. The questions come from a question bank that is reviewed before it reaches you.
How reviews bring questions back
Most tutorials end when you close the tab. Here, finishing a quiz is where the second half starts.
Each question you answer is scheduled for a review. The schedule uses spaced repetition, which is the practice of seeing something again just before you would have forgotten it. Get a question right and the gap until the next review grows. Get it wrong and the gap shrinks. The algorithm that works out those gaps is called FSRS, and it adjusts to how you actually answer rather than following a fixed calendar.
In practice it looks like this. You open the school and see which reviews are due. You answer them, which takes a couple of minutes. Then you start a new lesson if you have time. Over a few weeks the reviews stop feeling like tests and start feeling like a quick check that the earlier lessons are still there.
What the optional AI instructor does
The school has an AI instructor that you can switch on. It starts switched off, and the school works fully without it: a built-in picker chooses your quiz questions, and hints come from a written hint bank.
When it is on, the instructor gives hints when you are stuck, and it can choose which quiz questions to show you, using what you have answered so far. It never writes questions. Every question you see comes from the reviewed question bank, and the instructor only picks from it.
You can switch it on with your own API key for Anthropic, OpenAI, Google Gemini or any OpenAI-compatible server, which can be one running on your own computer. Requests then go from your browser straight to that provider, and the key, stored in your browser, is sent nowhere else. Until you switch the instructor on, nothing you type in a lesson and none of your quiz answers leave your browser.
Who the school is for
Two kinds of people, mostly.
The first is new to Vue, and sometimes new to programming. For you, every term is explained the first time it appears. Lessons do not assume you know what a build tool is or why a file ends in .vue. They start from a single component and build up.
The second is a working developer with gaps. You have used Vue, perhaps for years, but you skipped the reactivity chapter, or you learned the Options API and never settled into <script setup>, or your tests are thin. You can jump straight to the lesson you need. The quiz at the end tells you quickly whether the gap is closed.
Both groups get the same lessons and the same reviews. The difference is the order you take them in and the speed.
Why it is free, and why there are no accounts
The school is free because the thing it teaches is free. Vue is open source, its documentation is excellent and open, and a school that charges for a path through open material would have to justify that price every day. We would rather spend the effort on the lessons.
There are no accounts. Your progress and your review schedule are kept in your own browser. There is nothing to sign up for, no password to lose, and no profile of you sitting in a database.
There is a trade-off: your progress lives in the browser you used, so switching devices does not carry it across. We think that is the right trade for a school that wants to stay private and free.
Which Vue and Nuxt versions the lessons use
The lessons teach Vue 3.5, which is the current version. They use the Composition API, where a component's logic is built from functions such as ref() and computed(), written in <script setup> inside .vue files. That is the combination the Vue documentation recommends for building full applications.
Where a lesson touches Nuxt, the framework that adds routing, server rendering and a lot of conventions on top of Vue, it uses Nuxt 3.15, the current release.
When a new version changes something a lesson shows, the lesson is updated and the question bank is reviewed again. This blog is where we will explain those changes as they happen, along with tutorials that go deeper than a single lesson can.
How to start today
- Pick a lesson. If you are new, start at the first one. If you are not, pick the topic you are least sure of.
- Read the explanation, then run the code. Do not skip the running part because the explanation made sense.
- Change one thing in the example and predict what will happen before you look.
- Take the quiz. Read the explanation for every answer, including the ones you got right: it sometimes says why the other options were wrong, and that is where the next mistake hides.
- Come back when a review is due, and do the reviews before you start a new lesson.
That is the whole routine. Repeat it tomorrow. Twenty minutes a day is enough to make real progress.