This article is more than six months old, and some specifics have likely changed.
The answer is to take the best of both worlds.
Traditional web apps are forced to use links for navigation because they have no other options. Single-page apps are forced to use links for navigation because the other options are worse.
- Traditional web apps limit you to two types of interactions: links and forms.
- Relying on widgets for all your functionality hamstrings designers and hurts performance.
- jQuery and its native equivalents involve a lot of typing for not much gain.
There is an alternative to this all-or-nothing thinking: islands of interactivity.
Add the interactivity, nothing more
Not too bad for a library that’s smaller than jQuery.
Islands of interactivity still cost more to develop than a traditional web app, but if you follow this process, you can keep costs down:
- Identify the most critical user flows. These may be funnel-type flows, like an e-commerce search, or productivity flows, like a call center dashboard.
- Replace pieces of the flow with islands of interactivity. Check each iteration with design and product to ensure it’s the right direction.
- Repeat for the next most important flow, and the next, until you run out of critical and improvable flows.