Product · June 10, 2026

Why We Built Xapto Flow — A Modern CRM on Top of Legacy ERP

Most businesses run on legacy ERP systems. They work — they handle invoicing, inventory, and customer records. But the user experience? It's stuck in 2010. Nested menus. Page reloads. Tab-switching between corporates. Our team at Xapable knew this pain firsthand.

We had a PHP-based ERP running 27 companies with 5,201 customers. It was functional. But every time we needed to check a customer, create a task, or switch between corporates, we lost minutes — minutes that added up to hours every week.

The Problem: Legacy UI, Modern Needs

The old ERP required you to navigate through multiple levels of menus just to find a contact. Creating a task meant filling out a form, submitting, and waiting for a page reload. Switching between corporates meant logging out and back in, or clicking through a dropdown and waiting for the entire page to refresh.

We looked at migrating to a modern SaaS CRM. But migration meant moving 5,201 customers, 27 corporates, years of invoice history — and risking data loss or downtime. The cost and risk were too high.

The Solution: API Layer + Modern Frontend

Instead of migrating, we built a REST API layer on top of the existing MySQL database. This API exposes contacts, tasks, invoices, leads, and quotations as JSON endpoints — secured with per-corporate Bearer tokens.

Then we built Xapto Flow — a Next.js frontend that consumes those APIs. The result: a modern, responsive dashboard that reads and writes to the same database the legacy ERP uses. Zero migration. Zero downtime.

What Xapto Flow Does Today

Dashboard: Real-time stats — customers, tasks, corporates at a glance.
Contacts: Search, create, edit, delete — instant, no page reloads.
Tasks: Status filters, CRUD operations, date tracking.
Company Switcher: Dropdown in the sidebar — switch corporates in one click.
Google Sign-In: Secure authentication via Firebase. No password management.

Why Next.js + Tailwind

We chose Next.js for its React Server Components, file-based routing, and API routes that let us build a BFF (Backend-for-Frontend) proxy. Tailwind CSS gave us a utility-first design system that's fast to iterate on. TypeScript caught bugs before they reached production.

The Result

Xapto Flow went from concept to working dashboard in a single session. It connects to the existing ERP, respects per-corporate security, and provides a modern UI that feels native. And the legacy ERP? It keeps running. No migration. No risk.

← Back to Xapto