JSFoo 2019

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

To SPA or not to SPA

Submitted by Saptak Sengupta (@saptaks) on May 10, 2019

Section: Full talk (40 mins) Technical level: Intermediate Session type: Lecture Status: Rejected

Abstract

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?

Outline

  • 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

Requirements

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.

Links

Comments

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

{{ gettext('You need to be a participant to comment.') }}

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

{{ errorMsg }}