Joshua Grams Work Process Hire Email
Case study · E-commerce tooling · Applied AI · 2026

Copy Studio: an AI product-copy tool built for how sellers actually work.

Sellers running a catalog don't write one product description. They write hundreds, from supplier pages and notes, under time pressure, and they need to come back and regenerate when the product changes. Copy Studio is a small queued workspace that fits that loop: add a product, generate, review, keep what's good.

Role
Product design and full-stack build
User
E-commerce operator or dropshipper managing many SKUs
Stack
Laravel 13 · Vue 3 · queued jobs · Claude · Docker on Render
Status
Live demo, 37 tests, CI
Copy Studio product entry screen
The studio. One form, a product list, and generations attached to each product.
01 · Design decisions

Three inputs, and only one of them required.

Name is enough to start

Source URL and notes are optional. A seller with a spreadsheet of names can get moving in seconds and enrich later. The form says so in its own helper text.

Generation is a job, not a spinner

Submit returns immediately with a 202. The product list shows "queued" then fills in. A seller can add five more products while the first one generates.

History per product

Each product keeps its generations. Regenerating never destroys the last good version, which matters when the product changes but the copy was already approved.

Never an empty studio

The demo seeds a worked example on boot, so the first screen a reviewer sees shows the tool doing its job rather than an empty state.

02 · Why this is an e-commerce project, not just an AI demo

The workflow is the product.

The model writes the words. The product is everything around that: the queue so a catalog can be processed in bulk, the per-product history so approved copy survives, the optional source URL so the output cites real specs, and a UI that treats generation as something you review rather than something you trust. Those are merchandising decisions, and they came from running a store, not from a prompt.

LaravelVue 3QueuesClaude APIProduct copyCatalog ops