apputveckling • webbutveckling

Modern app-och webbutveckling med Strapi | Albin Jaldevik, utvecklare i Östergötland, har varit med och utvecklat en av de största webbplattformarna i Strapi.

•••
calendar_today 2021-02-08 person Albin Jaldevik
Modern app-och webbutveckling med Strapi | Albin Jaldevik, utvecklare i Östergötland, har varit med och utvecklat en av de största webbplattformarna i Strapi.

Strapi är ett modernt open source, headless content management system (CMS) baserat på Node.js som ger utvecklare en stor frihet att skapa skräddarsydda mobil-och webb applikationer. Samtidigt kan administratörer publicera, uppdatera och skapa olika typer av innehåll för sin applikation på ett mycket effektivt sätt genom Strapi.

En av våra vassa utvecklare i Östergötland, Albin Jaldevik, har varit en del av teamet som har utvecklat place2place.se och har stor erfarenhet av just Strapi från projektet.

Med tanke på att Strapi är ett ytterst modernt och relativt nytt ramverk så kan vi med stor säkerhet säga att vi antagligen har skapat en av de största webbapplikationerna med Strapi. Detta ligger i linje med vår vision om att ständigt ligga i framkant när det kommer till att använda moderna, innovativa, men ändå etablerade teknologier och ramverk i våra utvecklingsprojekt.

Nedan får ni bland annat veta mer om:

  • Albin Jaldevik, och hans roll som utvecklare på We Know IT och på projektet place2place.se.
  • Fördelarna med ett headless CMS.
  • Strapi och Albins erfarenheter av ramverket.



Albin Jaldevik, webbutvecklare i Östergötland.

Jag heter Albin Jaldevik och studerar till vardags tredje året på civilingenjörsprogrammet inom Industriell Ekonomi på Linköpings Universitet. Vid sidan om studierna arbetar jag som utvecklare på We Know IT. Under 2020 fick jag privilegiet att vara med i teamet som utvecklade den första versionen av den moderna e-handelsplattformen place2place.se. Projektet var utmanande men med effektivitet, uthållighet och bra teamwork lyckades via leverera en grym produkt. Det finns många lärdomar från projektet men en av de mer intressanta är att det var första gången vi använde oss av det toppmoderna ramverket Strapi. Syftet med denna artikel är därför att sprida lärdomarna om Strapi som underlag för framtida utvecklare som är intresserade av ramverket.

Vad är ett CMS (Content Management System) som Strapi?

Det finns ofta ett behov för något typ av gränssnitt för att till exempel enkelt kunna byta ut texter på en hemsida eller i en app. Detta gränssnitt kan såklart utvecklas från grunden specifikt för varje applikation men risken är att man då slösar resurser genom att uppfinna hjulet igen. För att spara resurser kan istället ett externt utvecklat gränssnitt användas men detta är inte alltid helt lätt då det kan vara svårt att lita på att det externa kommer kunna uppfylla nuvarande och framtida krav. Strapi är i grunden ett CMS (Content Management System) och är därför främst en potentiell lösning till problematiken ovan.

Varför välja Strapi som CMS för webbutveckling?

Det finns många olika CMS lösningar på marknaden men Strapi differentierar sig genom en rad egenskaper:

Fördelarna med ett headless CMS.

För det första är Strapi en headless CMS vilket innebär att den fokuserar på att sköta databasen och därför inte har några preferenser för hur till exempel frontenden opererar. I praktiken realiseras detta genom att Strapis gränssnitt utåt främst är ett RESTful (eller GraphQL) API som godtycklig annan applikation kan interagera med. På andra sidan av spektrumet finns till exempel Wordpress som erbjuder en komplett lösning med både admingränssnitt och frontend. Vad som är bäst skiljer sig såklart från fall till fall men personligen prefererar jag generellt headless då det erbjuder större flexibilitet och ligger mer i linje med modern modulär arkitektur.

Fördelar med open-source & prissättning.

Strapi är även open-source och i grunden gratis att använda vilket är fördelaktigt. Anledningen till att vi benämner det som “i grunden gratis” är för att Strapi även erbjuder premiumversioner med extra funktionalitet. Det positiva är dock att dessa premiumversioner i nuläget erbjuder förvånansvärt lite extra vilket innebär att gratisversionen räcker till i en majoritet av fallen. Den enda anledningen till att betala för Strapi i nuläget är om det finns ett behov av att olika användare ska ha olika behörighetsnivåer i administrationgränssnittet vilket just nu kostar $348 / år. Informationen i denna paragraf kan såklart komma att ändras men just nu erbjuder iallafall Strapi ytterst mycket för relativt lite.

Effektiv och flexibel app-och webbutveckling med Strapi.

Sist men inte minst är Strapi väldigt flexibelt. Strapi erbjuder ett grafiskt gränssnitt för att till exempel modellera databasen men något extremt fördelaktigt är att det alltid går att följa allt som sker i kodform. Det går därför till och med att se Strapi som en kodgenerator som snabbar upp standardiserade uppgifter. Strapi genererar Javascript kod som körs i node.js och använder sig av ramverket Koa (liknar Express). Dessa teknikval lämpar sig enligt mig väl då det känns modernt att arbeta i, och Javascript är något många utvecklare är bekväma med. Det är även relativt hög sannolikhet att både backenden och frontenden blir Javascript-baserade vilket kan ha vissa synergier. Att allt finns tillgängligt i kod gör att det är relativt enkelt för en utvecklare att implementera skräddarsydda lösningar vilket ofta är nödvändigt. Strapi är även self-hosted vilket också kan erbjuda ökad flexibilitet.

Nedan finner ni "Star History" för Strapi-repot på GitHub - där det är tydligt att Strapi är ett ramverk som växer snabbt i popularitet bland utvecklare:

strapi star history från GitHub

Att tänka på vid användning av Strapi.

Precis som med det mesta har även Strapi nackdelar. Vissa av dessa kommer potentiellt lösas i framtiden men är ändå bra att ha i åtanke då detta kan dröja. Ett tips för att få en översikt över saker som Strapi just nu saknar är att ta en titt på dess product roadmap vilket är en anslagstavla där användare kan uttrycka sina önskemål för framtida funktionaliteten.

En av de just nu mest önskade sakerna av Strapis användare är att det ska få inbyggt stöd för Typescript. Detta är något jag verkligen håller med om då det kan vara svårt att bygga mer robust backend funktionalitet i Javascript. Detta är såklart delvis upp till personliga preferenser men det är iallafall bra att ha i åtanke. En liten not här är att det ska vara möjligt att till exempel följa denna artikel för att få till Typescript i Strapi men det är relativt bökigt.

En annan nackdel med Strapi är att det finns lite buggar här och där. Ingen av buggarna var kritiska men det märks, särskilt när man utmanar systemet, att det skulle behöva några år till på nacken för att vara fullt ut moget. Ett exempel på en “bugg” är att om man anger ett fält i databasen som obligatoriskt och det redan finns entiteter i databasen som inte uppfyller detta kraschar Strapi och går inte att starta igen. Detta är ju kanske inte så konstigt men ett fullt moget system hade troligtvis uppmärksammat detta och satt stopp för en eventuell krasch.

En sista nackdel är att det precis som de flesta ramverken kan ta lite tid att sätta sig in i hur Strapi fungerar. Dokumentationen är välgjord men kan ibland vara lite tunn när avancerad skräddarsydd funktionalitet ska göras och allt finns inte på Stack Overflow heller. Lösningen till detta var ibland att bara testa sig runt för att förstå hur saker fungerar vilket både kan vara frustrerande och givande.

Avslutande ord.

Sammanfattningsvis är Strapi ett fantastiskt ramverk som effektiviserade och underlättade för utvecklandet av hemsidan för place2place. Det har såklart sina brister och passar inte för alla projekt men det är ett definitivt ett alternativ att se över när ett administrationsgränssnitt är nödvändigt.

Vill ni också få hjälp med att skapa en mobilapp eller hemsida som är lätt att administrera?

Är er hemsida eller app omständig att administrera eller vill ni bygga en ny modern och väldesignad digital plattform från grunden för er verksamhet? Kontakta oss på hello@weknowit.se eller läs mer om vår webbutveckling på vår hemsida!

Dela detta: