SPAs Were a Mistake
I think one of the unsolved problems of client-side interactivity on websites is how difficult it is to add it just <i>a little bit</i> of extra client-side functionality to a traditional server rendered website. For example, recently I had to deal with photo uploads on a Rails app, which works fine out of the box at first, until you want to show progress bars and uploaded previews etc. Then you add a couple of client-side Stimulus controllers, maybe a Turbo frame here and there and it works, but then you get to browser navigation and you&#x27;re screwed, because none of this works if somebody were to submit the form, then navigate back. Now you have to implement lifecycle handling to account for navigation and once you&#x27;re done, you&#x27;ve basically implemented a SPA, except it&#x27;s broken into a mix of tightly-coupled Javascript, Ruby and ERB templates.