Skip to content
PrimeTelecom · Telecom & ISP

Telecom Administration Dashboard

Replaced a 14-year-old legacy PHP system serving 50,000 subscribers — without a day of downtime.

Reading ~2 min
Year 2024
Duration 7 months
Team 3 engineers
Status Live · September 2024

A look at the product.

PrimeTelecom had been operating on ETIS, a PHP 5 + jQuery admin system built in 2010. It still worked, in the sense that it didn't crash. But customer lookups took 8 to 12 seconds. Operators tabbed through six separate tools, each with its own login. When network events happened, the ops team found out from customer phone calls.

The mandate: build a replacement that the operations team actually wants to use, migrate incrementally without taking the old system offline, and deliver measurable productivity gains within the first quarter of rollout.

Challenge

The tricky part wasn't the technology — it was the transition. ETIS was the single source of truth for ~50,000 active subscribers, their billing records, service history, and network assignments. We couldn't "turn it off" at any point. Both systems had to run side by side, with the new one gradually taking over responsibilities.

On top of that, operators were skeptical. They'd been through dashboard migrations before where the new tool solved the wrong problems. Any new system that didn't feel noticeably better on day one would be rejected — and we'd be the ones explaining why to management.

Approach

We picked Laravel 12 with Inertia.js — a stack that feels like a SPA to the user but keeps the team small and the codebase coherent, without committing to a separate frontend build. Operators get smooth, fast interactions; the team gets Laravel's full ecosystem (Horizon, Pulse, Telescope, Reverb) for free.

First priority was search. We indexed the entire subscriber base — 180,000 records including historical accounts — into MeiliSearch, enabling fuzzy matching across names, addresses, phone numbers, and internal IDs. Subscriber lookups dropped from 8+ seconds to under 200 milliseconds. That one win bought us operator goodwill for everything else.

Authentik provided SSO across the new dashboard and five other internal tools — ending password fatigue in one deployment. Laravel Reverb powers WebSocket notifications for live network events. Horizon manages billing batch jobs. Pulse and Telescope give the ops team their own internal health dashboards.

One 200ms search bought us operator goodwill for everything that came after it.

Key capabilities shipped.

  • Unified subscriber search across plans, tickets, billing, and network events
  • Real-time WebSocket notifications for network incidents and outages
  • Authentik SSO integrated across six internal tools
  • Batch billing operations with retry logic and audit trail
  • Role-based access for ops, billing, tech support, and management tiers
  • Application health dashboards (Pulse, Telescope) for the ops team itself
  • Progressive migration from ETIS without any downtime window
  • Automated network event ingestion and subscriber matching

Grounded outcomes, measured in production.

Lookup Time
200ms
Down from 8+ seconds on legacy ETIS
Ticket Time
–37%
Resolution time cut over first quarter
Unified Login
6 tools
SSO eliminated ~6 passwords per operator
ETIS Sunset
5 months
Legacy fully decommissioned post-launch

Customer lookup time dropped from 8+ seconds to under 200ms with MeiliSearch. Operators handle ~37% more tickets per shift. The SSO integration eliminated password fatigue across 6 internal tools. ETIS was fully decommissioned 5 months after launch.

Technologies used, grouped by role.

Backend
Laravel 12 PostgreSQL Laravel Horizon Laravel Reverb MeiliSearch
Frontend
Inertia.js Vue 3 TailwindCSS 4
Infrastructure & Ops
Authentik SSO Laravel Pulse Telescope