WEB · ERP

CHAS ERP: Modernizing a 193-Page Legacy ERP to SvelteKit + NestJS

Client
PT. Cipta Hasil Sugiarto
Timeline
Phased migration (8 stages)
Services
Web Development + Server
Status
Live

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.

ResultsWhat Changed After Launch

193 Legacy pages mapped to modern modules across 8 stages
187,805 Master items migrated via CDC — plus 5,437 employees & 3,189 suppliers
0 downtime The old ERP kept running read-only until cutover
SvelteKitNestJSPostgreSQLDrizzleDockerMinIO

Continue Reading

Have a project in mind? Let us build it together.

The first consultation is free. Tell me what you need, and I will reply within 24 hours.

Chat on WhatsApp Now