All work

Internal staff app

Quote-to-Production Console

One console for quotes, artwork approvals, pricing and production — across six staff roles.

The real staff console, running on demo quotes and customers.
Client
WASIP Ltd.
Type
Internal staff app
Year
2026
Status
In use · demo data
01

The brief

Where it started.

Quote requests from the mockup builder needed somewhere to go: contact, pricing, artwork review, order conversion and hand-off to outside decorators — with one canonical status per job, enforced prerequisites, and an audit trail.

02

What we built

So we shipped 5 pieces.

  1. 01Quote pipelineNotes, attachments, history and customer-facing quote PDFs
  2. 02Artwork approvalsVersioned proofs and private customer approval links
  3. 03Pricing hubQuantity breaks, decorator rate tables, setup fees and a calculator
  4. 04ProductionSales orders, a production queue and briefs routed to outside decorators
  5. 05Roles & auditSix staff roles enforced in the database, with an audit log
03

Under the hood

The part worth a closer look.

The clever part

A pricing edge function resolves every imprint through decorator-specific rate tables — stitch-count and size/quantity matrices, setup and repeat fees, surcharges — before falling back to generic rules.

04

Stack

And what it all runs on.

  • React 18
  • Vite
  • Supabase
  • Postgres RLS
  • Edge Functions
  • pdf-lib

The whole system

Built for WASIP

Five builds, one pipeline. A buyer's logo enters on the website and comes out the other end as a filled supplier form — every step along the way is software we built.

  1. Step 1WASIPBuyers browse the catalogue
  2. Step 2Logo Mockup & Quote BuilderPlace a logo, request a quote
  3. Step 3· You're hereQuote-to-Production ConsoleStaff price, proof and convert it
  4. Step 4Docket Board for NetSuiteProduction tracks every docket
  5. Step 5Proof2PrintSupplier forms fill themselves

Need something like this?

Tell Echo what you’re trying to build — rough is fine. You’ll leave with a clearer sense of what it would take.