Concept build

Manufacturing and industrial sales

Kestrel CPQ

A configure, price, quote tool for the Kestrel Modular Workstation, an industrial workbench that does not exist. Choose the size, the worktop, the storage and the power package, and it enforces the engineering rules, prices the build as you go, draws it in 3D, and produces the quotation and the bill of materials.

The workstation, its part numbers and its prices are invented for this demonstration. Nothing in it is a commercial offer.

What it does

Six steps, from an empty bench to a bill of materials.

Guided selling
Six steps from bench size to a finished quote, and a sales engineer can work straight through them or jump to the one that matters.
Rules that explain themselves
Ten engineering rules decide what can be built. An option that will not work stays visible, greyed out, with the reason underneath it, and a selection that becomes illegal is corrected automatically and the correction is announced.
Live pricing
Every change re-prices immediately, with the volume discount broken out as its own line rather than folded into the total.
Output the factory can use
A bill of materials with part numbers, a printable quotation, and CSV and JSON exports that open cleanly in Excel and in a CRM.
A 3D preview that is really the configuration
The workstation is generated from the selected dimensions and materials at run time, so changing the width rebuilds the model instead of stretching a picture of one.

How it is built

The business logic never lives in a screen.

The rules engine, the pricing and the bill of materials are plain TypeScript with no user interface code in them at all. That is what makes them testable directly, and it is why the test suite runs in under a second without a browser.

The rules are data, not code.

Each rule is an object describing what it requires and what to do when the requirement fails, written in a small vocabulary rather than as a function. That is what lets the application list its own rules on the review step and highlight the ones currently constraining the build. Adding a rule is adding an entry to an array. No screen changes.

An option that cannot be built is explained, not hidden.

A five drawer cabinet needs a bench at least 60 inches wide. At 48 inches it stays on screen, greyed out, with that sentence underneath it. Hiding it would be tidier and would teach the buyer nothing about the product. If a selection becomes illegal because something else changed, it is corrected automatically and the correction is announced rather than done quietly.

An invalid build cannot reach a quote.

The store only ever holds a configuration that has already been through the rule engine, so no screen can put an unbuildable bench into state, and the quote step re-checks before it writes a line. That makes it a property of the structure rather than a check somebody has to remember to write.

tests, all passing
183
configuration rules
10
step guided flow
6
servers to maintain
0

Output

Something the factory can actually work from.

The review step turns the finished configuration into a bill of materials: one line per physical item, with a part number that resolves against the build, so a 60 inch hardwood top becomes KMW-TOP-HWD-60. It exports as a printable quotation, as CSV that opens cleanly in Excel, and as JSON for a CRM.

The review step of the Kestrel CPQ configurator: a bill of materials listing part numbers such as KMW-BASE-4824 and KMW-TOP-SST-48 against descriptions and quantities, beside a 3D preview of a black steel workstation and a summary panel showing an extended total of $24,139.20 for twelve units.
  • React and TypeScript
  • Three.js for the 3D preview
  • No backend, no database, no login
  • Deploys as static files

There is no server behind any of this. The whole application is static files, which is the same thing every site the studio builds is, and it is why a tool like this costs no more to host than a landing page.

Got something with rules in it?

Pricing that depends on options, a quote nobody can get wrong, a product a customer should be able to configure themselves. If that is the shape of your problem, it is worth fifteen minutes.