WorkCase study 01 / 03

PlankCAD

Job costing, true-margin quoting and cut planning for custom woodworking shops, in one workspace.

Type
B2B SaaS
Model
Subscription, 14-day free trial
Users
Furniture makers, cabinetmakers, small shops
Our role
Product, design, engineering, launch
Status
Live
plankcad.com
PlankCAD website
PlankCAD on mobile

The problem, and how we approached it.

The problem

Custom shops quote from spreadsheets. Hardware gets forgotten, unbilled hours go uncounted, overhead is left out, and margin gets confused with markup: a 30% markup only keeps 23.1%.

The result is jobs that look profitable on paper and quietly lose money, with quotes nobody can reconstruct six months later.

Our approach

We built one workspace where the parts you price are the parts you cut. Every cost layer is shown separately, the price comes from a true gross-margin target, and the same numbers feed the cutting plan.

After the job, actual hours and invoices are recorded against the frozen estimate, so the next quote gets better.

Six pieces, one product.

  1. Job estimatorMaterials, hardware, labor phases, waste and overhead, each shown as its own layer.
  2. True gross marginPrice = cost ÷ (1 − margin). Never cost × markup.
  3. Customer quote PDFBranded quote with scope, line items, tax and terms. Internal costs stay private.
  4. Sheet optimizerNests parts on real sheet sizes, respecting saw kerf, grain direction and edge banding.
  5. Offcut rackLeftover stock is searchable and offered back before a new sheet is bought.
  6. Estimated vs. actualRecords what a job really cost and earned per shop hour, against the estimate.

Under the hood

Deterministic money math.

The same inputs always produce the same total: no estimate ranges, no hidden rounding, and no AI-generated numbers. Every layer is visible, so a shop owner can check the arithmetic line by line.

  • Deterministic pricing engine with every cost layer exposed
  • Sheet nesting with 3.2mm kerf and grain direction
  • Offcuts returned to stock and offered on the next job
  • Estimates frozen at quote time, then compared with actuals
  • Rate limiting and schema-validated inputs on the API
Example job · oak kitchen islandEngine output
Cost to the shop$1,421.46
Target gross margin30%
Customer price$2,030.66
With a 30% markup instead$1,847.90
Left on the table, one job−$182.76
Actual margin after the job30.0% → 24.9%

Figures from PlankCAD's public example, calculated by the production code.

What it runs on.

Frontend

  • TypeScript
  • React
  • Vite
  • Tailwind CSS
  • Zustand
  • Framer Motion

Backend & data

  • Supabase
  • Postgres
  • Upstash Redis
  • Zod

Payments & docs

  • Stripe
  • jsPDF

Quality

  • Playwright
  • Vitest
  • axe accessibility
  • Lighthouse

Hosting

  • Vercel
  • Vercel Analytics

Inside the product.

Have a product like this in mind?
We build them end to end.

Start a project