Werk / ERP

NEXO

Eén ERP waar eerst negen losse apps stonden. Een voedingsgroothandel in Lima draait er verkoop, voorraad, financiën, HR, productie en bezorging op.

Mijn deel
Door mij ontworpen en gebouwd. Ik host het ook.
Wanneer
Juni 2026 tot nu
Status
In productie

Een nagebouwd scherm met voorbeelddata. De echte bevatten de cijfers van een klant. Een demo waar je doorheen kunt klikken, met een verzonnen bedrijf, is in de maak.

Het probleem

Elke afdeling had een eigen tool. Ik weet het, want ik heb de meeste zelf gebouwd: een chatbotdashboard, een screeningtool voor sollicitanten, een persoonlijke agenda, een app voor notulen, een aanwezigheidsapp, een bezorgapp, een voorraadapp, een productcatalogus en een inlogdashboard dat ze aan elkaar knoopte.

Elke app loste een echt probleem op. Elke app had ook een eigen login, een eigen lijst gebruikers en een eigen idee van wat een klant is. Verkoop en voorraad zaten in een oudere ERP die niemand kon uitbreiden. Als iemand van het magazijn naar verkoop ging, paste ik zijn rechten in elke app apart aan.

Wat ik heb gebouwd

Eén login, één rechtensysteem, één database. Ik heb niet alles in één keer herschreven. De schil en de persoonlijke werkomgeving gingen als eerste live, in juni 2026. Daarna verhuisden de oude apps één voor één mee, als modules, terwijl mensen gewoon doorwerkten.

De klanten en de verkoopgeschiedenis kwamen via een import uit de oude ERP. Rechten worden per rol en per scherm ingesteld en de eigen beheerder van het bedrijf beheert ze. Ik krijg geen bericht als iemand van functie wisselt.

Er is een testomgeving die elke nacht wordt ververst vanuit productie. Niets komt in productie zonder eerst een volledige run op test, door mij, via dezelfde schermen die het personeel gebruikt.

Hoe het in elkaar zit

  1. MensenKantoorpersoneel in de browser, Chauffeurs op een offline PWA, Buitendienst op Android
  2. VoordeurCaddy, TLS, één inlog voor elke module
  3. ApplicatieNext.js, 594 API-routes, rechten per rol en per scherm
  4. DataPostgres, self-hosted Supabase, 226 migraties, back-up elke nacht
  5. Eromheenn8n voor chatkanalen en meldingen, testomgeving elke nacht ververst

Eén VPS. Bewust de saaie keuze: één plek voor back-ups, één plek om te kijken als er iets traag is.

Wat eruit kwam

Gemeten betekent geteld in de code of het systeem. Geschat betekent mijn eigen schatting, met de aanname ernaast.
Losse apps samengevoegd tot één9gemeten, projectplan
Pagina's320gemeten, nov. 2026
API-routes594gemeten, nov. 2026
Databasemigraties226gemeten, nov. 2026
Commits in de repository1.338gemeten, nov. 2026
Regels TypeScriptongeveer 310.000gemeten, nov. 2026
Klanten in de CRM na import1.563gemeten, juni 2026
Personeel op de aanwezigheidsklok75gemeten, sep. 2026
Inklokmomenten per dag zonder papier of spreadsheetsongeveer 300geschat, 75 medewerkers, 4 momenten per dag

Gebouwd met

  • Next.js 16
  • React 19
  • TypeScript
  • Postgres
  • Supabase (self-hosted)
  • TanStack Query
  • Zod
  • ExcelJS
  • jsPDF
  • Recharts
  • Leaflet
  • Dexie
  • Capacitor
  • Caddy
  • PM2

Vertel me wat er op een gewone dinsdag misgaat.

Plan een gesprek van 30 minuten

Dertig minuten, per video of telefoon. Jij beschrijft één proces dat je tijd kost. Ik stel vragen en zeg je eerlijk of ik het zou automatiseren, eerst zou herstellen of met rust zou laten. Geen slides.

Tijd in Lima, UTC-5. Ik reageer binnen één werkdag, in het Nederlands, Engels of Spaans.

Open voor functies op afstand en voor projecten.