Min praktikerfarenhet med Nidhogg – från idé till leverans
2025-04-10
&w=3840&q=75)
Under min praktik på Will & Skill har jag fått arbeta med Nidhogg, ett projekt som har utmanat mig tekniskt, utvecklat mina färdigheter och gett mig en djupare förståelse för bland annat headless CMS, prestandaoptimering och Tailwind v.4. Projektet har inneburit att sätta upp en webbplats från grunden – från design till färdig produkt. Nidhogg har varit ett projekt där jag har byggt på med många nya erfarenheter. Bland annat var det första gången jag levererade en produkt till en faktisk kund. Bara det i sig är en viktig milstolpe i min utveckling!
Utmaningar och insikter
Den största utmaningen, men samtidigt den mest lärorika delen av projektet, var att jag för första gången höll en utbildning i Storyblok för kunden. Att tala inför en grupp har alltid varit en personlig utmaning, och jag kände en viss nervositet inför uppgiften. Trots detta var det en värdefull erfarenhet som gav mig insikter i hur jag kan strukturera och förmedla information mer pedagogiskt i framtiden. Jag identifierade även förbättringsområden, såsom hur jag kan hantera nervositet och anpassa mina anteckningar så att jag lättare kan stödja mig på dem vid behov. Sammantaget var det en lärorik process som gav mig värdefull kunskap inför framtida presentationer.
Integration mellan Storyblok och Next.js
En av de mest smidiga delarna av Nidhogg-projektet var att arbeta med Storyblok som headless CMS i kombination med Next.js 15. Integration mellan dessa två teknologier var smidig tack vare Storybloks API-baserade approach och deras officiella React SDK. En av de största fördelarna var hur enkelt det var att hämta och hantera dynamiskt innehåll från Storyblok.
Däremot stötte jag på utmaningar kopplade till cache-beteendet. Genomgående under projektet kämpade jag med att få cachehanteringen att fungera som önskat, vilket ledde till onödiga laddningar av gammalt innehåll. Lösningen låg i en effektivare användning av Next.js revalidatePath, som vi kopplade till webhooks i Storyblok. Detta var något min handledare Christopher kom fram till, och när jag fick se den slutgiltiga lösningen insåg jag att vi från början förmodligen hade överkomplicerat implementationen. Den färdiga lösningen var betydligt kortare och tydligare – en viktig lärdom för mig när det gäller att tänka enklare och mer modulärt.
Därtill var en annan ny del för mig att förstå hur Next.js hanterar statiska och dynamiska sidor. Eftersom Next.js stödjer både SSG (Static Site Generation) och ISR (Incremental Static Regeneration), behövde vi välja den bästa strategin för att balansera prestanda och flexibilitet. Dessa koncept var tidigare okända för mig, men nu har jag fått en djupare förståelse för för- och nackdelarna med olika renderingsstrategier.
Designprocessen – en utmaning i sig
I mina tidigare projekt har jag inte lagt lika mycket tid på planeringsfasen, särskilt inte på designstadiet. Jag har varit van vid att arbeta utifrån en lista med funktionella krav och sedan bygga designen "on the go". Men i detta projekt behövde jag först skapa en design i Figma, vilket var en ny utmaning för mig.
Att sätta en design innan utvecklingsfasen påbörjats var svårt – inte minst för att jag hade en begränsad tidsram och att Figma inte är mitt starkaste verktyg. Jag insåg att designprocessen kräver lika mycket planering som själva utvecklingen. Jag känner dock att jag hittade en rimlig balans utifrån projektets behov och förutsättningar.
Vad jag tar med mig
Att få arbeta med Nidhogg-projektet har varit en fantastisk möjlighet att praktiskt tillämpa och utöka mina kunskaper inom Next.js, Tailwind och Storyblok. Men det kanske viktigaste jag tar med mig är inte bara teknisk kunskap, utan även insikter i hur jag strukturerar, planerar och prioriterar i ett skarpt projekt.
Jag har blivit mer medveten om vikten av att ha en tydlig plan innan jag sätter igång med kodandet, hur jag ska hantera stressade situationer och hur jag kan arbeta mer metodiskt. Jag har också reflekterat över mina egna styrkor och svagheter, vilket kommer hjälpa mig att fortsätta utvecklas som utvecklare.
Det har varit en otroligt lärorik resa, och jag ser fram emot att ta med mig dessa erfarenheter in i framtida projekt.