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.