AstonJ

AstonJ

Are SPAs dying or becoming more popular/beginning to shine?

DHH might like you to believe they are a thing of the past:

https://twitter.com/dhh/status/1275902566719610880

I actually went down this rabbit hole after reading this thread about SSR apps vs SPAs, where this comment stood out:

Take for instance an app that I use everyday, Kanbanize. It is built around some server side rendering tech and it is awesome, but I know that some will tell that the UX is subpar, the same can be applied to Basecamp and Hey.

I wondered what Marciol was referring to so googled and found this on HN:

Noteworthy how they tout the success of their “magic” frontend stack made with vanilla JS, lack of a trendy framework, etc. But if you use the app, the UX is fairly laggy, requires frequent refreshes, all the animations and interactions are off - the list goes on and on. It’s noticeably subpar (and I like Hey).

Unfortunately have to agree. I really wanted to love HEY, and while it’s certainly not super laggy or anything, I’m not overwhelmed with the “magic”.

Ran into a host of inconsistencies already, changing between imbox/feed/papertrail on iOS also feels very “unnative” in the sense of not fluid.

The Basecamp folks have always been JavaScript skeptics (my perception at least) so I’m not totally surprised. And while the “magic” may apply to the simplicity of their front end implementation, that’s unfortunately not the same as a magical user experience where in 2020 I do expect a more fluid feel.

It’s quite apparent that often it’s just replacing one HTML block with another without too much thought about transitions.

From the twitter feed: “React is so 2019. HTML + minimum JS is 2020”

Ok. Just as long as you don’t get stuck in 2010 :stuck_out_tongue:

Something like a web email-client really lends itself perfectly to a pure client side JavaScript application. Use the browser’s cache facilities to cache the client side javascript and save server resources by avoiding server side rendering. You don’t care that much about initial load time. Or search engine visibility.

Seems to me that the proof is in the pudding wrt their stack, but it’s probably not what they wanted to prove. I would take a well tuned React SPA over this any day of the week.

Which was in a thread about this tweet:

https://mobile.twitter.com/dhh/status/1275901955995385856

What are your thoughts? Have you changed your mind about SPAs? Always been a fan? Or been a fan and now moving towards “minimal JS” or SSR solutions?

Most Liked

SmithyTT

SmithyTT

DHH has got it back to front. HTML + minimal JS was a thing when SPA frameworks were in their infancy (bloated slow trash) but things are very different now. The concerns raised in the HN and elixirF thread are valid, just compare the best React apps to the best HTML + minimal JS apps to see for yourself.

React apps: Facebook - Instagram - WhatsApp - Airbnb - Discord
Angular apps: Gmail - PayPal - GitHub Community - Indiegogo - Microsoft Office (web)
VueJS apps: - Gitlab - Chess.com - Netlify

HTML + minimal JS apps: BaseCamp? Hey?

:wink:

SmithyTT

SmithyTT

Smaller teams can absolutely achieve similar. algoexpert.io is a nice example. A React app with TypeScript and a Go backend by a two person team.

The SPA scene is gargantuan now. Out of the top 3 (React, Angular, Vue) Vue is the easiest to learn and what you learn there will not be wasted if you move to React or elsewhere later. Svelte is even easier but has some ways to go.

If you are basing your opinion on what SPAs and these frameworks used to be like, give them another look—you might be surprised by what they can do and how much you end up liking them.

AstonJ

AstonJ

In what way?

Ok you’ve convinced me to give them a closer look! :blush: I had another look at Discord and it’s come a long way since I first checked it out (or what I remember of it anyway) - it’s pretty slick!! They don’t have huge team either IIRC.

Do you recommend any of the frameworks in particular and could you recommend some learning resources please?

I think I’m leaning towards giving Svelte a go - there’s some decent interest here on the forum and I like that it’s essentially a variant language that compiles to JS, which, from what I’ve seen anyway, makes for a more interesting/pleasant developer experience. I sometimes think that in the JS world newer can potentially be better because there’s so much in JS that needs fixing :laughing:

Thanks for your input in this thread :+1:

Where Next?

Popular Frontend topics Top

malloryerik
Any thoughts on Svelte? Svelte is a radical new approach to building user interfaces. Whereas traditional frameworks like React and Vue...
New
AstonJ
Sprinkles of JS, or full frontend frameworks? What do you use and why?
New
AstonJ
Inspired by @dbernheisel’s post here, which CSS framework do you use and why?
New
kokolegorille
Hello everyone, Does anybody uses Web Components in 2020? It’s quite old, but recently it seems to have some kind of revival. I have be...
New
New
New
First poster: bot
hlang in 30 Seconds hlang (the h language) is a revolutionary new use of WebAssembly that enables single-paridigm programming without any...
New
XSukhpreet
My Favorite tool is figma, It helps a lot in designing .
New
AstonJ
Was just curious to see if any were around, found this one: I got 51/100: Not sure if it was meant to buy I am sure at times the b...
New
Reinis
For the last few months I’ve been (re)-learning vanilla CSS. Initially I did not ‘get’ how to structure CSS to take advantage of the ‘cas...
New

Other popular topics Top

DevotionGeo
I know that these benchmarks might not be the exact picture of real-world scenario, but still I expect a Rust web framework performing a ...
New
Exadra37
Please tell us what is your preferred monitor setup for programming(not gaming) and why you have chosen it. Does your monitor have eye p...
New
AstonJ
poll poll Be sure to check out @Dusty’s article posted here: An Introduction to Alternative Keyboard Layouts It’s one of the best write-...
New
AstonJ
In case anyone else is wondering why Ruby 3 doesn’t show when you do asdf list-all ruby :man_facepalming: do this first: asdf plugin-upd...
New
PragmaticBookshelf
Learn different ways of writing concurrent code in Elixir and increase your application's performance, without sacrificing scalability or...
New
PragmaticBookshelf
Author Spotlight Jamis Buck @jamis This month, we have the pleasure of spotlighting author Jamis Buck, who has written Mazes for Prog...
New
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
PragmaticBookshelf
Leverage Elixir and the Nx ecosystem to build intelligent applications that solve real-world problems in computer vision, natural languag...
New
PragmaticBookshelf
Fight complexity and reclaim the original spirit of agility by learning to simplify how you develop software. The result: a more humane a...
New