Skip to content
Oluwashina OyeleyeContact
All work

SaaS  ·  Quoting for the trades

Plumbline

A product site for quoting software used by roofers, plumbers and HVAC crews. The buyers spend their day on job sites, so the site is built from their world instead of from dashboard screenshots.

Role
Art direction, product design, front-end build
Built with
HTML, CSS, JavaScript, GSAP and ScrollTrigger, Lenis
Typefaces
Instrument Sans
Year
2026
Plumbline hero: Quote the job before you leave the driveway

Overview

Plumbline turns a site walk into a priced estimate: photos, a spoken scope and the contractor's own price book. Most software in this category is sold with feature grids and stock photos of people at laptops, to people who do not work at laptops.

I designed the site as an editorial piece. Golden-hour photography of real work, a quiet sans at large sizes, and motion that walks through the three steps of the product one at a time.

Plumbline hero on a phone
Walk the job step on a phone
Measured, priced, signed on a phone

The same site at phone width. Each layout is composed for the small screen rather than scaled down.

Key decisions

  1. 01

    Photography over interface

    Job sites, a truck cab, a water heater mid-swap. The product appears inside a phone in someone's hand. Contractors recognise their day before they read a word, which does more than any feature grid could.

  2. 02

    Editorial, not template

    Bracketed section labels, one large restrained typeface, and almost no colour apart from a single orange signal. It reads like a well-made trade publication, which is a register this audience already trusts.

  3. 03

    Motion that explains

    Scroll pins the walk, price and sign sequence so each step owns the screen, built with GSAP timelines and Lenis smoothing. Motion is used only where it carries the order of events.

Selected views

Next project

Cavora

A private medical record you actually carry: medications, vitals, results and paperwork, handed to a doctor with a QR code that expires when the visit ends.