Why I Built a Sample Quoting App
August 21, 2026
I have been working with manufacturing companies for years, and while these organizations, over time, have increased their use of software in their day to day operations, providing cost estimates and quotes is often still done manually.
One or more spreadsheets are set up with formulas that someone wrote years ago, and everyone is afraid to touch because they don't want to break something.
Raw material costs are often looked up anew when a quote request comes in. Labor costs are entered by hand, and margins are often inconsistent because different people may have different ideas on how to include them.
When a quote request comes in for a job that's very similar to one that was already quoted before, the old estimate need to be found, and modified based on pricing and requirements that may have changed in the meantime, requiring manual adjustments.
The reason for these manual steps and inconsistencies is because quoting starts small. It's easy to initially set up with a simple spreadsheet and just go from there. The requirements for quoting, however, quickly grow, and what started as a single spreadsheet often turns into a complicated system of spreadsheets, documentation spread out in different places, notes, and archived email messages to look up.
As complexity creeps in, there is never time to stop and rethink the whole system. Team members just try to adapt and fit the tools they have into a more complex job because they just want to get the quote out the door quickly.
Of course, this leads to inefficiency, errors, lost time, and missed opportunities.
That's why having a dedicated system for quoting that accounts for all the required details and nuances makes sense. Such a system improves efficiency and reduces mistakes, while keeping track of existing and past quotes.
That's why I decided to build a demonstration quoting app.
I want to show how to take a manual, complicated process, and turn it into a more efficient way of working, with consistent results across the organization, and with a better output that's understood by anyone involved in it.
In this series of blog posts, I am going to document the process I use to build this app in order to show the way I work with clients that have a similar problem.
Each article in this series focuses on one single feature of the application as I build it.
I want to make clear that this is a demonstration app, not a real product. The goal of this app is to show the way I approach client projects. I start out building a minimun viable product, a small but working first version of the app, and then I iterate on it several times so more features can be added as the app evolves and requirements get better understood.
In my experience working with clients over the years, I learned that the best solutions to a problem are the ones that evolve over time. We don't often know enough about a problem until we start working on it. The process of iteration makes overlooked issues and side effect come to the surface, and that helps innovation and creativity in the approach to solving the problem.
These blog posts
Even though these blog posts are mainly addressed to non technical readers, I will still include technical details and some code I used to develop my app. Some readers may still benefit from practical details on how I approached a software problem. But if these explanations don't interest you, feel free to skip them.
What the app actually does
As I said before, the main purpose of this app is to help with quoting a job. The app, though simple, does several things:
- It keeps a library of costs related to the quote process. These are labor costs, material costs, overhead, etc. The dollar amounts can be updated, and it's possible to modify, add, or remove certain costs as the business needs evolve.
- It builds a quote from line items pulled from the rate library, and calculates partial and total costs consistently and clearly.
- It applies a standard margin in a consistent way.
- It tracks each quote status, so we know exactly where the quote is in its life cycle: draft, sent, accepted, rejected, etc. Nothing gets forgotten or overlooked.
- It allows for cloning a particular past quote, so we don't have to reinvent the wheel every time a similar job comes in, and can be more productive when making repeated quotes.
- It produces a clean PDF document with all the details for the customer or other stakeholders.
This quoting app shows a way to take a manual system scattered across spreadsheets, emails, and web searches, and make it more intuitive and predictable, so it's more consistent when used by different people inside the organization, and it's easier to understand and evolve over time.
What's next
The next blog post will show why it's important to keep all costs into a single, predictable place with a rate library.