All projects
In developmentEnterprise & ERPDetails pending
Fitolite ERP (modern rebuild)
A ground-up TypeScript rebuild of a long-running PHP distribution ERP — same database, parity-verified module by module — with live updates over WebSockets and a modern, accessible interface.
- Type
- Type to confirm
- Category
- Enterprise & ERP
Technology
- Next.js 15
- React 19
- TypeScript
- Tailwind 4
- Express
- WebSockets
- MySQL
- Zod
- Vitest
- TanStack Query/Table
Challenges
The problem
A large PHP application had grown organically; changing it was risky and the interface dated. A big-bang rewrite would have stopped the business, and the data had to stay in the existing database.
Architecture
Approach: strangler migration
apps/web(Next.js) ·apps/api(Express/TypeScript REST + WebSocket hub) ·packages/shared(types and protocol shared by both).- Runs on the existing MySQL database with additive changes only, so the old and new systems coexist.
- Auth, sessions, RBAC, row scopes and financial-year handling ported first; a revocable-session model and kill switch.
- Parity-first rule for write paths: each ported calculation is checked against the PHP original (e.g. stock chains, ageing reports compared cell-for-cell) before users move over.
- A roadmap document tracks per-module parity status honestly (done / partial / not started).
Solutions
Modules covered
Orders and cart (server-side stock caps, reservations), customers, ledger, inventory and production, CRM, quality, logistics, field-sales reports (DSR), channel-partner centre, promotions, cost sheets, reports and settings.