The Challenge
Our client, a telecom provider, was running on a custom PHP framework built 15 years ago. The system (ETIS) handled everything from customer management to network operations. It worked, but it was slow, hard to extend, and impossible to test.
The Approach: Strangler Fig Pattern
We didn't rewrite everything at once. Instead, we used the Strangler Fig pattern — building new features in the modern stack (Laravel + Inertia.js) while gradually migrating existing functionality. Both systems ran in parallel, connected through database views and API bridges.
Key Decisions
- Inertia.js over traditional API + SPA: Faster development, type-safe props, no API versioning overhead
- MeiliSearch for customer lookup: Replaced slow SQL LIKE queries with sub-200ms full-text search
- Authentik SSO: Unified authentication across the old and new systems during migration
Results
After 8 months, 70% of daily operations happen in the new system. The remaining 30% (legacy reporting and specialized network tools) are scheduled for migration in the next phase.