The balance has shifted away from SPAs

published on 2022/05/23

There’s a feeling in the air. A zeitgeist. SPAs are no longer the cool kids they once were 10 years ago.

Hip new frameworks like Astro, Qwik, and Elder.js are touting their MPA capabilities with “0kB JavaScript by default.” Blog posts are making the rounds listing all the challenges with SPAs: history, focus management, scroll restoration, Cmd/Ctrl-click, memory leaks, etc. Gleeful potshots are being taken against SPAs.

Read the tea leaves

We have never embraced the philosophy of SPA. A lot of functionalities in a web system can be handled just fine with Server Side Rendering. In pages where it needs richer interaction, we use Vue or Alpine.

Our biggest quarrel with SPA frameworks is that their upgrade path is difficult. They move much faster than their ecosystems. In many cases people can't upgrade their SPA applications to the latest versions because the libraries they are relying to has not been updated or simply abandoned.


  • SPA: Single Page Application
  • MPA: Multi Page Application