Skip to content

Introduction

PrintStudio is a production-grade manufacturing pipeline and storefront for hybrid 3D print + laser fabrication shops. It connects a customer-facing configurator directly to a physical machine fleet — handling pricing, job scheduling, printer routing, inventory, and fulfilment in one coherent system.

┌──────────┐ ┌──────────────┐ ┌─────────┐ ┌──────────┐ ┌──────────┐
│ Customer │──▶│ Configurator │──▶│ Order │──▶│ Pricing │──▶│ Queue │
└──────────┘ └──────────────┘ └─────────┘ └──────────┘ └────┬─────┘
┌──────▼─────┐
│ Router │
└──────┬─────┘
┌──────────┐ ┌──────────┐ ┌────────────┐ ┌──────▼─────┐
│ Ship │◀──│ Ready │◀──│ Post-Proc │◀─│ Printer │
└──────────┘ └──────────┘ └────────────┘ └────────────┘

SKU-first — Every product is a pre-costed template. Margins are known before the first gram is extruded. Operators define SKUs with material, machine type, estimated print time, and quality tier; the pricing engine computes a floor price automatically.

Queue-driven — Jobs move through a typed state machine enforced by BullMQ workers. No ad-hoc execution, no manual status updates. Every transition is logged and auditable.

Profit-per-machine-hour — The router assigns jobs to maximise utilisation and margin, not just throughput. A Bambu X1C running fast draft prints for a low-margin order may be held back for a high-margin functional part.

FeatureDescription
Product ConfiguratorCustomer-facing form builder backed by 408 Zod schemas in packages/domain
Pricing Enginebase + material + print_time × demand × quality multipliers, rush surcharges, batch discounts
Job State Machine49 typed transitions across 8 states, enforced by BullMQ workers
Printer RouterAssigns jobs to optimal machine by type, capacity, and margin targets
Inventory TrackerFilament/resin/laser stock tracking; auto-blocks jobs when insufficient
AutoPilot OrchestratorMonitors fleet, auto-routes, retries failures, batches compatible jobs
Operator DashboardReal-time job board, printer status, revenue analytics
Setup Wizard6-step guided onboarding for connecting infrastructure
REST API100+ endpoints with OpenAPI spec and Scalar interactive UI
LayerTechnology
FrontendAstro 6 (SSR)
API serverHono + Bun
DatabasePostgreSQL 16 + Drizzle ORM
QueueBullMQ + Redis 7
Schema validationZod (408 schemas)
PaymentsStripe
ObservabilityPrometheus + Grafana
RuntimeBun 1.3
Build pipelineTurborepo

A SKU is the atomic unit of production. It specifies: the product type, material, machine type, quality tier, estimated print time, and base cost. Every order line item maps to exactly one SKU, which means every job has a known cost before it starts.

An order is what a customer places. A job is a single printable item that maps to one SKU on one machine. An order with three items becomes three jobs, each independently scheduled, routed, and tracked.

Every job progresses through 8 states: CREATED → VALIDATED → SLICED → QUEUED → PRINTING → POST_PROCESS → READY → SHIPPED. Each transition is a BullMQ job; failures are retried with backoff and escalated to operators via OpenClaw if retries are exhausted.


Ready to run PrintStudio locally? See the Quick Start guide.