Faz3D
A platform for automating 3D printing quotes. The name is a triple reference: âfazâ is Portuguese for âmakesâ, the .xyz domain maps to the three axes of 3D space, and well, itâs about 3D printing.
I own a printer. The quote process for custom prints is tedious. Someone sends a file, you slice it, estimate time and material, factor in costs, reply manually. Both sides wait. I wanted to automate that.
The Architecture
The interesting constraint: 3D slicing is CPU-intensive and requires the actual slicer software (OrcaSlicer) installed locally. You canât run OrcaSlicer in a Lambda function. So the cloud handles coordination, and my printerâs PC does the work.
Cloud (Vercel + Supabase)
â poll every few seconds
My Printer's PC (Node.js worker)
â download model from Supabase Storage
â slice with OrcaSlicer CLI
â calculate price
â report results back This means the worker only runs when the PC is on. Thatâs fine: the printer only works when the PC is on anyway. The two are the same machine.
Pricing That Isnât Hardcoded
Pricing lives server-side, not in the frontend. Material costs change. Machine rates vary. The worker fetches pricing from the API and caches it so itâs not hitting the database on every job. Change a price in the admin panel, next job picks it up.
Dependent Form State
The quote form has cascading dependencies. Material choice affects available colors. Quality preset affects layer height and infill defaults. Quantity could affect bulk pricing. Managing this without the form becoming a mess of useEffects took thought.
The Monorepo
Three apps in pnpm workspaces: the quotes frontend (customer-facing), admin dashboard, and the worker. Each deploys or runs independently but shares types.
Current State
The quote flow works end-to-end: upload STL, configure settings, worker slices it, price appears. Not deployed yet. Still nailing the pricing model before going live.
Stack
- Next.js + React 19 + TypeScript
- Tailwind CSS 4
- Supabase (Postgres + Storage)
- Node.js worker running on my printerâs PC
- OrcaSlicer CLI for slicing
- pnpm workspaces
Why Iâm Building This
I own a Bambu Lab A1. Iâve done the manual quote dance. Itâs tedious on both sides. This scratches my own itch while letting me play with edge compute and computational geometry - problems that donât come up in typical frontend work.
