Enterprise Resource Planning
Van de eerste kennismaking tot de btw-aangifte staat alles op één plek: sales, offertes, projecten, facturen, bank en boekhouding. We hebben het zelf gebouwd en werken er elke dag mee.

In het kort
13
onderdelen in één systeem, van contacten tot rapporten
4
rapporten: resultatenrekening, balans, btw-overzicht en gebeurtenissen
2FA
inloggen met een code uit een authenticator-app
Dagelijks
in gebruik voor ons eigen bedrijf in Nijmegen
Voor: SystemLabs zelfType: maatwerk webapplicatieJaar: 2026Status: dagelijks in gebruikDraait op: systemlabs.nl/erp, achter een inlogLeestijd: circa 3 minuten
Waarom we ons eigen systeem bouwden
Elke opdracht loopt bij ons dezelfde route: kennismaken, een voorstel, bouwen en overdragen, en daarna factureren en de cijfers bijhouden. Die hele route wilden we op één plek hebben, ingericht zoals wij werken. Dus hebben we hem zelf gebouwd.
Wat we wilden voorkomen
- Een lead, een offerte en een factuur die los van elkaar bestaan, zodat je zelf moet onthouden wat bij wat hoort.
- Bonnetjes en inkoopfacturen die in een map of mailbox blijven liggen tot het kwartaal om is.
- Pas bij de btw-aangifte zien hoe het er eigenlijk voor staat.
Hoe het nu werkt
- Een lead schuift door de pipeline, wordt een offerte en daarna een factuur, met het offertenummer als kenmerk.
- Een bon of inkoopfactuur upload je als pdf of foto. De gegevens op een foto leest het systeem zelf uit.
- Omzet, winst, btw en wat er nog openstaat zie je op elk moment, niet pas aan het eind van het kwartaal.
Eén login, en de hele zaak ligt open
We loggen in met een code uit onze authenticator-app. Daarna opent het Overzicht: omzet exclusief btw, winst, openstaande facturen en lopende projecten, met daaronder de taken van vandaag en de klanten die we moeten opvolgen. De rest zit in de zijbalk: Contacten, Intake, Sales, Offertes, Producten, Projecten, Facturen, Inkomend, Bank, Boekhouding, Documenten en Rapporten.
Van eerste gesprek tot betaalde factuur
Sales: van kennismaking tot akkoord
Elke lead is een kaart op een bord met vier kolommen: Kennismaken, Voorstel, Akkoord en Geen opdracht. Per lead leggen we het onderwerp vast, de klant, het soort werk, een indicatie exclusief btw, een notitie en de datum waarop we opvolgen. Die opvolging verschijnt vanzelf op het Overzicht.
- Kennismaken
- Voorstel
- Akkoord
- Geen opdracht
- Opvolgen
Offertes en facturen die bij elkaar horen
Een offerte stellen we op met regels uit Producten en versturen we als pdf. Is de klant akkoord, dan maken we er rechtstreeks een factuur van. De offerte krijgt de status Gefactureerd en op de factuur staat het offertenummer als kenmerk. Zo zie je altijd waar een bedrag vandaan komt.
- Offerte
- Gefactureerd
- Kenmerk
Projecten in vier fases
Elke opdracht doorloopt vier fases: Afgebakend, Bouwen, Overdragen en Overgedragen. Per project staan de klant, de deadline, taken met een datum, notities en bestanden bij elkaar. Lopende projecten tellen mee op het Overzicht, zodat we zien wat er nog onderhanden is.
- Afgebakend
- Bouwen
- Overdragen
- Overgedragen
- Taken
- Notities
- Bestanden
Facturen, tot ze betaald zijn
Een factuur gaat van Concept naar Verstuurd, zo nodig naar Herinnerd, en uiteindelijk naar Betaald. Alles wat verstuurd of herinnerd is, telt mee bij Openstaande facturen op het Overzicht. Een creditnota maken we in hetzelfde scherm, en elke factuur kun je als pdf downloaden.
- Concept
- Verstuurd
- Herinnerd
- Betaald
- Creditnota
Bank gekoppeld aan facturen
Elke banktransactie staat met datum, naam, omschrijving en bedrag in Bank. Een bijschrijving koppelen we aan de factuur die ermee betaald is. Die factuur staat dan op Betaald, en het banksaldo in de rapporten klopt. Een verkeerde koppeling maak je ongedaan met Ontkoppelen.
- Transacties
- Koppelen aan factuur
- Ontkoppelen
- Banksaldo
Alle onderdelen
Hierboven zag je de route van een opdracht. Dit zijn alle onderdelen van het ERP, gegroepeerd zoals we ze zelf gebruiken. Elke lijst kun je exporteren.
Overzicht
Omzet exclusief btw, winst, openstaande facturen en lopende projecten, met daaronder de taken van vandaag en de opvolgingen die wachten. Per periode te bekijken.
Rapporten
Winst, werkkapitaal, btw, banksaldo, wat klanten nog moeten betalen en wat wij nog aan leveranciers verschuldigd zijn, per maand of kwartaal. Met de resultatenrekening, de balans en het btw-overzicht als losse rapporten.
Gebeurtenissen
Een logboek van alles wat er gebeurt: een offerte die is aangemaakt of verstuurd, een factuur die uit een offerte is gemaakt, een statuswijziging, een betaling. Met type, datum en tijd, en een link naar het item zelf.
Techniek
Het ERP draait in dezelfde Next.js-applicatie als deze website, onder /erp. Zo onderhouden we één codebase, en gebruiken we zelf elke dag de techniek die we ook voor klanten inzetten.
- Next.js 16
- React 19
- TypeScript
- Tailwind CSS
- Supabase
- pdf-lib
- Tesseract.js
- Nodemailer
Frontend
Next.js 16 met React 19 en TypeScript. Alle schermen zijn opgebouwd uit eigen componenten, zonder externe UI-bibliotheek, en opgemaakt met Tailwind CSS.
Backend en data
Supabase slaat de gegevens en bestanden op en wordt aangesproken via server-routes van Next.js. Offertes en facturen gaan per mail de deur uit via SMTP, met Nodemailer.
Functionaliteit
pdf-lib maakt de pdf's van offertes en facturen. Tesseract.js leest de gegevens van een foto van een bon of factuur uit, in het Nederlands en Engels, direct in de browser. Elke lijst is als CSV te exporteren, ook het grootboek.
Beveiliging en toegang
Inloggen gaat met een tijdgebonden code uit een authenticator-app (TOTP), die we zelf hebben geïmplementeerd. De koppeling stel je eenmalig in met een QR-code. De sessie loopt via een ondertekende cookie, en het ERP is uitgesloten van zoekmachines.
1 codebase met de website · 13 onderdelen · 2FA · export naar CSV en pdf
Architectuur in het kort
- Het ERP staat onder /erp in dezelfde Next.js-app als de website, met een eigen layout en zonder indexering.
- Eén datamodel voor contacten, leads, offertes, projecten, facturen, inkomende stukken en banktransacties, zodat alles naar elkaar kan verwijzen.
- Rapporten en btw worden berekend uit dezelfde gegevens als de facturen en kosten. Niets wordt dubbel ingevoerd.
- Unit tests (Vitest) voor de gevoelige onderdelen: de factuur-pdf, het uitlezen van bonnen en de 2FA-codes.
Zo'n systeem, maar dan voor jouw bedrijf?
Dit ERP is gebouwd rond hoe wij werken. Zo'n systeem kunnen we ook voor jou bouwen, op maat: met de onderdelen die jij nodig hebt en niets wat je niet gebruikt. In een eerste gesprek kijken we samen wat dat is. Daarna krijg je een offerte op maat.