Skip to main content Accessibility Feedback


The web is a bloated, over-engineered mess. And, I believe many of our modern “best practices” are actually making the web worse.

In this book, I want to share some ideas on how to fix it, and explore a new set of best practices to replace what we do today.

(The alternate title for this book is “Old man yells at cloud.”)

If you’ve ever felt like modern web development is too complicated, this book is for you. And if you haven’t, I hope you’ll feel more empathetic to a segment of designers and developers who aren’t like you by the end of this book.

If you like this book and talk, you'll love the Lean Web Club. Join today for free!

Who am I, anyways?

Hi, I’m Chris Ferdinandi. You can find me online at

I’m known on the web as the vanilla JS guy. I didn’t come up with the term, but I spend a lot of time evangelizing the use of native JS methods and browser APIs instead of libraries and frameworks.

I write short guides and create video courses on vanilla JS1, I teach people how to build cool stuff2, and run a project-based training program called the Vanilla JS Academy3.

I’ve gotten to teach students at some amazing companies, like Chobani, 10up, and the Boston Globe. And in what’s probably the highlight of my career, Apple used one of my open source vanilla JS plugins on the Swift website.

Being Self-Taught

I started my career in HR. Then about 6 or 7 years ago, I taught myself to code and transitioned into web development.

It was an awesome career move, and I highly recommend it!

I’m self-taught, and started with HTML, CSS, and WordPress. Then I moved into jQuery, which was THE way to use JavaScript on the web at the time. Some frameworks existed, but they weren’t really a thing yet.

I wanted to understand more about how jQuery worked under the hood and, to be honest, feel more like a “real developer.” So I started learning vanilla JS.

At that time, browser’s were finally standardizing features and implementations, so cross-browser compatibility was a lot easier than it had been in the past.

CSS3 and HTML5 were out. JavaScript’s ES5 was out, and pulled in a lot of features from jQuery. In retrospect, it feels like the perfect time to have tried to learn this stuff.

I look at the state of things today and feel like I wouldn’t have been able to teach myself or make the jump into web development if I tried to do it today.

What’s your biggest challenge in web development?

I want to help others feel like they can do this, too! Each weekday I send out a short email with code snippets, tools, techniques, and random awesomeness from around the web4.

Everyone who subscribes to my newsletter gets an email from me asking,

What’s your biggest challenge in web development?

I get back a lot of different responses, but the one I get back more than anything else is some variation of this:

My biggest challenge is keeping up.

The good news: there’s a movement towards simplicity on the web happening.

The Lean Web

In 2018, Thomas Fuchs tweeted5:

Is there a conference for web developers that specifically caters to “lean web” (don’t use JS if not necessary etc.)?

He’s used the term “the lean web” a few times since then, and as far as I know, he coined the term. I really like it.

And that’s what this book is all about.

First, we’re going to look at modern best practices, and why I think they’re bad for the web. Next, we’ll take a quick look at how we got here in the first place.

Then, we’ll wrap things up by exploring a new set of best practices—Lean Web Principles—that we can use to build a simpler, faster world-wide web.

Modern Best Practices →


  1. Intro
  2. Modern Best Practices
  3. How did we get here?
  4. Lean Web Principles
  5. What now?