I wrote the PRD, sketched the screens, built it with Claude, and use it to track what I've made, what's sold, and what to show retail buyers.
"As a potter, I want to be able to see my inventory and past work in order to see what I have available, show retail spaces what I have to offer, categorize my patterns and see color patterns that could be repeated in future work."
That one sentence became three jobs: a record of every piece, a storefront for shops, and a guide to what's worth making again.
The key product decision was to build a single site with a public and an internal layer instead of two tools. Every field in the PRD is tagged as public or internal, and the share link shows only the public layer.
It also had to do a different job from my portfolio site. The portfolio shows the breadth of my work and is how people get in touch. This is an inventory of what's available right now, and keeping that line clear kept the app focused on stock.
Value = (Enjoyment + Preference) − Difficulty
Each pattern is rated 1 to 5 on three dimensions. Value rewards patterns I enjoy and like the look of, and discounts the hard ones, so it sorts my library by what's worth repeating.
| Pattern | Diff. | Enjoy | Pref. | Value |
|---|---|---|---|---|
| Conjoined dips | 1 | 5 | 4 | 8 |
| Squiggles | 1 | 5 | 4 | 8 |
| Checkerboard | 1 | 3 | 4 | 6 |
| Basketweave | 4 | 4 | 4 | 4 |
| Triangles | 4 | 3 | 5 | 4 |
I gave Claude the PRD, sketches, my logo, and the design direction: black and white, modern, a simple sans-serif. Then I used the app for real, on my phone in the studio, and logged every problem back into the PRD with a screenshot.
Every issue below surfaced from using the app with real pieces, not from reading the code.
I add pieces from my phone in the studio. Buyers get a clean storefront filtered by pattern, color, and availability. I get the scores, costs, and sold status behind it.
Once I'd added the first pieces one at a time, the slow part was clear: one form per piece. Bulk upload takes several photos at once and turns each into its own product, with name, category, pattern, colors, and costs to fill in per row.
It's also where AI cataloging now runs: each row arrives with a drafted name, pattern, colors, and description.
The PRD asked AI to "make as many guesses as possible" from each photo. In bulk upload, every row now arrives pre-filled while the next photo shows "Guessing…". I review each draft and correct it before saving.
| Field | What AI does | Status |
|---|---|---|
| Name | Writes a name in my existing style, pattern then colors | Shipped |
| Pattern | Matches the piece to my pattern library | Shipped |
| Colors | Matches glazes from my glaze library | Shipped |
| Description | Describes clay body, motif, glaze, and interior | Shipped |
| Cost | Suggests wholesale and retail from a pricing rubric | Next |
Matching against my own libraries is the key constraint. The model picks from patterns and glazes I actually use and labels each match, so I can see at a glance what it recognized and what it guessed.
Every AI draft gets compared with what I save. That gives an acceptance rate for each field and a count of edits per upload, which will show where the model is reliable and where it still needs me, likely on similar glazes.
With every piece tagged consistently, the app can then surface which patterns and glaze combinations I make most and which score highest on value, to guide what I make next.