<500msDashboard loads, down from 5s+
2 → 1Apps and servers merged
11Role-based dashboards
9Business entities on one platform
The problem
An infrastructure group ran service ticketing and executive reporting as two separate apps on two servers, with dashboards querying 5 ERPNext sites one after another.
What we built
One unified platform, delivered end to end: one PostgreSQL database, one auth and role system and one Next.js frontend, for 9 business entities across 5 ERPNext v15 Frappe Cloud sites.
What we delivered
- Ticketing engine on NestJS and Prisma: 8 creation sources into a single service and a 9-state workflow, with a responsive PWA field service visit flow and 15 email and SMS notification triggers
- Two-way ERPNext integration: a read-only nightly master pull, REST-API-only writes (Stock Entry, draft Sales Invoice) and an inbound webhook, with no direct database writes, so the Frappe permission engine is respected
- 11 role-specific dashboards for heads of sales, finance and manufacturing, the MD and more, on Next.js and React
- Node.js middleware with ERPNext role sync, parallel fan-out across up to 5 sites and Redis per-widget caching: under 500ms against 5s+ before
- Sales dashboard with pace-to-target, a pipeline funnel with bottleneck detection and a deal drawer with activity timeline
Tech stack
- Next.js
- React
- TypeScript
- Tailwind CSS
- NestJS
- Node.js
- Prisma
- PostgreSQL
- Redis
- MariaDB
- ERPNext v15
- JWT
- PWA
Related services
ERP IntegrationConnect your ERP to your other software, add the modules it's missing, and get dashboards your management can use.Reports & DashboardsDashboards and reports that bring numbers from your ERP and apps into one place, so leadership can act on them.
Same kind of problem?
Tell Us About Yours