CHAS ERP: Modernizing a 193-Page Legacy ERP to SvelteKit + NestJS
ChallengeA legacy PHP ERP with 193 pages and 2.4 million requests per 6 weeks
The old ERP (fleet.chas.co.id) ran on pure PHP without a modern framework — 193 pages used daily for purchasing, warehouse, finance, and operations. Nginx log analysis showed ±2.44 million requests over 6 weeks. The system could not stop: the migration had to be phased without disrupting company operations.
SolutionA phased rebuild based on real traffic data, migration via CDC
Phased Modern Rebuild
SvelteKit (Svelte 5) + NestJS + PostgreSQL (Drizzle) adopted module by module — priorities determined from real traffic analysis, not guesswork: Purchasing → Warehouse → Finance → Accounting.
Data Migration via CDC
Master data moved through Change Data Capture without stopping the old ERP: 187,805 items, 5,437 employees, 3,189 suppliers, 1,596 customers, and 1,856 heavy equipment units.
HRMS & Asset Management Live
The HRMS module (attendance, leave, overtime, payroll master) and Asset Management (procurement, depreciation, maintenance, operator GPS) are already running — connected to the CHAS mobile app.
