Skip to main content

Sales CRM for an Essex Door and Window Installer

Client

Hainault Home Improvements

Industry

Doors, Windows and Fire Doors / Essex

Tech Stack

Next.js 15React 19TypeScriptDrizzle ORMPostgreSQLRailway (EU)Tailwind CSSPWAVercel

Timeline

Built and launched 2026

The Challenge

Hainault Home Improvements install doors, windows and fire doors across Essex. Their retail sales pipeline lived in a single spreadsheet of 1,499 leads with 2,421 chase notes, and it had stopped being usable years earlier. Nobody could answer which leads were going cold, which were worth chasing, or what the open pipeline was actually worth.

The hard constraint was not technical. This is a team who find spreadsheets complex, so anything requiring individual accounts, password resets and IT support would be abandoned within a fortnight. It had to be simpler than the thing it replaced, not merely better.

The data itself set the rest of the brief. The salesperson column was free text, so no lead had a proper owner. Not one of the 1,499 carried a follow-up date. Any design that assumed clean data would have collapsed on contact with the real thing.

What We Built

We built a live sales board around the customer's own seven-stage process, from New Work through to Sold or Dead, and imported the full history so it launched with real leads rather than an empty system.

Access is a shared passcode then pick your name, so there is nothing to administer, while every action is still attributed to a person. The board is drag and drop on desktop, with every stage reachable from a drawer on a phone, because a card that can only be moved by dragging is unreachable on the device the team actually carry.

Salespeople see their own leads and nothing else, enforced in the data layer rather than in the page, with an automated audit that attacks the rule six ways and fails the build if any of them get through. The board carries live pipeline value, a chase log on every card, tags the owner defines, and an Excel export.

Because the team are not technical, the app teaches itself: a replayable guided tour, and a help panel behind a question mark in the header that answers from a fixed set of written answers. It never invents one. An answer it made up would be worse than no answer, because the person asking cannot tell the difference.

Results

  • 1,499 leads and 2,421 chase notes migrated from spreadsheet to database at launch
  • Live in production and in daily use, with the team entering new work directly
  • Shared-passcode access with per-person attribution: no accounts to administer
  • Lead visibility enforced in the data layer, with an automated audit that fails the build if it can be bypassed
  • Page loads cut roughly 4x by moving the serverless functions to the same continent as the database
  • Full Excel export, a permanent chase log, and a 30-day operational audit trail
  • EU-hosted Postgres with nightly encrypted off-site backups

Ready to build something like this?

Whether it's a SaaS platform, a custom dashboard, or a brand website - we build bespoke tools that fit your business.