Skip to main content Accessibility Feedback

The Vanilla JS Academy

A project-based online JavaScript training program for beginners.

The best way to learn JavaScript is by writing lots of code, but where do you even start? And what happens when you get stuck?

The Vanilla JS Academy provides a structured learning path, lots of fun projects, and the support you need to work through challenges.

🚀 A new session of the Vanilla JS Academy starts on January 6. Learn to solve problems and think in JavaScript!

Join now →

How It Works

  • 70+ Lessons
  • 34 Projects
  • 24/7 Peer Chat
  • 10 Week Program

The Vanilla JS Academy is a project-based training program designed to help you learn to solve problems and think in JavaScript. 

  1. Every other day, you get a project to work on, 1-3 short lessons that provide some background, and a template to help you get started.

  2. On the in-between days, I share my approach to the project and some of the common challenges and “gotchas” that students often run into.

If you get stuck, there’s a 24/7 private Slack channel exclusively for students, and video office hours every few weeks.

Tired of tutorials? Want to really dig in and work with other developers on how to become a vanilla JS badass? I can't tell you how much I've learned from Chris Ferdinandi and his Vanilla JS Academy.- Ben Rudolph

What You’ll Learn

  • DOM manipulation, injection, and traversal
  • How to transform and edit strings, numbers, arrays, and objects
  • ES6 essentials
  • How to structure and organize code
  • How to save data locally
  • Ajax and HTTP
  • How to work with APIs
  • How to write JavaScript plugins
  • How to build framework-free web apps and games
  • How to easily write code that works in all browsers
  • How to debug broken code
  • JavaScript performance tricks
  • Web accessibility fundamentals

Work on Fun Projects!

Show Passwords

Toggle password visibility with a checkbox.

Word Count

Count the number of words and characters in a block of text.

Random Ron

Show random Ron Swanson quotes using API calls.

Top Stories

Use the New York Times API to get and display today's top stories.

Avoid the Monster

Create a fun game where you find your monster friends and avoid the sock.

Table of Contents

Dynamically generate a table of contents from page headings.

Weather App

Find a visitor's location and display their local weather.

DOM Library

Create your own tiny DOM manipulation library.

Form Saver

Automatically save form data as a user types.

API Cache

Cache API data for more resilient apps.

Countdown Timer

Create a countdown timer app for tracking tasks.

Todo List

Build a simple todo app with local storage.

Join now →

I’m loving the Academy and I don’t want it to end! 😢 For me this is priceless. I don’t work in tech yet and to be able to do those mini projects and discuss the code and best practices with you guys is a great learning experience. The pace of the course is nice too because it keeps me busy and that helps me feel more comfortable with the syntax and methods. 💯- Giamma Carioca

Don’t go it alone! Get the support you need to build amazing things.

Video Office Hours

Join video office hours every few weeks to ask questions, share works in progress, and get help with any big roadblocks.

Private Slack Access

Get 24/7 access to a private Slack channel where you can chat with other students, get feedback on code, and ask questions in between office hours.

The Program Schedule

Here’s exactly what you’ll learn in the Vanilla JS Academy.

1. DOM Essentials

  • Getting elements in the DOM
  • Listening for events and user interactions
  • Looping over elements
  • Getting and setting text and HTML
  • Working with custom HTML attributes

2. Ajax, HTTP, and APIs

  • Working with fetch()
  • Parsing and manipulating API data
  • Promises and chaining API calls
  • Cross-site scripting attacks and sanitizing third-party data

3. Arrays, Objects, Strings, and Numbers

  • Looping over and manipulating arrays and objects
  • Shuffling arrays
  • Adding and removing items from arrays and objects
  • Converting strings to numbers and numbers to strings
  • Doing math with JavaScript

4. Writing your own plugins and libraries

  • Adding customizable options to your scripts
  • Exposing public methods
  • Allowing multiple versions of a plugin to run at once
  • Writing flexible, scalable code

5. Browser Storage

  • Storing data locally in the browser
  • How to convert objects to strings and back again
  • How to expire stored data

6. JavaScript Apps

  • State-based UI
  • Data reactivity
  • DOM diffing
  • Routing techniques

Across all of the sections, you’ll also learn about web performance, debugging, and accessibility.

In terms of knowledge gained per effort expended, this course is hands down the best I've ever tried. More than just the content, it is the growing confidence that maybe even I can actually do this. I feel like I am beginning to know what I don't know. That is huge. Well done.- Stewart Davis

Go from beginner to JavaScript expert

  • Learn modern best practices and code patterns.
  • Spend less time Googling and more time working on cool stuff.
  • Get the skills and confidence to really understand JavaScript.
  • Follow a structured learning path to grow your skills more quickly.
  • Work on real projects and build your portfolio.

Your 100% Money-Back Guarantee 💰

Don’t put off learning vanilla JavaScript! If you’re not 100% satisfied with the Vanilla JS Academy, let me know and I’ll give you a full refund.

About the Instructor

Chris Ferdinandi

Hi, I'm Chris Ferdinandi. I believe there’s a simpler, more resilient way to make things for the web.

I’ve taught developers at organizations like Chobani and the Boston Globe, and my JavaScript plugins have been used by organizations like Apple and Harvard Business School. My developer tips newsletter is read by over 7,700 developers each weekday.

I want to help you master vanilla JavaScript, without all of the painful false starts and roadblocks I encountered when I was learning.

Ready to join?

Kick-start your journey to JavaScript mastery. You get...

  • 10 weeks of short, focused lessons made for beginners
  • 34 amazing JavaScript projects
  • 70+ lessons
  • Video office hours
  • Exclusive Slack access

The next session runs from January 6 to March 13. After joining, you'll get an email with the details.

Join now for just $799

Want your whole team to attend the Vanilla JS Academy? I offer private training programs that can be customized for your team. I only run a limited number of these a year. Email me at to apply.

This is the first learning platform where I’m not overwhelmed or feeling unchallenged. The pacing is great and very helpful for my overachieving tendencies. 😊

And as a result I have seen I’m learning ALOT more, while still having pockets of time to embellish when I can.- Leticia O'Neill
Best investment and course I have taken. If you want a bite sized course that will hold you accountable take this course. I have reduced the amount I Google and use Stackexchange by 50% and actually feel like I understand what I am coding.- Walter Jenkins
After going through this program, I found that using vanilla JS, you can accomplish A LOT more than the larger dev community would lead you to believe.

I really liked the open-endedness of the weekly projects. I think having fewer restraints in solving the task made me focus more on the specific topic for that week and how I would apply it to the given project. Combining this with the Thursday office hour and then having your approach shared on Friday made for a well-rounded overview of the material.

Thanks for an awesome course, Chris! This truly was the best JS learning experience I’ve had—things really clicked for me during the academy and I feel much more comfortable using JavaScript and approaching problems with JS-specific solutions at the ready!- Zac Heisey
I'm not a beginner in JavaScript but I'm really loving the Academy because I still learn new things and best practices. I think knowing best practices distinguishes a mid-level dev from a senior web dev.- Maria Blair
I was not sure the level of the course. I was not looking for a 101 of JS, which the course was not. It was exactly what I was after.

I really benefited from and liked both the office hours (including code reviews) and the interaction with Chris and students on Slack (a big thing many other course do not have). It was also nice to see how other students approached the same problem. With having other students and you over a set period really helped encourage me to complete projects.

I never felt any imposter syndrome. We could ask any question and Chris was happy to help.- Kevin Beck
I was desperately looking for a person or guided tutorial to help me understand the foundation of pure (vanilla) JavaScript. Though I have good work experience in various programming languages including JavaScript, I felt I was missing something.

I found and bought Chris's books and have gone through most of them. But I was still looking forward to to talking to someone, so I joined the Academy :-) and I'm happy that I did.- Kumar Sucom
Initially it was very challenging. I found I often hit walls with things like finding the best method for iterating over an array, or finding the right way to target DOM elements, most if it was practice though. As the course went on, a picture started to emerge and things started to make more sense.

At the end Javascript didn't feel like a strange far away land, but maybe a town I've visited a few times and am starting to recognise landmarks.

It's a very accessible course. You importantly are not made to feel that anything should be better understood or you've committed some sort of JavaScript sin. Lots of encouragement and a genuinely approachable, knowledgable and nice person to learn from.- Rich Holman
I am thoroughly looking forward to every morning because of the Academy!- Kieran Barker
I thank you from the bottom of my heart. If it had not been for you, I would not be able to learn JavaScript.- Patricia Parker
Having your interaction is priceless. Such added value.- Elliott Porter
Honestly, the projects so far plus seeing your examples have helped me learn so much faster.- Craig Haggart

Frequently Asked Questions

What’s the difference between the Vanilla JS Academy and your pocket guides?
The guides try to cover all of the important details on a particular topic, then walk you through a project to help you remember what you learned. Academy is about learning from doing, and gives you just enough information to get started on projects without giving you all the answers.

If you learn best from experience and building things, Academy is a great fit. If you learn best by being guided through a problem, Academy would probably be a waste of money.
I already purchased your pocket guides? Will I learn anything new from the Vanilla JS Academy?
There’s definitely some overlap in content, but the focus of the Vanilla JS Academy is on teaching you to “think in JavaScript,” through experiential, project-based learning. If you’ve already read the pocket guides, you’ll be able to focus more on thinking through problems and less on, “what method do I need to do this?”
How much of a time commitment does the Vanilla JS Academy involve?
This program is for people who are serious about learning JavaScript. The more you put into it, the more you’ll get out of it.

The amount of time required varies a bit from the beginning to end of the program, and based on how much experience you have already. Generally speaking, expect each project to take 30 minutes to an hour (plus maybe 15 minutes of reading with the lessons) near the start of the program, and up to two or three hours near the end.
When are office hours held?
Office hours are held at 12pm (noon) US Eastern to accommodate as many people as possible. Days of the week vary, but they’re always on a weekday. They’re recorded for people who can’t attend, and you can submit questions ahead of time if you can’t make it.
How does it work if I’m in a different timezone?
The lessons and projects automatically show up in the learning portal every day, and can be completed whenever you want. The Slack channel is available 24/7, and there are people from around the globe in the program.

The only “time specific” part is the office hours. If you’re in a location where you can’t join them live, you can send in questions ahead of time. Office hours are recorded so that you can watch them later.
Does the Vanilla JS Academy cover new ES6 methods?
Yes. Where applicable, I cover new ES6 functions and browser APIs. I also include polyfills when available to push browser support as far back as possible.
What happens after the program? Do I lose access to the lessons?
You get lifetime access to all of the lessons from the program.
Do you offer team training?
Yes. If you want your entire team to attend the Vanilla JS Academy, I offer a private version of the program just for your team.
Do you offer a student discount?
Absolutely! This applies to anyone in any type of schooling, including evening classes and coding bootcamps. Learn more about student discounts.
I have a poor exchange rate in USD. There’s no way I can afford this.
I totally get that in some countries salaries and cost of living are such that the Vanilla JS Academy is unaffordable. Send me an email at and I’ll send you a discount to make it fair for where you live.
I’m not a student. Any other discounts?
Yep. I’ve had a lot of helping getting where I am, and I want to pay it forward. If you’re a member of an under-represented group in tech, you can get special pricing. Learn more about discounts for under-represented groups in tech.
Do you have a refund policy?
Absolutely! If you’re not 100% satisfied with the Vanilla JS Academy, email me at and I’ll give you a full refund.
After I sign up, how do I access the training program materials?
Visit and create an account with the email address you used to make your purchase. The program has fixed start and end dates, so not all material will be available at once. You’ll get a few emails from me when the program is about to start.
Are there any restrictions on the training material?
Nope. I trust you to do the right thing. My content is 100% DRM free. If you think others might enjoy the program, please email me at for information about team pricing.
Do I need any special tools or equipment for the Vanilla JS Academy?
All you need to go through the program and work on the projects is a modern web browser and a text editor (I recommend VS Code). The program materials come in a mix streaming HD video and plain text, so you can read and watch any device you own.
Do I need any prior knowledge or experience to participate in the Vanilla JS Academy?
Ideally you’re comfortable working with HTML and CSS already. Experience with another library or framework (like jQuery, React, and so on) is helpful but not required. If you’re brand new to JavaScript, the program will help you kick-start your journey to JavaScript mastery! If you have any specific questions, though, please email me at
Are there any rules or requirements for participating in the office hours and Slack channel?
Yes. You must be at least 18 years old, and read and agree to follow the Code of Conduct.
I have another question.
No problem! Send me an email at

Join now →

Clarity. Brevity. Unpretentious explanation. Care for best practices. Obvious attentiveness. Available to help "unstuck" students. You actually rock, Chris.- Kabolobari Benakole

Not ready yet? Get daily developer tips.

I send out a short email each weekday with code snippets, tools, techniques, and interesting stuff from around the web. Join 7,700+ daily subscribers.

If you have any questions about anything, feel free to send me an email at