← Projects
Case Study

Liqua

Pegasus Infocorp·IoT · Fintech · SaaS·Sep 2022 – Jun 2025
Vue 3React.jsNestJStRPCGCPFirestoreTypeScript
40%
Frontend performance improvement
24h→5m
Reconciliation lag reduced
3yrs
Legacy data migrated without loss

Overview

Liqua is a cloud-native SaaS platform for smart pool management, handling IoT telemetry from pool hardware, membership billing, and financial reconciliation for hospitality and leisure operators.

The Problem

The legacy codebase had no component reuse strategy — every page duplicated UI logic, leading to inconsistencies and slow feature delivery. Financial workflows relied on manual exports to reconcile with Xero and MYOB. IoT data from pool sensors was stored in a SQL database that couldn't handle time-series write volumes at scale.

Approach

Component library with Vue 3 + Pinia

Redesigned the frontend from class-based Vue 2 components to a composables-first Vue 3 architecture. Built 40+ reusable components covering forms, data tables, charts, and sensor status indicators. Pinia stores replaced Vuex with typed, composable state slices that colocated data and logic.

IoT telemetry migration to Firestore

Led the migration of three years of IoT sensor data from PostgreSQL to Firestore via GCP Cloud Run functions. Designed a collection structure optimised for time-series queries with subcollection-per-device sharding, eliminating the write bottleneck that had been causing data loss during peak hours.

Financial integrations: Xero, MYOB, LIGHTSPEED

Built a tRPC-based integration layer connecting Liqua's billing engine to Xero (accounting), MYOB (payroll), LIGHTSPEED (POS), and Twilio (SMS notifications). Webhooks replaced polling, reducing reconciliation lag from 24 hours to near real-time.

← All projectsGet in touch →