Skip to content

// Case study

QPIMS Platform

Jobs, crews and installs in one platform that the field and the office both run on.

LCP on a mid-range phone

from2.9 sto0.8 s

Client
Quality Installs Co.
Year
2025
Role
Lead software engineer
Kind
Platform
A laptop showing a dark dashboard on an office desk, a team working in the background

01

The problem

Quality Installs ran its jobs on spreadsheets, group chats and phone calls. Crews turned up without the right specs, and the office only knew a job was finished when someone remembered to call it in.

02

The approach

  • One data model for jobs, crews and installs, in PostgreSQL on Supabase, so the field app and the office dashboard read the same record.
  • Crews get the day’s jobs on their phone, with specs, photos and the customer’s notes, and close each one out from the site.
  • The office watches every job move from booked to installed as it happens. Nobody has to call to ask.
A laptop on an office desk showing the QPIMS dashboard, with a coffee cup and phone beside it
The office dashboard, where every job’s status lands as it changes
Paper sketches of a phone screen with sticky notes, on a desk next to a phone and pens
Early paper sketches of the crew’s job screen

03

The result

Every job now lives in one place, from the first booking to the signed-off install. The field app loads in 0.8 s on a mid-range phone, down from 2.9 s, so crews actually open it on site.

The office finally sees what the field sees, the moment it happens.

Built with

  • Next.js
  • TypeScript
  • Supabase
  • PostgreSQL
Next caseMobile · ElivateElivate WalletA digital wallet across web and mobile, from the API to the screens people tap.

// Start a project

Tell me what you are building.

Three quick picks so the first reply is useful. You finish the message on the contact page.

01What do you need?
02Rough budget

brief.ts

draft, not sent

export const brief = {

kind: null, // not picked yet

budget: null, // not picked yet

name: null, // not typed yet

}

or write to hello@bokoisaac.com

Nothing is sent from this page. Your picks are kept in this browser tab and wait for you on the contact form.