Structure & Scale
A project-based JS workshop focused on structuring code for scale and growth.
Follow a structured learning path, work on lots of fun projects, and get the support you need to work through challenges.
🔥 Join the Vanilla JS Academy! A new session starts on April 3, and registration is open now.
How It Works
- 70+ Lessons
- 18 Projects
- 24/7 Peer Chat
- 6 Week Program
The Structure & Scale workshop is designed to help you structure and organize your code as your projects grow and scale.
- 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.
- 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
- Modern JS (ES6+) essentials
- The Revealing Module Pattern
- The Constructor Pattern
- Object-Oriented Programing (OOP)
- JS libraries & chaining methods
- Settings and configurable options
- The custom events API
- Public versus private properties
- Web Components
- The Shadow DOM
- ES Modules
- Build tools and module bundlers
- Service Workers
- Offline web apps
- Web performance strategies
- How to debug broken code
- Web accessibility fundamentals
🧠 Multiple formats for different learning styles. Lessons include both written text and streaming HD videos (with captions). Watch or read on any device.
Work on Fun Projects!
Roll the Dice
A library for rolling dice of various sizes. You'll extend it to support ES modules so developers can import just the dice they need, and create a web component that can be used with just an HTML element.
A library for tracking your loot. Create unique treasure chests for each member of your crew, add different types of treasure, explore modern JS class features, and add custom events developers can hook into to extend functionality in new ways.
Seven Seas App
A travel app for pirates that incorporates your previous projects. You'll learn how to structure code on larger projects, improve app performance, and add offline capabilities.
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.
Office Hours include live automated audio transcription for people who are hearing impaired, don't speak English as their native language, or simply prefer to read.
The Program Schedule
Here’s exactly what you’ll learn in the Structure & Scale workshop.
- The Revealing Module Pattern
- The Constructor Pattern
- Object-Oriented Programing (OOP)
- Chaining library methods
- Private Library Properties
- User Options and Settings
- The Custom Events API
Part 2. Web Components
- Custom Elements
- The Web Component Lifecycle
- Adding Built-in Interactivity
- The Shadow DOM
- Encapsulating Components
- Styling Web Components
- ES modules and modular code
- Build tools and module bundlers
- Distributing code for different environments
- How to reuse code across files
Part 4. Service Workers
- An intro to Service Workers
- Caching for better performance
- Offline web apps and different offline strategies
- Updating and maintaining service workers
Across all of the sections, you’ll also learn about web performance, debugging, and web 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
- Learn modern best practices and code patterns.
- Spend less time Googling and more time working on cool stuff.
- Follow a structured learning path to grow your skills more quickly.
- Work on real projects and build your portfolio.
Your 100% Money-Back Guarantee 💰
Hi, I'm Chris Ferdinandi. 👋
Ready to join?
- 6 weeks of short, focused lessons
- 70+ lessons
- Video office hours
- Exclusive Slack access
The next session runs from April 3 to May 13. After joining, you'll get an email with the details.
Course Requirements: Before taking this workshop, you should have completed the JS Essentials workshop, or have experience with DOM manipulation, working with arrays and objects, and browser storage.
Or make three monthly payments of $387
I was confident that I'd get something valuable from the Academy. The only only hesitation I felt was from knowing how many false starts I had with JS in the past and questioning my own commitment.
I now feel pretty confident in reading other's scripts and figuring out what's going on. That's in large part due to your clear bite-sized lessons and the active discussions in Slack that quickly surfaced questions and issues that I was also experiencing. Seeing how the same problem was solved by so many others was also helpful in letting go of the pressure to get things right and shift my focus on getting things to work and adjusting later as needed.
I really liked how the lessons were broken up into quickly consumable chunks. I loved having a clean, unopinionated project file to start from that I could wreak design havoc on. :)
The Slack community was priceless.
I've taken other online classes that include a slack community and never found them to be quite as welcoming and my involvement felt much more transactional. In this community, I enjoyed seeing everyone's dedication and investment in each other. It was welcoming, inclusive, helpful, and encouraging. That made a huge difference.- Leticia O'Neill
Making myself a little web tool and using a whole range of stuff that Chris Ferdinandi’s Vanilla JS Academy taught me.
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
This program is super hands-on. I always wanted to learn how to make my own libraries, or to know how jQuery library works. Async, Promises and Fetch was another huge one for me, that I used in my projects right away.
It gave me a lot of confidence as a developer, I wish I had a training like this when I started. It got me much closer to my goal of becoming a senior front-end dev.
The material covered in the Academy translates right away into my day-to-day tasks at work, which is amazing. I loved that we could share our solutions in a very supportive group, and that you were there in that group all the time. That's rare with other teachers. Having the official solution the next day was fantastic.
It's an amazing product for all the reasons listed above. I recommend it to everyone.- Maria Blair
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.
My biggest concerns before joining Academy were cost and my experience with other online classes. Most other classes are follow-the-tutorial type and you build a project but don't really understand what you built. Had I understood that your course emphasizes fundamental knowledge of why things work, I probably would have joined a year earlier.- Stewart Davis
I can honestly say I am not sure how I ever thought I could learn JS WITHOUT the Vanilla JS Academy. And trust me I have tried other courses.- Izzi Koning
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 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.
I had a great time learning through your Academy. The community is great and it is phenomenal the way you run it. I appreciate the kindness and welcoming feeling I get in a community and the Vanilla JS Academy community is just that.
I had a blast and enjoyed every minute of it, whether it was the Slack channel, office hours, or just going through and learning. Thank you, it was money well spent.- Todd Libby
Your course provided the impetus to knuckle down and challenge myself. You got me writing code (not merely reading about it or watching videos).
Having a caring, well-spoken guide such as yourself made it fun to work through the projects. Having that in a group all tackling the same projects added that dynamic aspect that also got me moving.
Some specific things I liked: The fabulously well-crafted projects/challenges. The clarity of your teaching (videos, in-code comments, etc.). The supportive Slack channels. The feeling that no question is a dumb question -- and the thrill of having a dialogue going permitting sharing tidbits with others.
No Lynda.com tutorial or other tutorial provides that environment.- Ron Amick
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?
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?
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.
What happens if I miss a day?
Life happens! It's very common for students to miss a few days here and there.
If that happens, you can catch up on the inbetween days and weekends, or continue the program a few days behind the live program. It happens all the time, and there will more-than-likely be other students doing the same thing.
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.
I have a disability. Will I be able to follow the lessons and join office hours?
Every lesson includes a text-based version as well as streaming video with captions. Office Hours feature live automated audio transcripts. Because they're automated, they're not 100% accurate, but typically "good enough" for most people and conversations.
If there's anything else I can do to make the program a better experience for you, please email me at email@example.com.
Does the Vanilla JS Academy cover new ES6 methods?
What happens after the program? Do I still have access to the lessons?
You get lifetime access to all of the lessons from the program.
Do you offer any discounts?
Absolutely! There are three discount programs available:
- Student Discount. This applies to anyone in any type of schooling, including evening classes and coding bootcamps. Learn more about student discounts.
- Under-Represented Groups in Tech. 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.
- Location-Based Pricing. 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 firstname.lastname@example.org, and I'll send you a discount to make it fair for where you live.
How do I access the training program materials?
After you sign up, visit the Student Portal 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 immediately. You'll get a few emails from me when the program is about to start.
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, captioned 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.
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.
Do you have a refund policy?
Absolutely! If you’re not 100% satisfied with the Vanilla JS Academy, email me at email@example.com and I’ll give you a full refund.
I have another question.
No problem! Send me an email at firstname.lastname@example.org.
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.
Hate the complexity of modern front‑end web development? I send out a short email each weekday on how to build a simpler, more resilient web. Join over 14k others.
If you have any questions about anything, feel free to send me an email at email@example.com.