Progressive Enhancement as Approach and Mindset Bookmark

The most common misunderstanding of progressive enhancement is that it’s inherently about JavaScript. That’s not true. You can apply progressive enhancement at every step of front-end development: HTML, CSS, and JavaScript.
Separating out the layers of your tech stack isn’t necessarily progressive enhancement. If you have some HTML that relies on JavaScript to be useful, then there’s no benefit in separating that HTML into a separate payload. The HTML that you initially send down the wire needs to be functional (at least at a basic level) before the JavaScript arrives.

This is a great article on the "approach and mindset" of progressive enhancement. I really like this phrase. After so many years of talking about progressive enhancement, it’s still being widely misunderstood. Also still not cool. While I still think that the PE approach is such a great approach—it doesn't really matter what and how you’d like to enhance—I’ve always felt there are a few reasons, why it never really caught on, or rather became widely practiced:

  1. It can be a lot of work, if e.g. you want to provide a non-JS solution for everything as a fallback;
  2. A lot of budgets aren’t big enough to cover this amount of work (or PE is not important enough…);
  3. You need to know and understand a lot of web technologies. And if you do, go back to 1.