Midtown Home Improvement Enterprise CRM · Design + ReactJS · 2023 → ongoing

How design and engineering helped a US home-improvement leader rebuild its CRM.

Outcome One CRM, five role-specific surfaces, shipped as ReactJS, live and growing. 35+ years in market, 10,000+ customers, multi-branch operations. Ongoing partnership.
Midtown Home Improvement, internal CRM, design + ReactJS

Imagine the operational backbone of a 35-year business, finally designed for the people running it.

Midtown is one of the most trusted names in US home improvement, 35+ years in market, 10,000+ customers, branches across multiple cities. The internal CRM tied together leads, appointments, jobs, sales, and service tickets, serving salesmen, telemarketers, telemarketing managers, and canvass managers from the same crowded surface. They needed a partner who could redesign every module and ship the implementation in ReactJS alongside their backend team. We did both.

01One CRM, many roles. Salesman, telemarketer, telemarketing manager, canvass manager, each needs a different surface, all on the same data model and components underneath.
02Branch as a first-class axis. Multi-branch operations need scorecards and roll-ups that scale, not a filter bolted onto a single-branch IA.
03Design + ReactJS in one team. Designs shipped directly as React, integrated against the backend team’s APIs, no handoff gap, no specs lost in translation.
Roles 5 surfaces One CRM, five role-specific views. Salesman, telemarketer, telemarketing manager, canvass manager, operations leadership.
Stack Design + React One team did both. Designs shipped as ReactJS, integrated with the backend team’s APIs, no handoff gap.
Scope Multi-branch Branch scorecards built in. St. Louis, Kansas City, Nashville, Chicago, Atlanta + All-Branches roll-up.
Status Still shipping Ongoing partnership. Engagement still active; we keep building modules and primitives as Midtown grows.
The story

Redesign the operational backbone. Ship it ourselves.

Midtown is one of the most trusted names in US home improvement: 35+ years, 10,000+ customers, multi-branch operations across decking, fencing, roofing, siding, gutters, windows, and doors. The internal CRM was the operational backbone managing leads, appointments, jobs, sales, and service tickets. Years of feature growth had left it crowded, inconsistent, and increasingly slow. The audit named four costs: five workflows on one cluttered surface, one UI for every role, branch as an afterthought rather than a first-class axis, and a field-services CRM stuck on the desk.

The brief was to redesign every module, ship role-specific surfaces, and ship the implementation in ReactJS alongside Midtown’s backend team. We rebuilt the IA with branch as a primary axis (St. Louis, Kansas City, Nashville, Chicago, Atlanta plus an All-Branches roll-up), designed five surfaces on one data model (salesman, telemarketer, telemarketing manager, canvass manager, operations leadership), and translated every design directly into ReactJS with API integration and mobile-responsiveness across every flow. The partnership is still active.

ClientMidtown Home Improvement
RegionUS (multi-branch)
EngagementDesign + frontend engineering pod
StatusLive, ongoing partnership
01 · Design

Five role-specific surfaces on one data model.

Branch scorecards as the front door. Integrated modules (Contacts, Job Management, Appointments, Service Tickets, Sales CRM). Salesman, telemarketer, telemarketing manager, canvass manager, and operations leadership each open the platform to the version of it that’s actually for them, sharing the same components and data underneath.

02 · Engineering

Shipped in ReactJS alongside the backend team.

Most CRM revamps die in the handoff. We didn’t hand off. Designs translated directly into a component-based ReactJS codebase, APIs integrated with Midtown’s backend, performance tuned for the table-heavy views, and mobile-responsive across every flow. The component system shipped alongside production, so new modules after our work get assembled, not redrawn.

Chapter 01

Dashboard: branch scorecards as the front door.

The dashboard is the surface every Midtown user opens first. We rebuilt it as operational truth at a glance. Branch & Production Scorecards across all five cities plus an All-Branches roll-up, each surfacing Total Written, Average Sale, Sales %, Leads Issued / Ran, Total Sales, Total Collected, Total Released. A persistent date-range filter and Add-New-Lead CTA stay pinned to the header, so the most-used action is always one click away.

crm.midtownhi.com/dashboard
Midtown CRM Dashboard. Branch Scorecards across St. Louis, Kansas City, Nashville, Chicago, Atlanta with sales metrics, plus Date Range filter and Add New Lead CTA in the header
Dashboard Branch scorecards · operational truth at a glance The front door
Chapter 02

Integrated modules: leads, contacts, jobs, tickets, service.

Five modules now share primitives, share data, and let the user move between them without re-orienting. Contacts (lead lifecycle from inquiry through job completion), Job Management, Appointment Management, Service Ticketing, and the Sales CRM. The Contact detail surface is where the integration shows up most: one record carries contact info, location with Zillow + Google, inquiries, activity, email history, and folder-organized job history across every product line. The customer record is finally one record.

crm.midtownhi.com/contacts
Midtown CRM Contacts module, searchable, filterable directory with Name, Email, Phone, Zip, City, Branch columns and lead-status indicators
Contacts list Searchable · branch-filtered · lead-status indicators List view
crm.midtownhi.com/contacts/detail
Midtown CRM Contact detail, full record including contact info, Zillow + Google location, disposition dropdown, and tabbed inquiries / activity / email / jobs history with folder-organized job views by product line
Contact detail Inquiry → activity → email → jobs · folder by product One record, full lifecycle
Chapter 03

Five role-specific surfaces, one underlying system.

Salesman, telemarketer, telemarketing manager, canvass manager, operations leadership, each opens the platform with a different set of questions. The Salesman view is personal (my sales %, my volume, my appointments, my delayed jobs). The Canvass Manager view is operational, with a multi-filter toolbar and STATS / ISSUE toggle for cross-team triage. The Telemarketer gets direct-call functionality embedded in the contact detail. Same data model, five different jobs.

crm.midtownhi.com/salesman/dashboard
Midtown CRM Salesman dashboard. Sales Percentage and Sales Volume widgets with week / month / year breakdowns, Your Appointments table by name and address, and Your Delayed Jobs section
Salesman My sales % · my volume · my appointments · my delayed jobs Personal pipeline
crm.midtownhi.com/appointments
Midtown CRM Canvass Manager view. Appointments table with multi-filter toolbar (status, date, assigned, branch, result, product, primary, secondary, tertiary), STATS / ISSUE toggle, and sortable columns including When, Next Day, Primary, Secondary, Tertiary
Canvass Manager Multi-filter toolbar · STATS / ISSUE toggle · cross-team triage Operations
Chapter 04

Frontend engineering: shipped in ReactJS alongside the backend team.

Most CRM revamps die in the handoff, intent gets lost, components mismatch, performance regresses. We didn’t hand off; we shipped the ReactJS ourselves alongside Midtown’s backend team. Designs translated directly into a component-based codebase, with API integration, performance optimization for the table-heavy views, and full mobile responsiveness so the field team has the same access as the office. The component system shipped alongside production work, new modules after our engagement get assembled, not redrawn.

Outcome · live · ongoing partnership · mobile-responsive

CRM clutter out. Operational truth in.

The new CRM streamlined Midtown’s operational workflows across every role: salesmen, telemarketers, managers, and the leadership above them. Per the case file, feedback at every level was positive on usability, clarity, and efficiency. The partnership is still active; we keep building modules and primitives as Midtown’s operations grow.

Book a free sprint
Pilot week · on us

Internal CRM holding your team back? Start with the same free week we ran for Midtown.

Five working days, a senior product designer on the most painful module in your CRM, with frontend on the table when you need it. If it doesn’t click, keep every file we ship.

  • Capped at 4 sprints / month
  • No card · NDA on request
Next case study → Case 01 · HoneyBricks · 2022–24

Two years of design + frontend, ending in an acquisition.

Embedded design + frontend pod for a Silicon Valley real-estate platform. The other design+engineering long engagement, acquired by EquityMultiple.

Acquired By EquityMultiple
24 mo Embedded pod
PropTech · Real estate · AI Read →