HACKER Q&A
📣 bestinterest

What are some concrete examples of good SPA's?


Hi all,

One of the arguments I keep hearing being said on Twitter and Hackernews is you should use React/Angular/Svelte when you have an more 'appy' website but I can never figure out what is meant by that.

Can we have some examples of concrete sites that are actually benefiting from SPA frameworks and would be infeasible in a typical Rails/Django/Laravel setup.

Anyone know of any resources taking a reference point of a more complex user interface and implementing it in both React and templating with Rails?

Turbolinks for me has fixed the white page refresh issue and Hotwire seems to have unlocked a few more interactivity tricks CRUD things, see https://twitter.com/noelrap/status/1341520142258348035.

But I'd like to know what interactivity I'm missing out on.


  👤 hombre_fatal Accepted Answer ✓
> But I'd like to know what interactivity I'm missing out on.

The appropriate level of interactivity is merely a product design concern.

There's a point not very far down the meter where rendering HTML on the server and then implementing interactivity on top of it with Javascript is more complex and/or harder to work with than just implementing the entire client in Javascript (like how you build any other). So that's another way to look at SPAs than just "SPA = web app" which you say is hard to make sense of.

Not quite sure what kind of examples you're asking for.

The Discourse forum (https://meta.discourse.org/, used as Blizzard's official forums for example) is a large Ember Javascript app with a Rails server. Something noteworthy about it here is that instead of traditional pagination, it has a sort of scrubber in the topic view, and topics behave as an endless scroll with UI to tell you where you are in the topic.

So, deciding to build a forum as a SPA isn't because "forum = web app" (most people here wouldn't even make that connection) but rather they targeted a level of interactive UX for what they thought would make a compelling forum, and building most of the UI in Javascript was a sensible way to implement it.