Statiske websites er det nye hotte indenfor webudvikling, og det er med god grund. Hver dag ser jeg flere og flere der vælger at konvertere deres traditionelle website til at være et statisk website.
Først og fremmest, så lad os lige tage et kig på hvad der menes med statiske websites. For det første betyder det ikke at det er statisk, og ikke har nogle former for dynamisk indhold. Kort sagt betyder det at dit website består af pre-bygget filer, som HTML, CSS og Javascript filer som der bliver serveret fra en server. Du har måske også hørt termet JAMstack før.
JAMstack står for: Javascript, API’s & Markup. Det som karakteriserer en JAMstack applikation er at det er lettere at skalere og det medfører nærmest ingen dev-ops omkostninger, samt er de vanvittigt hurtige, men mere om det senere i indlægget. En typisk anden fordel der er ved JAMstack er at en masse af det funktionalitet som traditionelt set blev håndteret af backenden er blevet lagt ud på klienten (browseren), hvilket fra ens webudvikler’s synspunkt letter arbejdsgangen.
Dynamiske websites er hvor en server håndterer indkommende requests hvorefter serveren genererer det som der skal renderes i klienten (browseren).
Dynamisk - filer der bliver dynamisk genereret af servere og bliver dynamisk leveret som ogs betyder serveren skal lave en del arbejde.
Statisk - filer der er pre-genereret og bliver leveret af serveren uden dynamisk generering, hvilket betyder serveren ikke skal arbejde nær så meget.
Jeg håber det giver mening, ellers så smid mig endelig en kommentar nedenfor.
Med statiske websites behøver du ikke selv en server som du administrere, eller skrive kode til som du vil skulle ved fx en IIS eller Apache server. IIS afvikler kode som er ASP.NET (C#), Apache afvikler kode som er PHP. Alt hvad du behøver er en server til at levere statiske filer, noget som alle servere kan gøre. Personligt selv benytter jeg Netlify. Det er nemt at arbejde med, og kan kun anbefales på det kraftigste herfra.
Og blot for at slå fast, så kan statiske websites også godt have dynamisk indhold. Mit eget website som du er på lige nu er et statisk website, men alt indhold kommer stadig fra et CMS (Contentful). Hver gang jeg publicerer nyt indhold til mit website fra CMS, bliver der sat en proces i gang som genererer statiske filer med det nye indhold. Det er ikke dynamisk som du kender det, men giver det samme i sidste ende. Dette er blot en af de fordele som statiske websites har. Dette skal jeg nok vende tilbage til senere.
Nå, men tilbage til hvad artiklen skal handle om, netop gode grunde til at statiske website er en god idé.
Vi udviklere prøver altid at forbedre hastigheden på de løsninger vi laver. En hurtig hjemmeside giver en markant bedre brugeroplevelse. Gode brugeroplevelser er noget både vi som udviklere kan lide, men også slutbrugeren. Statiske websites har den fordel over dynamiske websites, kort sagt, bliver TTFB (Time to first byte) forbedret, hvilket betyder der går kortere tid fra den første anmodning til at browseren modtager de første bytes.
Dynamisk indhold skal først genereres, hvilket tager tid, hvorfor statiske sites har den fordel over dynamiske websites. Her er der nemlig ingen forespørgsler til databaser m.v
Som skrevet tidligere, statiske websites har ikke brug for en server som du selv skal administrere. Der skal blot bruges en server/host (oftest vælger man en cloud løsning), der kan levere disse filer. Fordelen ved dette, er også at statiske filer er nemme at duplikere for en server. Benytter du en server/host som Netlify, vil det blandt andet også betyde at, hvis dit site får en besøgende fra fx. USA, kan dit website blive leveret fra et amerikansk data-center og server i stedet for en server i Danmark, hvilket i sidste ende betyder hurtigere svartider og et hurtigere website for slutbrugeren.
Som vi netop lige har været inde på har hosting af dit website meget med hastighed at gøre. Fordelen med statiske websites er at du ikke er afhængig af en server der skal understøtte et specifikt sprog. Dette kan blive serveret fra hvilken som helst server da det som nævnt, blot er statiske filer, og de kan blive leveret meget hurtigt til klienten.
For at summere op. Du slipper altså for servere der skal være opsatte på bestemte måder, som skal understøtte specifikke programmeringssprog, og du slipper for vedligeholdelse. Det er ofte her man sparer meget på det dev-ops som jeg var inde på tidligere.
De bedste cloud-udbydere har skræddersyet pakker til betjening af statiske websites. Nedenfor kan se et par af de bedste udbydere som findes:
En af de mange ulemper ved selv at vedligeholde servere er at de konstant skal opdateres for blandt andet at lukke sikkerhedshuller for at forhindre hacker-angreb. Det betyder der skal afsættes timer og økonomi til vedligeholdelse.
Med statiske websites behøver du ikke at bekymre dig om dette. Dette bliver klaret af den udbyder du vælger. Det er nemlig dem som klarer alt server-arbejdet. Dvs, slut med opdateringer og patches til egne servere. Den server dit website bliver leveret fra er nemlig altid up-to-date.
Statiske websites har også del fordel at udvikler-oplevelsen bliver markant bedre. Arbejdsgangene bliver hurtigere og mere gnidringsfri, og er blot en fornøjelse at arbejde med.
I mange scenarier vil en typisk arbejdsgang se sådan ud når en udvikler har med et statisk website at gøre:
Vælg hostudbyder (Netlify/Heruku osv) og opret et projekt.
En helt og aldeles nem og gnidningsfri proces. En sand fornøjelse hvis jeg selv skal sige det.
Ofte vil udvikleren benytte et framework som gør processen endnu lettere. Heriblandt kan der nævnes frameworks som Nuxt/Next/Gatsby blot at at nævne et par stykker.
Med enhver ny teknologi/framework vil der også være ulemper, og statiske websites har også sine ulemper. Disse skal man selvfølgelig tage højde og vurdere hvad disse ulemper betyder. Nogle af de få ulemper der ved statiske websites, som dog er meget relevante er:
Dit site skal bygges på ny, hver gang der skal udgives nyt indhold. Formularer og andre typer af dynamisk funktionalitet (ikke alle typer) som kan være afhængig af kommunikation med en database, kan være lidt tricky at håndtere. Ønsker du CMS eller anden backend funktionalitet er du afhængig af 3. parts systemer, såsom Contentful, Sanity, Firestore eller andet.
Med dette i overvejelserne vil jeg dog personligt selv ikke være bange for at vælge statiske websites. Det passer super godt til de fleste projekter, som informationswebsites, corporate websites o.lign. Med det sagt, så kommer det an på krav, funktionalitet m.m, som alt andet. Jo mere man ved om projektet og krav til funktionalitet, jo bedre kan man træffe de korrekt beslutninger.
Hvad er dine erfaringer med statiske websites? Har du hørt om det, og har du brugt det ?