JavaScript for the Web
Learn the programming language that powers interactivity on the web. Go from typing your first commands to building reactive interfaces and fetching live internet data.
Like Duolingo, but for JavaScript for the Web. Tomo turns the whole topic into a game you play five minutes a day, until it actually sticks.
23 levels across 4 sections, about 46 minutes end to end, roughly 9 days at five minutes a day. It moves through Making Things Happen on the Screen, Guiding the Flow of Logic, Structuring Data and Live APIs, and How JavaScript Works Under the Hood. It starts from scratch.
Free forever · No credit card · iPhone & Android

Key ideas in JavaScript for the Web
- Every web browser includes developer tools with a built-in JavaScript console
- Typing code into the console executes it immediately and prints the result back to you
- The console acts as a throwaway scratchpad rather than permanently modifying a website's source code
- A variable stores a value under a reusable label
- Reassigning with '=' replaces the old stored value with a new one
- Performing an operation like adding 5 calculates a new number but does not change what is stored unless assigned back
- Wrapping anything in quotes tells JavaScript to treat it as plain text (a string), even if it contains digits
- Raw numbers without quotes can be used directly for math
- The unquoted keywords true and false represent yes-or-no state checks (booleans)
- JavaScript can target specific elements on an HTML page and rewrite their inner text
- Modifying page elements via JavaScript takes effect immediately in the live browser view
- A manual browser refresh actually resets the page back to its original HTML file instead of saving the changes
- The DOM is a live representation of the page kept in browser memory
- JavaScript updates the live browser tree instantly without touching the source HTML file
- document.querySelector uses standard CSS selector strings
- A hash symbol (#) targets an element id, a dot (.) targets a class name, and bare text targets a tag name
You've tried the other tabs
Thirty open tabs. Four facts you actually kept.
You watched. You nodded. By Sunday it was gone.
One answer, then back to scrolling.
Eight weeks. You meant to finish. You didn't.
Tomo gives JavaScript for the Web the Duolingo treatment: levels, streaks, and quick quizzes that test what you just learned. That game loop is what the tabs above never had, so it's the one you actually finish.
Here's what playing it feels like
A real question from this course. Take your best guess.
What happens when you type a quick math problem into the browser console and hit Enter?
Get it right to open this lesson and 22 more in the app.
Where JavaScript for the Web takes you
- 1
Making Things Happen on the Screen
- Running Your First Code
- Responding to User Actions
- 2
Guiding the Flow of Logic
- Making Choices with Conditions
- Packaging Reusable Actions
- Handling Collections with Arrays
- 3
Structuring Data and Live APIs
- Modeling Reality with Objects
- Fetching Live Data Across the Network
- 4
How JavaScript Works Under the Hood
- Inside the JavaScript Engine
4 sections · 8 units · 23 levels. Built to play, not to enroll.
Tomo is in ChatGPT
Tomo is also a ChatGPT plugin: the same playable courses, built and played inside your chat.
Add Tomo to ChatGPT- What to ask
- “Make me a Tomo course on black holes.” “Turn this chat into a Tomo course.”
- What you get
- Quick questions with instant feedback, hearts and stars, ready to play in about a minute.
- Where it goes
- No sign-up to start. Connect your Tomo account and your streak carries on in the app.
You pick the voice
JavaScript for the Web is taught in the Bestie style: your friend who just gets it. Want a different feel? In the app you can spin up the same topic in any of Tomo's teaching styles. Same facts, totally different vibe.
More Technology on Tomo
Python from Scratch
Learn to write real, working Python code to automate repetitive tasks, analyze information, and build your own applications. Master core syntax, data structures, and practical libraries through hands-on logic.
Writing Useful Python Scripts
Learn to write real Python code to automate everyday tasks and crunch data. Start by manipulating text and numbers, branch into smart decision-making, and finish by building reusable scripts.
Writing Your First Python Scripts
Build a working intuition for the world's most popular programming language. Learn how Python stores information, makes decisions, and automates repetitive tasks with clean, readable code.
Writing Code with Python
Turn plain text into working programs that calculate, automate, and solve real problems. Learn how to direct computer logic, work with collections of data, and build reusable scripts.
JavaScript Logic for Web and Mobile
Bridge the gap between basic syntax and professional application architecture. Master the logic patterns required to build responsive, high-performance apps that work seamlessly across every device.
How Code Works
Discover how programmers turn everyday human ideas into instructions computers can execute. Master variables, decision branching, and automated loops to build your first functioning logic blocks with confidence.
Start JavaScript for the Web today.
Download Tomo, search JavaScript for the Web, and play your first lesson in under a minute.