
2022–2026Wat de planner ziet, klopt op elk moment.
Een event-driven transportplatform waarin orders, planning en kosten samenkomen, live op elk planbord. Wij bouwden de frontend mee vanaf de eerste maand, met z'n tweeën, in een groot team.
Onze rol
Tactyx zat vanaf de eerste maand in het team dat het platform bouwt. We legden de basis van de monorepo, leidden een jaar het frontendteam van zes en bouwden de schil waarin vijf losse apps opgingen.
Wat het opleverde
- Micro-frontends: elk domein een eigen app in één host
- Orders aanmaken, bevestigen en volgen in één module
- Vijf losse apps samengevoegd tot één frontend
- Plannen over twee schermen: slepen naar het planbord
- Wijzigingsverzoeken van klant tot planner, live op het bord
- Tijdslots in bulk boeken vanuit één overzicht
- Railtransport boeken en verplaatsen vanuit de planning
- In juni overgedragen aan het interne team van Den Hartogh
25.000 tankcontainers en 900 trucks, en elke rit begint op een planbord. Volg order 26-104655 van Geleen naar Ludwigshafen, en zie wat er achter de schermen gebeurt.
De order wordt aangenomen.
Iemand accepteert 26-104655. Binnen een seconde zien planning, inkoop en de kostenkant de nieuwe order, zonder te verversen.
Elk systeem meldt wat er gebeurt als event op Kafka. Een backend-for-frontend houdt per scherm een eigen read model bij (CQRS) en pusht de wijziging via SignalR naar iedereen die kijkt.
De order wordt aangenomen.
Een collega in Rotterdam accepteert 26-104655. Binnen een seconde zien planning, inkoop en cost control hem staan.
Elk systeem meldt wat er gebeurt als event op Kafka. De BFF houdt per scherm een read model bij en pusht de wijziging via SignalR.
Oppakken links, neerzetten rechts.
De planner werkt op twee schermen en sleept de order uit het plan center op truck 2267.
Het plan center opent als eigen venster. De vensters praten via postMessage en DataTransfer. Pas na bevestiging van de backend staat de order vast.
Wie het bord volgt, ziet hem verschijnen.
Truck 2267 rijdt voor Rotterdam Chemicals. Iedere planner die dat bord volgt ziet de order meteen.
Welke borden je samen ziet, staat als filter in je profiel. Uitgerold achter de feature flag planboards.
De loslocatie wil donderdag.
Lossen schuift naar do 1 okt 08:00. De planner keurt het goed en Tomasz krijgt het direct in de chat.
Een wijziging bewaart de oude en de nieuwe waarde. 63 rechten per rol: wie een recht niet heeft, ziet de knop niet.
De rit wordt een kostenregel.
Kosten staan per vervoerder en per week bij elkaar. Bij één regel mist de werkelijke tijd.
Rood kan niet worden opgeslagen, oranje wel. Ontbreken werkelijke tijden, dan waarschuwt het systeem vóór de inkooporder.
Ronald en Yvo waren flexibel, werkten hard en sprongen altijd bij waar dat nodig was. Ze dachten mee, ook over de architectuur, namen verantwoordelijkheid en zorgden dat het werk gewoon gedaan werd. Precies wat je wilt van goede mensen in een team.
Rick van LieshoutCTO, FrontlinersVeel teams, één frontend.
Planners werken er de hele dag in, terwijl meerdere teams tegelijk bouwen. Dat kan alleen als teams elkaar niet in de weg zitten en een uitrol niets stillegt. De frontend draait op React en TypeScript in een Nx-monorepo, met daaronder .NET, Kafka en SignalR.
Eén schil, lazy-loaded domeinmodules.
In 2024 gingen vijf losse apps op in één schil: één versie live in plaats van vijf. Teams raken elkaars code niet, en een module kan eruit zonder de rest te raken.
- Planboards
- Wijzigingsverzoeken
- Dagen kiezen
- Onderhoudsmodus
Gefaseerde uitrol, zonder nieuwe release.
Eerst aan voor een kleine groep. Bevalt het niet, dan gaat het uit. Het multi-planboard ging zo live.
Twee developers.
Elk jaar sneller.
hoogst ooit
Zo schreven de agents mee.
Van september 2025 tot april 2026 ruimden we de frontend op. Eerst legden we vast wat het resultaat moest zijn, daarna deden de agents het verhuiswerk. Snapshottests vergeleken elke stap met het origineel, tot alles precies zo werkte als ervoor. De kritieke onderdelen controleerden we zelf, samen met het team.
- Projecten in de frontend
- 76 naar 46
- Configuratiebestanden
- 142 minder
- Wijleggen vast wat het resultaat moet zijn
- Agent 1verhuist de bestanden, met hun geschiedenis
- Agent 2loopt negen controles na
- Wijcontroleren de kritieke delen, met het team
In bijna vier jaar: 3.218 commits, en we haalden ruim 76.000 regels weg. Opruimen hoort bij bouwen.
Regels code die wij per jaar veranderden, erbij en eraf. Zonder lockfiles, instellingen, afbeeldingen en gegenereerde bestanden. 2026 loopt tot 12 juni, onze laatste wijziging.
Overgedragen, en het draait door.
Het platform draait elke dag in productie. In 2025 kwamen er 355 releases van de frontend uit, bijna anderhalf per werkdag. In de eerste helft van 2026 nog eens 172.
In juni nam het interne team van Den Hartogh het over, met een codebase die ze zelf kunnen dragen en een plan om planning, het grootste onderdeel, op te splitsen in kleinere modules.
Zo hoort een overdracht: software die zonder ons verder kan.
Draait jouw platform al, en moet het door?
In een abonnement zet je taken in één rij en staat er elke week iets live. Jij bepaalt wat er gebouwd wordt, wij bepalen hoe. Een vast bedrag per maand, geen offerte per wijziging.
