EstiMate

Mobile app, brand Identity, & design system

2021-2026

About

EstiMate is a mobile app designed to help inexperienced business owners quote the price of home service jobs accurately and consistently.

EstiMate Home screen

Intro

A passion project to create the best cost estimating tool for contractors, started from personal experience.

EstiMate began as an early foray into entrepreneurship. Having been involved with a company that helps students start painting businesses, a friend came to me with the classic ‘we should build an app for this’ scenario, and we did just that.

The project didn’t turn into the million dollar exit we envisioned, but I still dream of creating the solution that I would have loved to have when running my own painting business. That’s why, years later, I’ve revisited the project - starting with a comprehensive design system and redesign of the core flows.

Estimate Complete screen, 2021

Estimate Complete screen, 2026

Backstory

New business owners were losing time and money doing cost estimates with pencil and paper.

Student business owners were trained to do estimates using a simple paper form and a book of ‘standards’ which outlines how long different tasks take. This method was prone to mistakes (like only pricing for one coat of paint instead of 2) and papers were being lost in the chaos of day to day operations.

The goal of the EstiMate app was to make the estimating process both fast and foolproof, making it easier for inexperienced business owners to learn the process that’s fundamental to a successful contracting business.

The paper forms used to do an estimate without the EstiMate app.

Version 1.0 was designed and built while running a painting business of my own.

As the team and I continued to develop the app, we started our own painting business to fund the project and stay close to our users. Using the product ourselves let us refine the UX from direct experience on a daily basis. It was a good sign when we realized there was no other way we’d rather do estimates.

Of course, version 1.0 had plenty of room for improvement. My own design skills were admittedly rough, and with resources spread thin we chose to develop it as a browser app for mobile and desktop simultaneously, resulting in a clunky UX on both platforms.

Screens from version 1.0 of the EstiMate app

The Redesign

All core flows were redesigned with a new design system built to handle the functionality-dense UI of the app.

Version 1.0 packed a lot of information and functionality into every screen, leaning more towards a complex software than a simple app. The intent of this was to ensure users had all the freedom that pencil and paper gave them while still providing the guard rails they needed.

The goal of Version 2.0 was to maintain this complexity and organize it in a way that made it accessible when needed but not overwhelming. Built into the design system is a consistent set of patterns that allows additional functionality to be hidden, but within reach, behind sub-menus or dropdowns.

Filling out item details

Reviewing an estimate before proceeding to finalize the price

Last-minute manual adjustment of calculated totals

Creating pricing options after calculating the base cost of a job

Design System

A prestine design system was needed to overhaul the app and get it ready for the era of AI development.

I began the first version of the app with every intention of building and maintaining a solid component library. As with many design projects, that fell apart as timelines accelerated and explorations went in every direction.

However, having done all of that exploration and refinement in version 1.0, I had everything I needed to build a complex design system with full foresight of what would be needed and how to improve on what already existed.

A well built design system is also necessary to ensure handoff and development goes smoothly in the age of vibe coding.

A component I call the ‘Chipper’ as it combines a chip and a stepper

Content Button component

Item Group component

Input component unfilled and filled

Custom icon set