case-study --3d-print-commerce
§IV · PLATEPrint Club
Live · in productionA 3D-printing shop that used to price every custom job by hand. Customers upload an STL, the browser works out the volume and quotes it, they pay. Staff run the catalog, pricing and orders without me.
project-brief --outcome-first
§IV · BRIEFWhat had to change
Turn a quote-heavy 3D-printing business into a self-serve buying experience without losing the custom-file workflow that makes the service valuable.
What I shipped
A catalog storefront, in-browser STL analysis, live volume-based quotes, hosted payments, customer accounts, order tracking, and a full operations dashboard.
What the business gained
Customers can shop or upload a model and request a custom print online; staff can change products, pricing, orders, quotes, content, and brand settings without a developer.
screens --as-shipped
§IV · PLATES


systems --under-the-hood
§IV · SCHEMATIC- Browser-side STL quote engineSTL → estimate
Three.js parses uploaded models in the browser, derives volume, and combines material, quantity, and configurable pricing rules into an immediate estimate.
- Authoritative payment workflow
Cashfree hosted checkout creates the order server-side; signature-verified webhooks are the source of truth for payment state and idempotent order updates.
- One operations workspace
Role-gated admin tools manage products, variants, stock, orders, quotes, blog content, users, pricing, shipping, GST, and storefront copy.
- Safe file intake
Size-capped, rate-limited presigned uploads send customer model files directly to Cloudflare R2 instead of routing large files through the app server.
- India-wide localization13 locales
The storefront supports 13 Indian locales with English fallback overlays and right-to-left layout support for Urdu.
context --how-it-works
§IV · NOTESPrint Club is two things at once: an ordinary online store, and an intake desk for custom manufacturing. Customers browse finished products, or upload their own model, get a price based on its volume, pay, and follow the job from one account.
The backend is strict vertical slices. Pages call services, services hold the business rules, and repositories are the only layer allowed to touch Drizzle. The money logic is shared, so the price a customer sees in the browser and the total the server charges come from the same code. They cannot drift.
The half that gets less credit is the admin side. Catalog, pricing, orders, quotes, blog posts, shipping and GST settings are all editable by staff. Nothing about a normal Tuesday requires a deployment or a message to me.