JSFoo 2019

JSFoo 2019

On component architecture, front-end engineering and Developer Experience (DX)



Saptak Sengupta


To SPA or not to SPA

Submitted May 10, 2019

SPA or Single Page Applications have become a huge trend in modern day web applications. Almost all the web applications written today use some kind of SPA framework whether it be Angular or React or Vue or something else. So the question then is do we really need a single page application for all use cases? Does single page application always help improve performance? Can we do without a single page application?


  • What is SPA or Single Page Application?
  • Drawbacks of a SPA
    • Complex set of interactive components
    • Tooling (babel, webpack, etc.) for browser to be able to handle it
    • SEO unfriendly
    • Extra effort to make it stateful
    • High memory consumption
    • Loading CSS and JS for large applications
    • Breaks browser features
    • Nothing works if JS is not allowed in browser
  • When to use a SPA?
    • Set of interactive components, constantly being updated separately
    • Is your site more graphics-intensive?
    • Real-time experience without page refresh
    • Lots of state shared between screens
    • How it fits for Facebook, trello, etc.
  • Multi-page Applications
    • It lets browser do the browsing
    • Free SEO
    • Better shareable links many times
  • Hybrid Applications
    • Combine best of both worlds
    • Don’t SPA the entire web app
    • How Github does it
  • Conclusion: Love SPA, but understand when you need it


An open mind to hear some unfavorite things

Speaker bio

Saptak Sengupta is a contributor and maintainer of various open source projects. FOSSASIA, jQuery, Freedom of the Press Foundation and Gitcoin are few organizations under his belt. He is currently working as a Fullstack Developer at Gitcoin, a blockchain dApp. He is also associated with programs like Google Summer of Code, Google Code-In, and Rails Girls Summer of Code as a mentor/supervisor. As an open-source evangelist, he also likes to help out people with programming in general. His core area of dabbling is JavaScript and Python.


{{ gettext('Login to leave a comment') }}

{{ gettext('Post a comment…') }}
{{ gettext('New comment') }}
{{ formTitle }}

{{ errorMsg }}

{{ gettext('No comments posted yet') }}

Hybrid access (members only)

Hosted by

JSFoo is a forum for discussing UI engineering; fullstack development; web applications engineering, performance, security and design; accessibility; and latest developments in #JavaScript. Follow JSFoo on Twitter more