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

andresriveros
I’m very interested in the Stimulus reflex approach for frontend development: It is a great way to integrate action cable very easily ...
New
AstonJ
Inspired by @dbernheisel’s post here, which CSS framework do you use and why?
New
New
First poster: bot
Why do ARM chips have an instruction with Javascript in the name (FJCVTZS)?. FJCVTZS is “Floating-point Javascript Convert to Signed fix...
New
MikhailPertsev
Finally, I am going to enhance my css skills! I have always somehow ignored this, but now I finally decided to understand animations, tr...
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
pippo12
Hello, I hope you have some tips for me. I am looking for further education including certificates (or similar) which are also accepted ...
New
ClaudiaGiv
Hi all, I recently started working with Svelte and created a small app with SvelteKit in order to understand better the framework. I hav...
New
Fl4m3Ph03n1x
Background I am trying to recycle myself and improve my knowledge about Phoenix. With 1.7 now out, this seems like a good opportunity. ...
New
guaip
I’ve been doing front-end as a freelancer for 15 years. I have some PHP background and still do some backend stuff to this day, but I spe...
New

Other popular topics Top

PragmaticBookshelf
Andy and Dave wrote this influential, classic book to help their clients create better software and rediscover the joy of coding. Almost ...
New
siddhant3030
I’m thinking of buying a monitor that I can rotate to use as a vertical monitor? Also, I want to know if someone is using it for program...
New
AstonJ
I ended up cancelling my Moonlander order as I think it’s just going to be a bit too bulky for me. I think the Planck and the Preonic (o...
New
AstonJ
If you get Can't find emacs in your PATH when trying to install Doom Emacs on your Mac you… just… need to install Emacs first! :lol: bre...
New
PragmaticBookshelf
Author Spotlight: Peter Ullrich @PJUllrich Data is at the core of every business, but it is useless if nobody can access and analyze ...
New
sir.laksmana_wenk
I’m able to do the “artistic” part of game-development; character designing/modeling, music, environment modeling, etc. However, I don’t...
New
AstonJ
Curious what kind of results others are getting, I think actually prefer the 7B model to the 32B model, not only is it faster but the qua...
New
RobertRichards
Hair Salon Games for Girls Fun Girls Hair Saloon game is mainly developed for kids. This game allows users to select virtual avatars to ...
New
PragmaticBookshelf
A concise guide to MySQL 9 database administration, covering fundamental concepts, techniques, and best practices. Neil Smyth MySQL...
New
xiji2646-netizen
Woke up to this today: Claude Code’s complete source code exposed via npm source map. Not a snippet. All 512,000 lines. 1,900 TypeScript ...
New