Mijn broer is binnenvaartschipper, en zijn administratie is al jaren een terugkerend onderwerp tussen ons. Lang geleden maakte ik al eens Excel-templates voor hem: een ritoverzicht met formules, een opzet voor facturen. Die hebben jaren trouw dienst gedaan, en eerlijk is eerlijk: ze waren een flinke verbetering ten opzichte van losse briefjes. Maar het onderliggende probleem losten ze nooit op. Elke rit moest nog steeds op meerdere plekken worden ingevoerd: in het ritoverzicht, in het formulier van de bevrachter, op de factuur, en aan het eind van de week nog eens in de weekstaat. Dezelfde tonnages, dezelfde data, dezelfde plaatsen, keer op keer overgetikt, met elke keer de kans op een typefout die je pas ziet als de factuur al de deur uit is.
Excel was dus een pleister, geen oplossing. Deze zomer hebben we het goed aangepakt en heb ik samen met hem Vessia gebouwd: één administratie voor je binnenvaartschip, waarin je iets één keer vastlegt en dezelfde gegevens overal opnieuw gebruikt.
Wat Vessia is
Vessia is een webapp voor binnenvaartschippers die zelf hun administratie doen. Je legt je ritten vast met route, lading, tijden en prijs, en vanuit die ritten rolt de rest: de factuur, het formulier van de bevrachter, de weekstaat, het gasolieverbruik en de rapportages. Tijdbevrachting, metingen met ijktabellen en reisdocumenten zitten er ook in. Het draait in de browser op telefoon, tablet en laptop, zodat je aan boord kunt invoeren en aan wal kunt factureren.
Het centrale idee is steeds hetzelfde: gegevens die je al hebt ingevoerd, tik je nooit meer over.
Gebouwd op Slicekit
Vessia draait, net als SendScope eerder, op mijn eigen Slicekit-template. Dat begint inmiddels routine te worden, en dat is precies het punt: op 2 juli draaide het scaffold-script, en omdat auth, het adminpaneel, facturatie via Stripe, e-mail, observability en CI er al stonden, ging vrijwel alle tijd daarna naar het domein zelf. Ritten, bevrachters, facturen, documenten en metingen. Binnen drie weken stond er een werkend product op vessia.app. De stack is die van de template: een event-driven .NET 10 API met vertical slices, een typed React 19 SPA, en een Astro-marketingsite.
Eerst het verkeerde idee
Mijn eerste ontwerp zag er heel anders uit dan wat er nu staat. Ik had een strak stappenplan voor ogen: je komt aan bij de laadplek en meldt dat in de app, je begint met laden, je vertrekt, je komt aan bij de losplek, je lost. Vessia zou je stap voor stap door de rit leiden en onderweg alle gegevens verzamelen. Netjes, logisch, en precies zoals een developer denkt dat varen werkt.
Mijn broer prikte daar meteen doorheen. Zo werkt het aan boord helemaal niet. Tijdens het laden heb je wel wat anders te doen dan een app doorklikken, en op de vaart komt er van alles tussendoor. In de praktijk gaat alles even snel op een kladje, en wordt het ‘s avonds, of soms pas dagen later, netjes verwerkt.
Dus het hele ontwerp ging om. Vessia dwingt geen volgorde af: je kunt direct invoeren als het uitkomt, maar de app is er net zo goed op gebouwd dat je een complete rit achteraf in één keer invoert, van dat kladje af. Elk scherm is daarop ingericht. Het is misschien wel de belangrijkste ontwerpkeuze in de hele app geworden, en hij kwam niet van mij, maar uit de stuurhut.

Vessia op de telefoon, voor de momenten dat direct invoeren wél uitkomt.
De rit als spil
Alles in Vessia hangt aan de rit. Je legt een geladen rit of leegvaart vast met route, lading, prijs en tijden, ook met meerdere laad- of losbeurten in één rit. Terugkerend werk dupliceer je in een paar klikken.

Het rittenoverzicht: geplande, lopende en afgeronde ritten bij elkaar.
Op de detailpagina van een rit komt alles samen: laad- en losmomenten, tonnages, bunkeringen, metingen, documenten en de facturatie die eraan hangt.

Eén rit met alles erbij: planning, laad- en losmomenten, metingen, gasolie, documenten en facturatie.
De kalender toont geplande en werkelijke ritten op een tijdlijn. Je ziet in één oogopslag in welke fase elke rit zit, en de kalender waarschuwt voor conflicten voordat je iets verschuift. Het dashboard beantwoordt de vraag waar het maandeinde vroeger uitzoekwerk voor was: wat staat er klaar voor facturatie, en wie moet er nog betalen?

Geplande en werkelijke ritten in de tijd, met een duidelijke kleur per fase: zo check je in een paar seconden de status van je ritten.

Het dashboard: wat klaarstaat voor facturatie en welke facturen open of vervallen zijn.
Je eigen formulieren
Dit is de feature waar het dubbele werk echt verdwijnt, en hij komt rechtstreeks uit de praktijk van mijn broer. Elke bevrachter heeft zijn eigen formulier, en dat moest hij voor iedere reis opnieuw invullen met gegevens die al in zijn administratie stonden.
In Vessia upload je je bestaande PDF- of Excel-formulier één keer en wijs je aan waar de gegevens horen. Daarna vult Vessia het formulier voor je in, per rit, week, jaar, vrije periode of verhuur, inclusief eigen velden en handtekeningen. Je eigen formulier, automatisch gevuld, zonder dat de bevrachter iets hoeft te veranderen.

Eigen PDF- en Excel-formulieren die Vessia per rit of periode opnieuw invult.
Een document maken is daarna twee klikken: kies het formulier en de rit, en Vessia zet de reisgegevens alvast klaar. Jij controleert ze, vult de laatste velden aan en maakt het document definitief.

De invulpagina: de reisgegevens staan er al, de rest vul je aan of pas je aan waar nodig.
Reisdocumenten bewaar je bij de juiste rit, met eerdere versies beschikbaar. PDF’s vul je in de app in met tekst, vinkjes, afbeeldingen of een handtekening, en afgeronde documenten mail je direct vanuit Vessia vanaf een geverifieerd adres van je eigen domein.
Metingen en ijktabellen
Bij het laden en lossen wordt de lading bepaald met een diepgangsmeting: je leest de inzinking van het schip af en zoekt het bijbehorende tonnage op in de ijktabel van het schip. Dat was tot nu toe bladeren in een papieren tabel en handmatig interpoleren.
In Vessia importeer je de ijktabel één keer, met draagvermogen en beuninhoud. Daarna voer je de aflezingen in en rekent de app de lading uit. Het ijkformulier of de beunbrief met je eigen logo en handtekening staat direct klaar om te versturen.

De ijktabel als rekenhulp: aflezingen invoeren, tonnage eruit.
Zo ziet het resultaat eruit, hier met fictieve voorbeeldgegevens:

Het gegenereerde ijkformulier: metingen, ijktabelwaarden en het uitgeloste tonnage, klaar voor een handtekening.
Facturen en tijdbevrachting
Facturen maak je vanuit ritten, vanuit verhuur of met handmatige regels. Vessia stelt de bedragen voor, inclusief de gasolietoeslag volgens de afspraak die je per rit vastlegt: een bedrag per ton, per verbruikte kubieke meter of een vast bedrag bij leegvaart. Per factuur kies je de btw-situatie (21%, btw verlegd of buiten de heffing), en Vessia bewaakt de nummering en maakt een PDF met je eigen logo.

Een gegenereerde factuur met fictieve voorbeeldgegevens: vrachtregel, gasolietoeslag en btw automatisch opgebouwd vanuit de rit.

Facturen met hun actuele status: concept, definitief, verstuurd of betaald.
Tijdbevrachting is apart geregeld, want dat is een ander soort afspraak: verhuur met een dagtarief, een looptijd en een gasolievergoeding, met de ritten eronder geregistreerd en de mogelijkheid om lange periodes in delen te factureren.

Een verhuur met de afspraken, extra brandstof, onderliggende ritten en het voorgestelde factuurbedrag bij elkaar.
Na controle mail je facturen en documenten met bijlagen direct vanuit de app, en de verzendhistorie laat zien wat wanneer aan wie is verstuurd. Ook dat was eerst losse mailtjes vanuit een mailprogramma, met zoeken achteraf.

Verzonden facturen en reisdocumenten blijven terug te vinden, inclusief bijlagen.
Alles in je eigen huisstijl
Alles wat de app verlaat, ziet eruit zoals jij het wilt. Je logo, de opmaakstijl van je factuur, de voettekst, de indeling van het ijkformulier en de beunbrief, en je opgeslagen handtekeningen stel je één keer in en gelden daarna overal. Er is een begeleide instelhulp die je er stap voor stap doorheen loodst.

Factuur, ijkformulier, beunbrief en handtekeningen stel je op één plek in, met een live voorbeeld ernaast.
Hetzelfde geldt voor e-mail. Je werkt met vaste berichtsjablonen en verstuurt vanaf een geverifieerd adres van je eigen domein, zodat een factuur van jouw bedrijf komt en niet van een anoniem systeemadres.

Je eigen afzender en berichtsjablonen, zodat elke mail eruitziet alsof je hem zelf schreef.
De rest van het schip
Daaromheen zit alles wat je verder rond een schip moet regelen. Gasolieverbruik per rit en maandtotalen op basis van je eigen tellerstanden, zodat je verbruik en toeslagen kunt onderbouwen.

Verbruik per rit, bunkeringen en maandtotalen op basis van je eigen tellerstanden.
Analyse van omzet, tonnage, ritten en betaalgedrag over de periode die je kiest, zodat je niet alleen administreert maar ook ziet wat het schip oplevert.

Omzet, tonnage, ritten, verbruik en betaalgedrag over de periode die jij kiest.
En omdat een schip zelden een eenmanszaak is: rollen per schip. Je boekhouder ziet facturen en bevrachters, je matroos ziet ritten en metingen zonder financiële gegevens, en uitnodigen is gratis.

Rollen per schip: ieder ziet precies wat bij zijn werk past.
Verder zit er nog zakelijke kilometerregistratie voor de auto in, met tellerfotoherkenning en een jaaroverzicht. De beveiliging komt rechtstreeks uit de template: passkeys, tweestapsverificatie met herstelcodes, sessiebeheer en een volledige gegevensexport, zodat je nooit vastzit.
Avonden bouwen, dagen feedback
Vessia is in de avonduren gebouwd. Overdag vaart mijn broer, ‘s avonds bouwde ik, en daartussen zat een feedbackloop die korter en eerlijker was dan alles wat ik eerder heb meegemaakt. Hij gebruikte de app gewoon aan boord, met zijn echte ritten en zijn echte bevrachters, en wat niet werkte hoorde ik meteen. Soms was iets wat ik die avond gebouwd had de volgende dag alweer afgekeurd, omdat het in de stuurhut net anders bleek te werken dan achter mijn bureau.
Die loop bepaalde wat er gebouwd werd. De formulieren in de app zijn zijn echte formulieren van echte bevrachters. De gasolietoeslag rekent zoals zijn afspraken daadwerkelijk in elkaar zitten. En features die ik zelf logisch vond maar die niet aansloten op het werk aan boord, sneuvelden snel, net als dat eerste stappenplan-idee. Dat heeft de app compacter en bruikbaarder gemaakt dan wanneer ik hem alleen had bedacht.
Wat ik heb geleerd
Praat met je gebruikers voordat je bouwt, en blijf praten terwijl je bouwt. Mijn stappenplan-idee sneuvelde in één gesprek, en dat gesprek heeft me weken bouwen aan het verkeerde ontwerp bespaard. De werkelijkheid aan boord (een kladje, en ‘s avonds verwerken) was met geen enkele aanname vanachter mijn bureau te verzinnen.
Een domeinexpert naast je is meer waard dan welk marktonderzoek dan ook. Ik wist vooraf niets van beunbrieven, ijktabellen of gasolievergoedingen. Elk van die onderwerpen had ik verkeerd gebouwd als ik het zelf had moeten verzinnen. Nu hoefde ik alleen goed te luisteren en het bestaande werkproces na te bouwen, in plaats van een nieuw proces op te leggen.
Dubbele invoer is geen invoerprobleem maar een datamodelprobleem. Dat is ook waarom mijn Excel-templates van jaren geleden het nooit echt oplosten: elke sheet was zijn eigen kopie van de waarheid. De oplossing was niet een sneller formulier, maar één model waarin de rit alle gegevens bezit en facturen, documenten en rapportages daar alleen naar verwijzen. Zodra dat model klopte, vielen features als de weekstaat en de formulierenvuller er bijna vanzelf uit.
De template blijft zich bewijzen. Drie weken van scaffold tot live product, en vrijwel al die tijd ging naar het domein. Het omgekeerde gold ook: de scherpe randjes die ik tijdens het bouwen van Vessia tegenkwam, vloeiden als verbeteringen terug naar Slicekit.
Een nichemarkt is een voordeel. De binnenvaart is geen markt waar grote SaaS-partijen zich op storten, maar de problemen zijn er net zo echt en de bestaande oplossingen zijn Excel of niets. Voor één bouwer met een korte lijn naar de doelgroep is dat een prima plek om iets te maken dat er echt toe doet.
Huidige status
Vessia is live. Je kunt het 30 dagen gratis proberen zonder betaalgegevens, en daarna geldt één introductieprijs per maand met onbeperkt schepen. Boekhouders en collega’s nodig je gratis uit met hun eigen rol. Mijn broer gebruikt het dagelijks aan boord, en de roadmap wordt nog steeds bepaald door wat daar gebeurt.
Ken je een binnenvaartschipper die avonden kwijt is aan Excel? Wijs hem op vessia.app. En heb je zelf feedback of vragen, neem gerust contact op!

