As usual this isn't a new idea, but sometimes it just takes someone to put a name on it, and who better than @richharris in his recent talk at JamStack conf:
DanThis hits the nail on the head. And is 100% matching our long term thinking. Client-side-only is not sustainable. We need to move more stuff to the server, but without sacrificing seamless composition of interactive pieces. twitter.com/tmcw/status/12…22:39 PM - 10 May 2020Tom MacWright @tmcwokay i mulled over this idea in my head for a month and then just sat down and wrote this in one pass without switching tabs so here it is, raw and extra spicy: "Second guessing the modern web" https://t.co/NWt1oYF54M
I've written countless articles about the technologies around these topics but maybe it's time to step back and really appreciate what this means for the average web developer.
Well not exactly. Every time you touch this topic some Rails developer jumps out of the back of the crowd to tell us DHH had this all figured out in 2005. And honestly, that developer would probably wish we spent our time building time machines rather than move the web forward. But that's not why we are here.
DanA “disappearing framework” is certainly cool and worth striving for. But it doesn’t help much when the framework is 5% of your code. Say “disappearing app” and I’m listening.22:57 PM - 10 May 2020
These solutions also have something else in common. They tend to be used as what is being referred to as Multi Page Apps(MPAs). Yes your next-gen static site generator(Next, Nuxt, Gatsby, SvelteKit, VuePress, VitePress, SolidStart) can generate multiple pages but it is not this. Your SPA framework still treats each page as part of the whole and still can't isolate the pieces. Before you say but what about ____? If the framework isn't in the list above and it was created before 2022, 99% chance it is not doing this.
Aren't MPAs bad? Surprisingly not really so much these days. There are a lot of technologies and the browsers themselves that make these experiences quite nice. Sure there are certain things you can only do when you can preserve the browser state through navigation but for many things they are kind of great. See @swyx' Svelte for Sites, React for Apps. This article is actually more a case for Elder than Svelte and it applies to all frameworks above.
Misko HeveryThanks! Glad to see that you understand the difference. ♥️ twitter.com/RyanCarniato/s…19:42 PM - 11 Nov 2021Ryan Carniato @RyanCarniatoUnpopular opinion: There is currently only one #transitionalapps framework I'm aware of in existence today, @QwikDev. And any attempts of trying to paint SvelteKit or Next (or Solid) as somehow different than any SPA is basically hollow marketing.
Matthew Phillips@matthewcpTransitional apps is 💯 an attempt to rebrand SPA given the poor reputation it has been building the last few years. Don't let anyone fool you, these are the same old SPAs you've grown to hate. twitter.com/RyanCarniato/s…20:47 PM - 11 Nov 2021Ryan Carniato @RyanCarniatoUnpopular opinion: There is currently only one #transitionalapps framework I'm aware of in existence today, @QwikDev. And any attempts of trying to paint SvelteKit or Next (or Solid) as somehow different than any SPA is basically hollow marketing.
Dylan PierceyBefore anyone brings up #transitionalapps or Svelte Kit, yes they are innovating here two. It's nice that you have have static pages w/o JS along side dynamic pages. Although as @Rich_Harris mentioned in his recent talk MPA/SPA is a spectrum and that approach seems a bit binary.15:16 PM - 15 Oct 2021
Now there is no ill intent here. We're all fighting different battles. Rich is rallying the troops to fend off the would-be time travelers. I'm just standing up for the little guy. Maybe this is a technical distinction that doesn't mean anything. But it does to some of us.
Rich is doing a great service to the community on a whole to bring awareness. He didn't need to include or even mention these other tools yet he did because he believes in where things are going. This response is only concerned with preserving identity and allowing these frameworks to find their voice.
Didn't I just say SPAs are dead, and MPAs are the future. Not quite. Dan Abramov had it right when he said the future is hybrid. Hell, Rich had it right when he suggested in an ideal future there is no need for MPAs.
Rich Harris@rich_harris@JakeDohm @brianleroux @jaffathecake @barelyreaper @BenLesh @AdamRackis Exactly - and in the default case a great SPA should also _be_ an MPA (insofar as it's SSR'd etc) so the real question isn't even 'what can MPA do that SPA can't?', it's 'does adding SPA capabilities have intrinsic downsides?'14:37 PM - 02 Sep 2021
It's just that future is not something that is here yet. There are currently unreconciled downsides alongside the numerous benefits. Which is why I dislike the term Transitional Apps now because it jumps the gun a bit. When we have truly Transitional Apps it'd be cool to market them as such. But I didn't coin the term so that isn't my call.
I want to take moment to talk about Qwik again (and this is also relevant to the next version of Marko). These frameworks support automatic independent hydration without manual islands, and hydrating children before for their parent. They can deliver experiences with all the benefits of Multi-Page apps and scale to Single page experiences seamlessly.
That is a Transitional App in my view. An application that literally can transition from a minimal page to an interactive client navigated experience on demand. This is a unique challenge with a whole slew of new tradeoffs. You don't get to pick up an existing framework and just do this. Maybe this deserves a new term. Then next year we can debate the merits of Transitional Apps vs Transformative Apps. Is that the better outcome?
I might generally be pessimistic about framework agnostic endeavors but I'm all for celebrating our differences. Each framework is different and that's a good thing.