Wat ze hadden
Een React-prototype van één bestand, via AI-chat gegenereerd en in zo'n zesentwintig versies doorontwikkeld voordat wij erbij kwamen. Het werkte, en het kantoor draaide erop. Het bewaarde ook alles in de localStorage van de browser: één persoon per machine, geen gedeelde staat, en een geleegde cache betekende een verloren project.
Dat prototype wás ook de specificatie. Jaren aan prijslogica, een catalogus van tweeëntachtig werkpakketten, de leverancierslijst en het Nederlandse bouwvocabulaire zaten erin en nergens anders. Onderweg naar productie kon er niets herontworpen worden zonder te breken waar het team al op vertrouwde.
Wat we bouwden
Een front-end op React en TanStack, een backend op NestJS en Postgres, rolgebaseerde authenticatie, uitgerold op Railway. De calculator reproduceert hun model exact, inclusief de volgorde waarin de marges stapelen: AK vijf procent, dan WR drie procent, dan negen of eenentwintig procent btw, afhankelijk van het werk. Op een subtotaal van tweeënzeventigduizend euro moet die keten op hetzelfde brutobedrag uitkomen als hun eigen spreadsheet, elke keer.
Adresgegevens komen uit BAG, PDOK en het Kadaster en worden gekruist met EP-Online voor energielabels. Mapbox toont een 3D-weergave van het gebouw direct in de calculator. Offertes synchroniseren live naar TeamLeader, in de vorm die het kantoor al gewend was.
De technische randvoorwaarde
Exacte trouw was de hele opdracht. Een offertetool die ongeveer klopt is slechter dan geen tool, want dan moet elk getal alsnog met de hand nagerekend worden. Onze taak was hun methode implementeren, niet verbeteren: identieke invoer, identieke uitvoer, op een systeem waar nu meerdere mensen tegelijk in kunnen.
Splitsingen, de Amsterdamse praktijk waarbij één woning wordt omgezet in meerdere zelfstandige appartementen, hebben hun eigen vergunningstraject. Die coördinatie hoort bij het domein dat het platform vloeiend moest spreken; het is geen randgeval dat er later bij geplakt is.
Waar het staat
De calculator, authenticatie, registeropvragingen en CRM-synchronisatie draaien in productie op ibgroups.ai. De tweede fase is overgedragen en de ontwikkeling loopt door onder een retainer.
Stack · React · TanStack · NestJS · Postgres · TeamLeader · Railway
