Skip to content 2.0

Micro-frontends and Progressive Enhancement

Author: Natalia Venditto

Date First Published: Wed Jan 04 2023

What is progressive enhancement?

I remember the days when I started doing web development. Back then progressive enhancement and graceful degradation were concepts and techniques used when we had to support enterprise sites with JavaScript disabled -yes! they had to provide almost identical functionality as with JavaScript enabled, as a requirement…Just imagine!- We also had to support cross-browser compatibility when the engines were a lot less mature and the standards were not as evenly implemented as they are today, across many of them in our support matrix.

Progressive enhancement and graceful degradation

So we either implemented graceful degradation, meaning we implemented all the features and then we removed -or blocked somehow the execution with conditionals- of some of the functionality where unsupported, trying to preserve the user experience as much as possible, or progressive enhancement, where we started with the bare minimum to ensure requirements were met, and added enhancements progressively where supported.

We implemented tons of device and agent detection for that -blocking the critical path- ouch!

Today, I feel there is a lot less of that, but I still believe progressive enhancement is a good practice to preserve the user experience, and when it comes to choosing the framework or technology stack for our frontend, thinking of an HTML-first approach, is a good way to go.