Her er den hippeste stacken i 2025

Theo Browne sin hippeste stack og hvorfor React Transitions kanskje suger, i ukas ForrigeUke.

En tilfeldig utvalgt hipster, som antakelig vibbekoder fire apper parallelt fra skogskontoret, med den aller hippeste stacken.
Publisert

<ForrigeUke />

ForrigeUke er en artikkelserie som oppsummerer hva som skjedde i frontend-verden i uka som var. Innleggene skrives av frontend-faggruppene til Bekk, og kan også følges på bekk.no/fag.

Dette var uka for capser med inspirerende motiv 🧢, å si hey til eldre 👴 – og 1228 ting skjedde i frontend-verdenen.

Den hippeste stacken 🔥

Å følge med på alt det nye som kommer ut i frontend-verden er en fulltidsjobb i seg selv. Heldigvis har vi folk som jobber med det også, tech-fluensere! 

Theo Browne, eller kanskje mer kjent som YouTuberen Theo t3.gg, har denne uka delt om hvordan stacken hans ser ut om dagen.

Starten av karrieren til Theo som YouTuber var at han viste frem tech-stacken han brukte for å lage produkter, en stack han kalte create-t3-app. Det er nå over 3 år siden, og mye har skjedd siden den gang, så Theo har lagd en oppfølger til denne videon hvor han viser frem hva han bruker for å lage produkter i dag. 

Ikke overraskende er det fortsatt React som er the way to go i 2025 også, men utover det var det en del interessante teknologier som blir nevnt, som Convex for database og API-laget, BetterAuthClerk og WorkOS for autentisering/autorisering, Autumn for enklere Stripe-oppsett, og mye annet snacks! 

Er du interessert i å se hvordan den hippeste stacken ser ut i 2025? Ta en titt da vel! 👇

React Transitions suger 😡

Det mener i alle fall Ryan Florence, en av forfatterne bak react-router og Remix, i en tråd han startet på X forrige uke.

Transitions i React er en av de nyere tilskuddene til React som lar deg utføre handlinger og oppdatere state i bakgrunnen uten å blokkere brukerinteraksjon på siden din. Når du starter en transition så blir først resultatet vist frem til brukeren når alle andre transitions også blir ferdig. Bruker du for eksempel transitions for å legge flere produkter i handlekurven samtidig så vil altså brukeren kun se resultatet når alle produktene er blitt ferdig med å legges i handlekurven. 

Dette kan være et nyttig triks for å få bedre ytelse i appen din, men også for å bedre brukeropplevelse, da brukeren slipper en haug av blinkende oppdateringer mens hvert produkt legges inn.

Men, transitions kan til tider være litt vanskelig å forstå, og ikke alle er enige i designvalgene som er gjort av React-teamet når det kommer til hvordan transitions skal fungere. I den overnevnte tråden på X så klager Ryan høylytt på hvor kjipt transitions er å bruke:

«async transitions suck and lock up the whole screen for every interaction (entanglement), aren't interruptible (lazily just queue everything up for imagined "correctness"), and exploded the API with even more "hooks that return and change state"»

Rick Hanlon fra React-teamet engasjerer seg i tråden og jeg synes han svarer godt for valgene bak transitions, og viser frem bedre eksempler på hvordan de skal brukes på en ordentlig måte. Tråden gir god innsikt i hvordan de største påvirkerne til React og økosystem rundt tenker om de nyeste funksjonene og retningen. Det blir spennende å se om Ryan Florence og resten av Remix-teamet blir å løse denne problemstillingen på en annen måte i React Router og Remix.

Selv om jeg selv er veldig enig i designvalgene bak transitions synes jeg Ryan har et godt poeng i at det er kjipt at transitions "låser" andre transition-baserte interaksjoner, uten noen god måte å stoppe eller gruppere de på. I praksis derimot opplever jeg ikke dette som et problem. Jeg har lagd flere produkter som benytter seg tungt av asynkrone transitions og har fortsatt til gode å se noe annet enn fordeler i mine produkter. Jeg synes Ricky sier det godt:

«[...] if we shipped parallel transitions before grouping transitions, we’d be siting here still talking about how transitions suck.And if we waited until we shipped both we’d probably still be on React 17.»

Det var alt for denne gang. Vi ses igjen neste uke! 👋

Powered by Labrador CMS