Skip to main content Accessibility Feedback

Structure & Scale

A project-based workshop about how to structure JavaScript as it grows.

Learn patterns and approaches for writing JavaScript that's fast, easy to maintain, and can be reused across projects.

I've advised and written code for organizations like...

How It Works

  • 70+ Lessons
  • 12 Projects
  • 24/7 Peer Chat
  • 4 Week Program

Structure & Scale is a project-based workshop designed to help you write code that’s fast and easy to maintain as your project grows in size.

  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 Discord community exclusively for students, and video office hours every month.

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

By the end of this course, you’ll be able to add structure and organization to growing projects and write codes that’s easier to maintain.

  • Modern JS (ES6+) essentials
  • The Revealing Module Pattern
  • The Constructor Pattern
  • Object-Oriented Programing (OOP)
  • Settings & Options
  • Custom Events
  • JavaScript Classes
  • Web Components
  • ES Modules
  • 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.

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

Work on fun projects!

Grow your portfolio and work on fun projects, including…

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.

Treasure Chest

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 and improve performance.

Making myself a little web tool and using a whole range of stuff that Chris Ferdinandi’s Vanilla JS Academy taught me.

I struggled with JavaScript for a decade so I really would recommend it for anyone who needs a big friendly confidence-booster.- Laura Kalbag

Don't go it alone! Get lots of support.

Video Office Hours

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

Private Discord Access

Get 24/7 access to a private a private Discord community 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.

Module 0. Getting Setup

  • Developer tools, the console, and debugging
  • Tools of the trade: recommended browsers and text editors
  • Tips for working on projects

Module 1. JavaScript Library Patterns

  • The Revealing Module Pattern
  • The Constructor Pattern
  • Object-Oriented Programing (OOP)
  • Chaining library methods
  • JavaScript Classes
  • Private Library Properties
  • User Options and Settings
  • The Custom Events API

Module 2. Web Components

  • Custom Elements
  • The Web Component Lifecycle
  • Adding Built-in Interactivity
  • The Shadow DOM
  • Encapsulating Components
  • Styling Web Components

Module 3. Modular JavaScript

  • ES modules and modular code
  • Build tools and module bundlers
  • Distributing code for different environments
  • Page-specific JavaScript and reduced payloads
  • How to reuse code across files

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

Lifetime Access 🦄

You get lifetime access to all of the workshop lessons, projects, and community. This includes free updates as I continue to make the workshop even better.

Need a refresher on something you learned? Jump back in to the specific module, or go through whole the program again. You can work at your own pace, or join an upcoming session if you want that community feeling.

Level-up as web developer

Over the last decade, I’ve helped thousands of developers demystify JavaScript and build tons of cool stuff. I can help you...

  • 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.

Imagine being able to write modular code that you can easily maintain and reuse.

Your 100% Money-Back Guarantee 💰

Don’t put off leveling-up your skills a front-developer! If you're not 100% satisfied with this workshop, let me know and I'll give you a full refund.

Hi, I'm Chris Ferdinandi. 👋

Chris Ferdinandi

I help people learn front-end web development, and I believe there’s a simpler, more resilient way to make things for the web.

I’ve advised and written code for organizations like NASA, Apple, Harvard Business School, Chobani, and Adidas. My developer tips newsletter is read by over 14k developers each weekday.

I want to help you master web development, 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 instant access to...

  • 4 weeks of short, focused lessons
  • 12 amazing projects
  • 70+ lessons
  • Video office hours
  • Exclusive Discord access
  • Lifetime access and FREE updates
One-Time Payment
Join Now
3 Monthly Payments
Join Now + Pay Monthly

Save big with the All-Access Pass. Get unlimited lifetime access to all of my courses and workshops, including past courses and new ones that come out in the future.

Join 7,430 others and learn how to build a simpler, more resilient web.

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.

With Academy, something finally clicked in regards to both my ability to understand and write JavaScript.

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
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
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 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
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
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
Having your interaction is priceless. Such added value.- Elliott Porter
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 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

How much of a time commitment does this workshop 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 or have a vacation planned?

Life happens! You get instant access to all of the projects, lessons, and the community.

While the workshop follows a suggested pace, you can move faster or slower as need, including pausing for a few days and starting back up back when you have time. It happens all the time!

How does it work if I'm in a different timezone?

You get instant access to all of the lessons and projects, and the entire workshop is online and asynchronous.

You can complete the projects whenever you want, and the Discord community is available 24/7. There are people from around the globe in the program.

Will you (Chris) be available to help me if I get stuck?

Absolutely! I want to make sure you succeed, and actively participate in the Discord community answering questions and helping students get unstuck.

In my experience, not being able to get help is one of the biggest reasons people give up when they're trying to learn web development. This workshop exists is to make sure that doesn't happen.

I have a disability. Will I be able to follow the lessons and projects?

Yes! Every lesson includes a text-based version as well as streaming video with captions, and the workshop has been attended by students with various disabilities.

If there's anything else I can do to make the program a better experience for you, please email me at

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, including future updates.

Do you offer any discounts?

Absolutely! There are three discount programs available:

  1. Student Discount. This applies to anyone in any type of schooling, including evening classes and coding bootcamps. Learn more about student discounts.
  2. 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.
  3. Location-Based Pricing. I totally get that in some countries salaries and cost of living are such that this workshop is unaffordable. Send me an email at, 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.

You get instant access to all of the lessons and projects.

Do I need any special tools or equipment for this workshop?

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 this workshop?

You don't! The course is 100% beginner-friendly. I designed the course to be inclusive of individuals with little or no prior experience.

If you're brand new to web development, the program includes optional lessons on some fundamentals, and will help you kick-start your journey to mastery! If you have any specific questions, though, please email me at

Are there any rules or requirements for participating in the Discord community?

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 workshop, email me at and I'll give you a full refund.

I have another question.

No problem! Send me an email at

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.