Oct 02, 2023 web javascript spa ssr

Back to the Future with Server-Side Rendering

I think there is an inexorable shift towards the simplification of building web apps underway today. For the past decade, the only ’correct’ way to make a great web app was to actually build two: your backend in Ruby, Python, Java, PHP, or what have you, and your front end in JavaScript, using the framework flavor of the week: Backbone, Knockout, React, Angular, or Svelte. (I hear you Ember.js evangelists out there!)

The tide is changing, and we’re heading back to the future! In this case, our 1.21 gigawatts will be generated by the amazing power of jettisoning the need to build an entire app to ship our products.

You can build a great product using server side rendered user interfaces crafted with gorgeous toolkits like Tailwind, and augmented with just enough JavaScript using PJAX-style techniques to make even the most ardent JS enthusiasts think you’ve absorbed the latest React koolaid. I know, because I keep getting asked questions like “did you build this [entirely server side rendered app] with Angular or React?

Every time someone asks me if a server-side rendered web app I built with Tailwind, using a Pjax-style (Turbolinks or Htmx) navigation system was built with React, I have two immediate reactions:

  1. The actual quality of the average SPA web app is utter trash.
  2. No, i only had to build one app, not two, thank you very much.