Trainstation
A photo-to-model ordering flow, made simple enough to finish.
A workshop that reads a photograph and builds the figure back as a printable model. Everything on the site exists to get one photograph from a customer to a bench, so the whole product is a single spine: upload, scale, review, pay.
It is a full front-end and back-end build, not a brochure — file storage, live pricing and a real checkout all run behind it.
- What was made
- Product design
- Web design
- Front-end build
- Back-end build
- Built with
- Next.js
- three.js
- Cloudflare R2
- Shopify Storefront API
What it does
A model you can turn, not a photograph of one
The first thing on the page is a real 3D viewer holding the actual mesh — drag to turn it, scroll to zoom, open the layers control to look inside. The plate around it carries the scale and the hours on the bench, so the thing being sold reads as an object with a cost, not a picture.

One order flow, priced as you go
Photographs are dropped straight onto the page, a scale is chosen from seven — N through to G — resin prints are added by the piece, and notes go to the workshop in plain words. The total updates line by line and nothing is charged until the payment page.

Previous work as evidence, not decoration
Every commission is a plate that pairs the photograph that came in with the model that went out. It answers the only question a first-time customer has — will you get my picture right — without a single testimonial.

The parts nobody is supposed to notice
Photographs upload directly to object storage through server-signed URLs, so a large file never passes through the site. The cart is assembled through the Storefront API with one line per thing charged, which is why the checkout total always matches the number on screen. Terms, refunds, delivery and privacy are written and linked, because a shop that takes money needs them.
