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
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.
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?
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.
Thereās no denying they are impressive, however how much is due to them being big teams with big budgets? Could they achieve something similar without SPAs/those frameworks? How much/less work would it entail?
Iām guessing out of all those Indiegogo and Chess.com has the most modest/more realistically sized teams⦠I wonder if @zarkostankovic has any thoughts about their experience (or can point us to some dev blogs about their experience with SPAs)
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.
Ok youāve convinced me to give them a closer look! 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
All component based so whichever you start off with will help you understand the core philosophy of the othersāthat you build reactive user interfaces by combining reusable components.
Do you recommend any of the frameworks in particular
This is dependent on your needs and taste. If you want the whole nine yards with everything built in try Angular. React comes leaner (reflected by it calling itself a library rather than a framework) but its large community has everything youāll need. Vue is somewhere in between. Narrow it down to two and begin learning them. Thisis the most optimal way to determine their suitability for your project and taste.
and could you recommend some learning resources please?
Seconding what Smithy is saying, they could have used React and material-ui or one of their premium ui-kits and ended up with a better product https://material-ui.com