Case Study
ExpressPrint3D
Design, custom development, price calculation and online payment, for a 3D printing workshop that wrote every quote by hand.
Contents
The workshop
ExpressPrint3D is a 3D printing workshop in Paris, in the 15th arrondissement. It prints prototypes, functional parts and small runs in PLA, PETG and ABS, for individuals and businesses alike.
The problem
Every order started with a quote written by hand. The customer sent their file, the workshop worked out the price part by part, and the customer waited for that quote before paying. Between sending the file and paying, everything depended on someone being available to reply.
So the workshop needed a site that does that calculation on its own, at any hour, and takes the payment without the workshop stepping in. With one constraint the whole project held to: a price on screen is a price charged. A pricing mistake cannot be fixed with a new quote; the workshop pays for it.
What the customer sees
They drop in their STL file. The part appears in 3D, with its dimensions and volume. They choose the material, the colour and the number of copies, and the price updates with every choice. They pay by card, pick delivery or collection at the workshop, and that's it.
The file does not leave the customer's computer before the order. Everything is read in their browser, and the file is only sent at the moment of payment.
A price fitted to the workshop's machines
The price of a print depends mostly on two things: the material laid down and the time spent on the machine. The site measures the first directly in the file. The second cannot be read there: it depends on the machine, the material and the shape of the part.
To estimate it, I simulated printing 40 test parts in the software that prepares the prints, on both of the workshop's printer models and in every material: 228 simulations in all. The time calculation is fitted to those results. Before that fitting, the first estimate was 2 to 3 times too short, and up to 5 times on small parts.
One rule that held for the whole project
The machine handles the routine, people handle the exceptions. The site prices on its own everything it can price with certainty, and hands the rest to the workshop.
A payment that only trusts Stripe
The price shown in the browser is for display, nothing more. Before every payment, the server fetches the file, reads it again and redoes the calculation. That price, and only that one, goes to Stripe. A visitor who tampered with the page to pay less would still pay the right price.
An order is only confirmed when Stripe confirms the payment to the site, directly, server to server. The customer landing on the thank-you page does not count: they can close the tab or lose their connection before getting there. And if Stripe sends the same confirmation twice, the workshop receives a single order.
The workshop then gets an email with the order and the file, ready to print.
What the machine does not price
Some parts should never get an automatic price: an unreadable file, a part too large for every machine, or a part under 2 mm, which is almost always a file saved in the wrong unit. For those, the site shows no price. It offers a custom quote, and the request goes to the workshop.
The same goes for what cannot be sold in one click: resin, modelling a part from a sketch, large runs. The customer describes their project, attaches a file if they have one, and the workshop replies with a quote.
| Element | Technical choice |
|---|---|
| Site | Next.js 16 and TypeScript, hosted on Vercel |
| File reading and 3D preview | three.js, in the customer's browser, without sending the file |
| Price calculation | The same code in the browser and on the server, amounts computed in cents |
| Payment | Stripe Checkout, order confirmed by Stripe's own confirmation |
| Files | Uploaded straight to storage, up to 50 MB per file |
| Emails | Resend, sent from the workshop's domain |
Live in nine days
The project was signed on 24 September, and the site was live on 3 October. Payments, the domain and email sending were connected on a video call with the workshop, on its own accounts: Stripe, hosting and the sending address are in its name.
The same work, for your business
You sell a service whose price can be calculated, and every request still goes through a quote written by hand. I can build the site that does that calculation for you and takes the payment. Write to me. ExpressPrint3D's is live: expressprint3d.com.

