Learn Vue with an AI instructor
From your first component to Nuxt in production: 110 short lessons in 17 tracks, each with code you can run, a tutor who teaches it out loud and a quiz at the end.
How a lesson works
Every lesson is short and ends with a quiz. Read it, run it, watch it, or ask.
Step 1: Read and run
A short tutorial with one diagram, and its code in a playground you can edit and run.
Step 2: Watch Leo teach it
Leo, the 3D tutor, talks you through the lesson and types the code as he goes. Nothing loads until you press Start.
Step 3: Pass the quiz
Three questions end each lesson, from a reviewed bank. What you miss comes back in practice until it sticks.
Step 4: Ask the instructor
Stuck? Ask in plain words from any lesson. Use the free instructor, or your own API key.
Skill tree
Beginner is the trunk. 16 tracks branch off it, and every track's first lesson is a place you can start.
See every lesson as a tree- Starting point
- Done
- Up next
- Needs review
Beginner
The branches
- Projects & tooling6 lessons · from Beginner 1
- Advanced Vue11 lessons · from Beginner 2
- Pinia6 lessons · from Beginner 2
- VueUse6 lessons · from Beginner 2
- Styling & UI5 lessons · from Beginner 4
- Animation4 lessons · from Beginner 4
- Forms4 lessons · from Beginner 6
- Nuxt11 lessons · from Beginner 7
- Testing7 lessons · from Beginner 7
- Multiplatform5 lessons · from Beginner 7
- TypeScript4 lessons · from Beginner 8
- Routing5 lessons · from Beginner 8
- Security & OWASP7 lessons · from Beginner 10
- AI & LLMs10 lessons · from Beginner 10
- Data & APIs5 lessons · from Beginner 11
- Graphics & 3D3 lessons · from Beginner 11
Learn by playing
Three games built on real Vue: the hooks fire in Vue's real order, the radar asks Vue's own reactivity, and the bugs are the ones everybody writes.
- Ordering puzzleLifecycle Line-upPut the lifecycle hooks in the order Vue fires them.0 of 7 levels doneStart playing
- Prediction gameReactivity RadarWill the template update? Call it before Vue does.0 of 3 levels doneStart playing
- Spot the bugBug HuntFind the broken line, then pick the fix.0 of 3 levels doneStart playing
From the community
Write-ups on what learners get stuck on, and Vue roles matched to your progress.
Featured from the blog
All posts- Release notesVue 3.6 and Vapor Mode: where things standVue 3.6 is at its tenth release candidate and 3.5.43 is the stable release. What 3.6 brings, what the RCs changed, and what to do with your app now.8 Oct · 7 min read
- Release notesWhat's new in Nuxt 4.6: nuxt/server, typed $fetch, cookie sessions and VaporNuxt 4.6 adds a portable nuxt/server import, cookie sessions, a rebuilt typed $fetch, Vapor components and Nuxt CLI v4. Here is what changes for your app.6 Oct · 7 min read
- Deep diveVueUse 15's new composables: useWebMCP, useLiveAnnouncer and useTemporalNowWhat useWebMCP, useLiveAnnouncer and useTemporalNow wrap, how to use each one safely, and when a few lines of your own code are the better choice.1 Oct · 6 min read