Case study

HolderForge: a one-person shop that runs like a full team

HolderForge started as an Etsy shop selling 3D printed holders, each one made to order. I built it a store of its own, a system that processes every order, and AI that drafts the customer replies. This is how it works, and the patterns underneath it.

Project
HolderForge, my own business
Industry
Made-to-order e-commerce
Role
Owner, designer and sole engineer
Timeline
2024 to today
Built with
AWS, Stripe, Shippo, the Etsy API, Claude AI, three.js, Autodesk Fusion
The HolderForge designer: controls for rows and hole sizes beside a 3D view of a three-row holder, with the price at the top
Figure 1. The holder designer on holderforge.com. Customers build a holder in 3D and see the price as they go. The same code writes the print file.

The challenge

Every order was custom, so every order meant desk work: sizes retyped into CAD software, the same questions answered by hand, files and labels saved one at a time.

What I built

An order pipeline that builds its own print files, an inbox that drafts replies, AI that turns notes and photos into records, a customer assistant, a 3D designer and a store of its own.

The outcome

Orders reach the printer within minutes with nothing retyped. Customer messages arrive with a reply already drafted. My time goes to the judgment calls.

01Overview

HolderForge makes 3D printed holders for the things people collect and use every day: perfume sprays, makeup, markers and paints. Every hole is sized to a real product, so a customer names the brand and never has to measure.

That promise turns every order into a custom part, and a shop that makes custom parts by hand hits a ceiling fast: the owner’s time. The goal was to remove that ceiling without hiring, and without handing the judgment calls to software.

A copper 3D printed holder with three stepped rows of five round holes
Figure 2. A HolderForge holder. This is a render, not a photo: software makes product images like this from the exact print file.

02The challenge

At first, each order went through my hands at every step. The work fell into four patterns that I now look for everywhere:

  • Retyping. Each order’s sizes copied into CAD software and the printer’s settings.
  • Copy-pasting. The same “will this fit my bottle?” answers written into message after message.
  • Sorting and filing. Order notes, photos, labels and receipts saved one by one.
  • Chasing. Tracking numbers, updates and review requests sent one at a time.

Swap “holder” for job, claim, quote or case, and this is the week most small businesses have.

03The approach

Automate the repeat. Keep the judgment.

Four rules shaped every piece of the system:

Automate the repeat, keep the judgment.
Software does the busywork and AI writes the drafts. A person makes the calls that matter, and nothing reaches a customer until someone approves it.
Start where the hours go.
I automated the biggest time sink first, then the next one, so each step paid for itself before the next began.
Work with the tools that are already there.
Etsy, Stripe, Shippo, Gmail and Google stay in place and get connected. When a tool offers software no way in, I build one, like the browser extension that reads Etsy messages.
Cheap to run, built to be checked.
Serverless cloud services, so there are no servers to maintain and costs grow only with use. Automated tests guard the parts that must never break, and AI spend has hard caps.

04What I built

Six building blocks. None of them is specific to 3D printing, so each one ends with the pattern underneath it.

Orders that process themselves

A paid order on Etsy or holderforge.com runs through seven steps. Five run on their own. The other two take me a minute or a click.

  1. 1
    The order arrives. Etsy or the site sends it to my cloud account within seconds, day or night.
    Automatic
  2. 2
    The design builds itself. Software turns the order’s sizes into the exact 3D model, then a print file with the right settings for its color.
    Automatic
  3. 3
    The printer is ready. The file lands on the printer, and I get an email with the specs, the print time and anything that needs a person.
    Automatic
  4. 4
    I start the print. I check the material, clear the printer and press Print.
    Me
  5. 5
    The label prints itself. Site orders buy their own shipping label. Etsy labels print the moment they’re bought.
    Automatic
  6. 6
    The customer update is written. When the print finishes, a timelapse of it goes into a drafted update. I read it and press Send.
    AI drafts, I approve
  7. 7
    Everything is filed. The order, its files, photos and print record land in one archive folder, kept for good.
    Automatic
Figure 3. What happens to an order. No print starts without me, and nothing emails a customer until I press Send.

An inbox that drafts its own replies

Every customer message is read, matched to that customer’s orders, and answered with a drafted reply. The AI also suggests record updates, like a product size a customer just confirmed. I approve each one with a click, and the change is made and checked automatically.

Messy notes and photos in, clean records out

I measure products in stores with phone notes and label photos, and I built a simple mobile form for a paid helper. AI reads both, pulls out brand, size and volume, checks for repeats and asks me only about real conflicts. When a photo can’t settle a question, I get a page with the candidates side by side and pick one.

An assistant that knows the catalog

The site assistant answers from the live catalog and store policies, suggests the right holder for what a shopper owns and quotes the price. Its AI spend has a hard cap, so it can’t run up a bill.

A tool customers use to design and price

The designer (Figure 1) lets a shopper build a holder in 3D and watch the price update. The same code writes the manufacturing file, so what they see is exactly what prints. It began as a Python script in Autodesk Fusion and moved into the browser.

Its own store, next to the marketplace

holderforge.com runs alongside the Etsy shop: more than 150 search-ready product and brand pages, Stripe checkout, shipping labels bought automatically, a Google Shopping feed, and Etsy reviews synced onto the site.

Plus the small jobs nobody misses

  • Product images rendered by software across sizes and colors, with no photo shoot
  • An owner dashboard: orders, visitors, reviews, chats and messages in one place
  • A browser extension that reads Etsy messages, since Etsy offers software no other way in
  • Etsy listings kept in stock, photos in order, by script
  • A timelapse of every print, saved with its order
  • Automated tests that guard the 3D models and the order pipeline

05The customer experience

Customers never see the automation. They see a store that knows their products: they search a brand and the right hole size is picked for them, from a catalog of 88 brands.

A HolderForge product page: a rendered holder filled with perfume sprays, a brand search box, hole sizes and the price
Figure 4. A product page. The brand search sets the hole size, and the picture shows that holder with real products in it.
The product page on a phone, with the price and a Buy now button at the bottomThe designer on a phone: the 3D holder above row controls, with the price and a Next button at the bottom
Figure 5. The same pages on a phone: the product page and the designer.
Rendered holder filled with travel perfume spraysRendered holder filled with concealer tubesRendered holder filled with hobby paint pots
Figure 6. Product images rendered by software from the same file that prints, across sizes, colors and items. No photo shoot.

06Results

Minutes, not hours

From a paid order to a print-ready file on the printer, with nothing retyped.

Every message drafted

Customer messages arrive with the order history attached and a reply written. I review and send.

Two storefronts, one system

Etsy and holderforge.com feed the same pipeline, the same records and the same product images.

The owner stays in control

No print starts and nothing reaches a customer without my OK. The judgment calls stay human.

The shop still has one person in it. What changed is where that person’s time goes: into the product, the customers and the next idea, not into retyping.

07How it grew

HolderForge didn’t get automated in one project. It moved through four stages, one piece at a time:

  1. 2024
    By hand. I modeled holders in CAD software and handled every order and message myself.
  2. 2024 to 2025
    Scripted. A Python script in Autodesk Fusion drew a holder from a list of measurements. Then a designer in the browser took over.
  3. 2026
    Self-serve. Customers design, price and buy on their own, with checkout and shipping labels built in.
  4. Fall 2026
    Automatic. Orders, print files, labels, records and reply drafts run on their own. I make the judgment calls.

08How it’s built

For the engineers: the stack, and the path a paid order takes through it. Built in Claude Code.

Storefront
Vite · React · three.js
A catalog prerendered to static HTML, plus a 3D designer that runs in the browser.
Geometry
manifold-3d · WebAssembly
One module defines every holder. The designer, the order pipeline and the renderer all import it, and golden-file tests fail if its output changes or grows a non-manifold edge.
Backend
AWS SAM · Lambda · DynamoDB · SES
Checkout, webhooks, the admin console, the assistant and the measuring portal, each its own function behind one HTTP API.
Payments
Stripe · Shippo
Stripe Checkout takes the payment, and Shippo buys the shipping label as soon as the order is paid.
Orders
Etsy webhooks · SQS · a local agent
Paid orders land on a queue within seconds. An always-on agent next to the printer builds, slices and files each one (Figure 7).
AI
Claude Haiku on Bedrock · Claude Code
Haiku answers shoppers, from a knowledge base generated at build time behind a prompt cache. Claude Code, run headless, drafts replies, applies approved record changes and parses measuring notes.
Images
Blender, headless · CloudFront
Product renders and 360° turntables made from the print files on a render queue and served from a CDN.
Deploys
Amplify · GitHub Actions OIDC
Every push builds staging. Production deploys from a workflow, and no AWS keys are stored anywhere.
Etsyorder.paid webhookholderforge.comStripe webhookLambdaverify · enqueueSQS queueholds for 14 daysShop agentalways onpaid ordereventlong pollbuild · slice · send · fileS3 archivekept for goodEmail to mespecs · flagsPrinterfile in its list3D model → filegeometry · slicerEach step re-reads its source and skips work already done, so a replayed event is harmless.
Figure 7. The path of a paid order. The webhook ends in AWS, so the agent opens no port on the shop computer: it reads the queue. A 15-minute sweep catches anything a webhook missed.

See it running

HolderForge is live, and the designer works on any phone or laptop. The code is private, so this page is the tour.