
Ben je van plan om een software- of mobiele app voor je bedrijf te gaan maken? Je krijgt dan soms te horen dat het met jouw huidige tech stack niet mogelijk is om bepaalde functies aan je app toe te voegen of dat het door je tech stack komt dat je website zo traag is.
Als je dan eigenlijk geen idee hebt waar ze het over hebben, moet je dit artikel lezen. Hierin wordt uitgelegd wat een tech stack is, wat de verschillen en overeenkomsten zijn met een software stack, waarom die stack zo belangrijk is en hoe je de juiste stack kiest voor jouw bedrijf. Je vindt hier ook een voorbeeld van een social media gigant die zijn tech stack grondig heeft herzien om klantvriendelijker te worden.
Wat is een tech stack?
Een tech stack of technologiestack wordt ook wel een solution stack genoemd. Het is een verzameling technologieën die worden gebruikt om softwareapplicaties te bouwen en uit te voeren. De stack omvat de webframeworks, programmeertalen, servers, besturingssystemen, databases enzovoort die nodig zijn voor het ontwikkelen en uitvoeren van een webapplicatie of een mobiele app.
Stel, je hebt een webapplicatie (zoals een website) gemaakt met de programmeertaal Python en die wordt gehost op een Apache-webserver. Python en Apache zijn dan elementen van de tech stack van jouw website.
Twee onderdelen van een tech stack
Elke tech stack bestaat uit twee onderdelen:
- Client side (front-end): Dit zijn de componenten waarmee klanten rechtstreeks in aanraking komen of die ze op hun scherm te zien krijgen. Enkele voorbeelden van front-end technologieën zijn HTML, CSS en JavaScript. Deze worden respectievelijk gebruikt om de structuur van de website te ontwerpen, opmaakelementen toe te voegen en interactieve componenten te introduceren, zoals social media knoppen of animatieknoppen.
- Server side (back-end): Dit zijn de technologiecomponenten die klanten niet te zien krijgen en waarmee ze niet rechtstreeks iets doen, maar die nodig zijn om de client-side technologieën te laten werken. Programmeertalen zoals PHP, webframeworks zoals Django en servers zoals Apache maken allemaal deel uit van back-end ontwikkeling.
* Opmerking: zie de bijlage voor een definitie van algemene componenten.

Wat is een software stack?
Een software stack is een subset van een tech stack en bevat alleen de softwarecomponenten die worden gebruikt om een applicatie te bouwen. De software stack bestaat uit programmeertalen, codeframeworks, besturingssystemen, middleware, webservers en installeerbare bestanden. Net zoals een tech stack heeft een software stack ook server-side en client-side elementen.
Als je cloudservices zoals Azure gebruikt voor de infrastructuur van je applicatie, maken deze ook deel uit van de software stack. Eigenlijk is er dan nauwelijks verschil tussen je tech stack en je software stack.

3 veelgebruikte tech stacks
Het is meestal niet nodig om je tech stack helemaal zelf samen te stellen. Hier zijn enkele populaire kant-en-klare stacks die je veel tijd en moeite besparen.
1. LAMP
Deze stack bevat de programmeertaal Linux, een Apache-server, MySQL-database en de scripttaal PHP. Omdat alle componenten open source zijn, kun je de stack gemakkelijk aanpassen. Je kunt bijvoorbeeld Python gebruiken in plaats van PHP en de andere elementen ongewijzigd laten. De LAMP-stack wordt veel gebruikt om webapplicaties met dynamische content te maken, dat wil zeggen met webcontent die wordt aangepast op basis van bepaalde gebruikerskenmerken, zoals het gedrag binnen de sessie, data van eerdere interacties en voorkeuren.
2. MEAN
De MEAN-stack omvat de MongoDB-database, een Express.js-server, het AngularJS-framework en de Node.js-runtimeomgeving. Hiermee kun je eenvoudig van een Minimum Viable Product (MVP) opschalen naar een compleet product met volledige functionaliteit. Er moet dan wel in alle fasen van de app-ontwikkeling dezelfde programmeertaal (JavaScript) worden gebruikt. Deze stack is geschikt voor applicaties zoals agenda’s, kaarten, workflow management systemen en aggregatiewebsites voor nieuws.
3. MERN
Het belangrijkste verschil tussen MERN en MEAN is dat MERN niet Angular maar React als webframework gebruikt. Dat maakt het werken met deze stack iets lastiger, maar je kunt dan wel hoogwaardige applicaties en interactieve gebruikersinterfaces (UI’s) maken. Angular heeft een vooraf gedefinieerd framework, maar met React kunnen ontwikkelaars kleine wijzigingen aanbrengen in de code om aangepaste UI-elementen te maken.
Tech stacks die door populaire applicaties worden gebruikt
Hier zijn de tech stacks van enkele populaire webapplicaties om je een indruk te geven van het soort output en de UI-ervaringen die je van verschillende tech stack-combinaties mag verwachten.

Waarom is jouw tech stack belangrijk?
Je app-ontwikkelaar zal je ongetwijfeld op het hart drukken dat de keuze van de juiste tech stack heel belangrijk is en wel om de volgende redenen:
Bepaalt de schaalbaarheid van je app
Je kunt je tech stack vergelijken met het fundament en de draagconstructie van een gebouw. Die bepalen hoe sterk het gebouw is en welke aanpassingen er naderhand nog mogelijk zijn. Je tech stack bepaalt ook of je nog meer functionaliteit kunt toevoegen aan je applicatie, de snelheid kunt verbeteren of de app kleiner kunt maken zodat deze eenvoudiger kan worden gedownload.
Is van invloed op de integratiemogelijkheden van je app
Je software moet met andere applicaties van derden kunnen worden geïntegreerd om een zo breed mogelijke functionaliteit te bieden. Als je bijvoorbeeld een app voor payrollbeheer maakt, moet deze geïntegreerd kunnen worden met HR-apps. Java, C#, .NET en NGINX- en Apache-webservers zijn bijvoorbeeld tech stack-elementen die eenvoudige integratie ondersteunen.
Is van invloed op de prijs van de app
De tech stack die je kiest, is rechtstreeks van invloed op de ontwikkelingskosten voor je app, zoals de kosten voor technische tools en ontwikkelaars. Het ontwikkelen van een app in PHP is bijvoorbeeld goedkoper dan in Java of Python, omdat het PHP-programmeurs makkelijker te vinden zijn.
Hoe kies je de juiste tech stack?
Er is geen standaardmanier om een tech stack te kiezen. Je keuze is afhankelijk van wat jouw project nodig heeft, de marktintroductietijd en de vereisten voor beveiliging en schaalbaarheid. Het is ook van belang of je een webapplicatie of een mobiele app ontwikkelt.
Hier zijn vijf dingen waarmee je rekening moet houden bij het maken van een keuze.

Ook als je rekening houdt met al deze factoren en de juiste tech stack hebt gekozen, zul je je stack toch af en toe moeten aanpassen of zelfs opnieuw moeten opbouwen om in te spelen op veranderende voorkeuren van consumenten (zoals video’s en dynamische content) of nieuwe ontwikkelingen in de technologie voor app-ontwikkeling.
Tips om jouw tech stack te selecteren
Een bedrijf kan tegenwoordig niet meer zonder website en/of mobiele app. Dat kan ingewikkeld zijn als je er nog geen ervaring mee hebt. Hier zijn enkele handige tips:
- Gebruik een beproefde tech stack: Ga niet zelf het wiel uitvinden, maar zoek kant-en-klare stacks die passen bij jouw projectvereisten, integratiebehoeften en beschikbare middelen.
- Bouw eerst een MVP: Probeer niet in één keer een complete app of service met alle toeters en bellen te bouwen, maar maak eerst een prototype of een MVP dat de essentiële functies ondersteunt. Test dit met gebruikers en bepaal dan hoe je een applicatie met volledige functionaliteit wilt ontwikkelen.
Zoek hulp in community forums: Op community forums zoals GitHub en SourceForge vind je veel antwoorden op vragen over problemen waar je tegenaan kunt lopen wanneer je een kant-en-klare tech stack gebruikt. Je kunt er ook freelanceontwikkelaars zoeken die je webapplicatie of mobiele app voor een lagere prijs kunnen bouwen.
Bijlage
Definities van enkele veel voorkomende componenten van een “tech stack”.
Programmeertaal: Een computertaal die programmeurs of ontwikkelaars gebruiken om codes te schrijven die een app uitvoeren. Bijv. Java, C, C++, Python
Web framework: Een standaard manier om webapplicaties te bouwen en te implementeren op het internet.
Database: Hardware- en softwaretools die helpen gegevens op een gestructureerde manier te organiseren en op te slaan.
Webservers: Hardware (computersystemen) en software (serversoftware) die helpen bij het verwerken van webverzoeken en het weergeven van website- of app-inhoud.
Geïntegreerde ontwikkelingsomgeving (IDE): Een softwaretoepassing die alle benodigde middelen biedt voor ontwikkelaars om een programma te bouwen.
Runtime-omgeving: Softwarecodes, bibliotheken en andere bestanden die het uitvoeren of werken van programmacodes ondersteunen.
Middleware: Software die applicaties verbindt met de besturingssystemen van gebruikers.
Besturingssysteem: Systeemsoftware die de hardware- en softwarecomponenten van een computer beheert en ze helpt soepel te werken. Bv. Microsoft Windows, Linux, macOS
Hypertext markup language (HTML): Een systeem dat wordt gebruikt om de structuur van de inhoud op een webpagina te definiëren.
Cascading stylesheets (CSS): Een mechanisme dat helpt bij het verbeteren van de presentatie van inhoud in een HTML-raamwerk.