UpBuoy.
Pool-service operations software, built as our own product: the office dispatches optimized routes, techs work from native apps, and every stop closes with photo proof and an invoice.
A pool route runs on trust.
A pool-service company juggles recurring visits across dozens of properties, techs who need a sane driving order, chemical readings that have to be right, and customers who want proof the visit happened. That work usually lives in a paper binder, a whiteboard, and a group text, and it leaks jobs, chemicals, and invoices.
One system, office to truck.
UpBuoy is a multi-tenant platform where every part of the operation reads from the same record:
Routes that route themselves
A route optimizer with three algorithms (nearest neighbor, genetic, and 2-opt over a real distance matrix) turns a customer list into an efficient day, and a nightly job generates the recurring stops.
Native field apps
A SwiftUI iOS app and an Android app, in English and Spanish, give techs their route, per-stop checklists, readings, photos, and payments without touching the office.
Photo-verified service
Every visit closes with photos. Uploads compress themselves (1920px, tuned JPEG), and a nightly sweep keeps two storage buckets lean; the photo backlog shrank by more than half.
Billing and payments
Quotes, invoices, and payments on Stripe, including Connect for multi-party payouts, with public no-login views so a customer can open an invoice straight from a text.
Customer comms
Email through Resend and SMS through Twilio, logged against the customer record with tags and history, so the office sees every conversation in one place.
Water chemistry
A Langelier Saturation Index calculator, dosing math across a 14-chemical catalog, and a guided walkthrough with simulated test instruments for training.
How we built it.
The platform runs on a hardened Postgres backend, roughly 38 tables with tenant isolation enforced on every one of them, signed authentication throughout, and a public API behind per-key credentials. The field apps are fully native, sharing one backend with the office. AI earns its place in two spots: a receipt scanner for expenses and an import assistant that maps any spreadsheet's columns onto the schema, so switching from a competitor does not mean a week of retyping.
Results.
One operation, three platforms: the office on the web, techs on iOS and Android. Routes come out of an optimizer instead of a whiteboard, every stop ends with photo proof and a chemistry log, and billing runs on the same record the tech closed, so the invoice never disagrees with the visit.
Visit the live site →