Jagdeep Singh

Available

Projects

Site Hero Check

A contractor-compliance SaaS for residential builders. A tradie scans a QR code at the site gate, reads the builder’s induction and signs in from their own phone — no app, no account, no paper sheet. Missing paperwork is chased by email on a schedule that tapers to a stop and never blocks anyone from working: the record of asking is what satisfies a regulator.

siteherocheck.comSource private — in build, phase 1

The problem

A builder has to be able to show a regulator who was on site, what safety rules they agreed to, and that the required paperwork was asked for. The paper sign-in sheet at the gate answers none of that reliably, and the compliance products that do answer it ask every tradie to download an app and make an account before they can pick up a tool.

How it works

A QR code is printed and displayed at the site entrance. A tradie scans it on their own phone, gives their details, reads the builder’s induction and answers its attestation questions, and signs in — the whole flow is server-rendered, with no app and no account. The induction is versioned, so an acknowledgement always names exactly what was agreed to rather than whatever the current text happens to say. Afterwards the builder configures which documents they need from which trades; tradies are emailed an upload link and reminded on a schedule, and the builder approves, rejects or waives what arrives.

Scan flowserver-rendered, phone browser, no account
Laravel appvisits, versioned inductions, evidence trail
Builder adminLivewire, who came, agreed, was asked
Document requestsper builder, per trade, tapering reminders
Emailthe tradie’s channel — upload link, no login

Stack

  • Laravel
  • Livewire
  • Postgres
  • PHP
  • Pest

Decisions and trade-offs

A missing document never stops a tradie working

The obvious rule for a compliance product is no documents, no entry. It was rejected twice over. It fails at 6:45am when a plumber cannot start because his insurance PDF is on a laptop at home, and the builder’s response to that is to stop using the product. And the builder’s stated need was evidence — being able to show that they asked repeatedly and were not given the document. A complete record of the asking satisfies that; refusing entry adds nothing to it. Barring someone is a person’s decision, made by hand, carrying a reason, reversible in one click.

The QR code carries a revocable token, not the site’s id

A printed sign is a physical object — it gets photographed, stolen, or left on a finished build. A guessable URL would let anyone sign in to a site without being there, which quietly destroys the value of the record. A token can be revoked and reissued without discarding the site’s visit history, and several tokens can point at one site for separate gates at no extra cost.

Documents belong to the tradie, not the builder who asked

Attaching an uploaded file to the requesting builder is the obvious model, and it asks a tradie to upload the same public liability certificate once per builder, forever — which is the friction the feature exists to remove. So a document belongs to the global tradie, and a builder reaches it only through its own request. The rule that keeps that honest is that a builder must never learn a document was collected by another builder; the tradie is still asked, and may re-submit their own file in one tap.

Reminders taper to a stop, and pause when the work does

“Keep asking until it turns up” read naively is an email a day forever — unsolicited mail to someone who signed no form, ending with the sending domain in spam folders. So the cadence is a finite list of intervals that runs out, at which point the ask is marked unresolved so the builder knows to pick up the phone. It also pauses when every site a tradie works for that builder is archived, and resumes where it left off rather than starting over — which is why the schedule is a cursor per ask, not a list of dates computed up front.

Next project: CartographerAll projects