Det går nesten ikke en dag i frontend-verdenen uten at det dukker opp ett eller annet nytt rammeverk. Spesielt innenfor React har det skjedd mye de siste par-tre årene, med mange nye React-baserte rammeverk som prøver å løse utfordringene til frontendutviklere på nye måter.
Ett av React-rammeverkene som har fått størst oppmerksomhet i det siste, er Remix. Ifølge den siste State of JS-undersøkelsen svarer 57 prosent av de spurte at dette er et rammeverk de ønsker å lære seg.
Kristofer Giltvedt Selbekk er fagsjef i Bekk, og en som virkelig brenner for Remix. Vi har bedt han forklare hva Remix er for noe, og hvorfor du eventuelt skal bruke det.
Kristofer, hvordan ville du forklart hva Remix er for en fersk utvikler?
Remix er et rammeverk som løser en god del vanskelige utfordringer med React, som man vanligvis må løse selv.
Remix tar seg av routing, server-side rendering, code splitting og caching av data. Det finnes andre rammeverk som prøver å løse det samme, men Remix differensierer seg ved å basere seg utelukkende på webstandarder og hva webplattformen allerede tilbyr oss.
«Remix er laget av noen av de største profilene i React-verdenen.»
Remix er laget av noen av de største profilene i React-verdenen – inkludert gutta bak React Router (Ryan Florence, Michael Jackson) og Kent C. Dodds. De har fått veldig stor oppmerksomhet gjennom sine sosiale medier, og har også hatt noen skikkelig vellagde demos på forskjellige konferanser rundt om i verden.
Remix kom ut i sin første produksjonsklare versjon i 2022, som nok gjør at mange prøver det for første gang nå.
Før kunne man få tilgang til Remix mot betaling, men etter at Remix fikk ordnet seg litt funding (og senere ble kjøpt opp av Shopify), ble det helt vanlig open source igjen.
JavaScript er det minst likte språket - men også blant de mest likte
Hva er de største fordelene med Remix fremfor andre rammeverk?
Remix og Next.js er to jevngode utfordrere, som bytter litt på å være det beste valget fra versjon til versjon. Men der Next.js støtter seg veldig på plattformen Vercel (de som lager Next.js) lager, oppleves Remix som mye mer åpent tilgjengelig.
Remix er heller ikke bundet direkte til Node-plattformen – du kan deploye Remix til Deno-servere eller til og med såkalte Cloudflare Workers – miniservere som kjører helt i kanten av nettverket til store CDN-tilbydere. Det betyr at serverkoden kjører mye nærmere brukeren enn du kan få til via Next.js.
«Den aller største fordelen med Remix er hvordan de prøver å holde seg til webstandardene.»
Den aller største fordelen med Remix i mitt hode er nok riktignok hvordan de prøver å holde seg til webstandardene, uten å finne opp noe API-er på toppen.
Jeg elsker salgspitchen deres – «Om du skal lære deg Remix, så kommer du til å bruke mer tid på MDN-dokumentasjonssidene enn i våre». Det sier litt om hvor mye de setter pris på den felles webplattformen vår, og hvordan de ønsker å utnytte den på best mulig måte.
Remix er et flott rammeverk for de fleste tilfeller, så jeg ville ikke tenkt at det er noen tilfeller der jeg ikke ville brukt Remix i dag. Spesielt om man er avhengig av å deploye til eksisterende ikke-Vercel infrastruktur, kan det være fint å bruke Remix.
Er det ingenting Remix ikke egner seg til?
Nei.
Men om man har mye Next.js-kompetanse allerede, så kan det være at Remix vil ha en litt større oppstartskostnad.
Forskjellene er små, og Next.js kan fort være et like godt (om ikke bedre) valg, gitt situasjonen man står i. Next.js har også et noe større økosystem rundt seg (med blant annet Auth.js), et større team bak seg og litt bedre dokumentasjon.
– React er et stort, stygt beist med tjue tusen måter å gjøre den samme tingen
Bruker dere Remix til noen prosjekter hos dere eller hos kundene deres?
Vi bruker Remix på endel forskjellige oppdrag, blant hos Vy og på den nye siden til Skisporet. Det ryktes også at den nye versjonen av Bekk.no skal implementeres i Remix, etter mye masing fra undertegnede.
Erfaringene fra de prosjektene vi har kjørt har vært veldig positive så langt, og vi ser frem til å anbefale det på andre fremtidige løsninger også.
Er det vanskelig å lære seg Remix?
Remix er enkelt å lære seg om man kan React. Det er noen konvensjoner man må huske på (loaders, actions, og så videre), og et par litt mer generelle konsepter, men ikke verre enn at man kommer seg veldig godt i gang på noen timer.
Det Remix gjør, er å tvinge deg til å forstå de grunnleggende byggeblokkene som webplattformen tilbyr deg. Du bør forstå hvordan cache-headers fungerer, og hvorfor de er nyttige. Du må forstå hvordan fetch-API-et fungerer, og hvordan du kan bruke det. Men når det mest fundamentale sitter, er det lite magi å sette seg inn i.
«Når det mest fundamentale sitter, er det lite magi å sette seg inn i.»
Remix har to veldig gode tutorials som tar deg gjennom alt fra en basic blogg til en mer avansert app med autentisering og databaser og hele sulamitten. Jeg lærte meg Remix «godt nok» gjennom å jobbe meg gjennom de to, samt å skrive om min egen webside til Remix.
Kent C. Dodds har også en fin guidet tour til Remix i dette Egghead-kurset, som også er å anbefale.
Rammeverk som ikke er veldig mye brukt har kanskje ikke et like stort økosystem rundt seg og et like stort community, som for eksempel Next.js. Noen tanker om det?
Fordelen med rammeverk er at man ikke er like avhengig av et stort økosystem som når man velger mellom React og Svelte. Det er fortsatt React i bunn, som gjør at du kan bruke alt React har å tilby av biblioteker og fokus.
Community-messig er faktisk Remix veldig flinke, både til å tilby hjelp via Discorden deres, og på forslag til forbedringer via Githuben deres. Det har i alle fall ikke blitt opplevd som en nedside av meg.