Real-Time Client Portal for Global Clean Energy QA
Replaced quarterly PDF reports with a real-time self-service portal serving clients across 85+ countries. Support tickets dropped 40% in 90 days, and 94% of clients adopted it within six months.
The Challenge
A global clean energy QA firm audited solar and battery manufacturers across 85+ countries. Every quarter, they delivered massive PDF reports — 60+ pages of factory data. By the time clients received them, the information was weeks old. Support teams spent their days answering one question: 'What's the status of our facility?' — even though the answer was already in the database. Clients were flying blind. The team was buried in busy work.
The Impact
Within 90 days, clients were checking the portal instead of emailing for status — support tickets dropped 40%. 94% of clients were actively using it within six months, a rare adoption rate for compliance software. The team could finally ship new features weekly instead of monthly. Clients got faster answers. The team got their time back.
What We Built
A portal that replaced quarterly PDFs with real-time dashboards. Clients log in once and see the compliance status of all their factories — live. No emails. No waiting. Behind the scenes, we unified three disconnected internal systems into one platform, pre-computed the heavy data aggregations so dashboards load in under 300ms, and set up zero-downtime deployments so improvements ship without disrupting clients.
Technical Diagrams
System Architecture
Dashboard UI
Background
The client operates one of the largest independent quality assurance practices in the global clean energy supply chain. Their inspectors audit solar panel manufacturers, battery cell producers, and inverter factories across Asia, Europe, and the Americas — covering over 15,000 factory inspections annually.
Their existing workflow was built around spreadsheets and manual PDF generation. Consultants would pull data from internal MongoDB collections, compile it into formatted reports, and email 60-page PDFs to clients on a quarterly cadence. For a client with factories across five countries, this meant waiting up to three months for visibility into audit outcomes.
The support burden was significant: account managers spent hours each week responding to emails asking “what’s the status of our Guangdong facility audit?” — information that was already in the database but inaccessible to clients.
Technical Approach
Frontend Architecture
We chose Next.js with server-side rendering to ensure fast initial loads for clients accessing the portal from manufacturing regions with variable internet quality. The dashboard surfaces three primary views:
- Factory Overview — Aggregated compliance scores, audit timelines, and corrective action status across all factories in a client’s portfolio
- Audit Detail — Individual inspection reports with photo evidence, test results, and inspector notes, replacing the static PDF format entirely
- Compliance Tracker — Real-time status of IEC, UL, and regional certification requirements with automated alerts for upcoming deadlines
Role-based access control ensures factory managers see only their facility data, while corporate quality directors get portfolio-wide analytics with drill-down capability.
API & Data Layer
The Node.js API layer handles complex multi-factory aggregation queries against MongoDB. We designed a pipeline architecture that pre-computes common dashboard metrics on a scheduled basis, reducing p95 query latency from 4.2 seconds to under 300ms for the heaviest dashboard views.
API endpoints follow a consistent pattern: raw data queries for detail views, pre-aggregated materialized views for dashboards, and WebSocket channels for real-time audit status updates when inspectors submit findings from the field.
Monorepo Strategy
Using Turborepo, we consolidated the client portal, an internal inspector mobile app, and an admin dashboard into a single monorepo. Shared packages include the component library, API client SDK, and TypeScript type definitions — eliminating drift between applications and cutting onboarding time for new developers from two weeks to three days.
Deployment & CI/CD
Azure Web Apps with staging slots enables zero-downtime deployments. GitHub Actions runs type checking, linting, unit tests, and integration tests on every pull request. Merges to main trigger automatic deployment to staging; production promotion requires a single approval click.
Database migrations run as part of the CI pipeline with automatic rollback on failure, ensuring schema changes never break the running application.
Results
Within 90 days of launching the portal:
- Client support tickets related to status inquiries dropped 40%
- 94% of active clients had logged in and were using the portal regularly
- Average time-to-insight for clients went from 6–12 weeks (waiting for the next quarterly PDF) to under 30 seconds
- The development team shipped updates 4x faster using the monorepo CI/CD pipeline compared to the previous manual deployment process