CBCharlie Barmore
← All projects
CB Leathercrafts logo

CB Leathercrafts

Handcrafted leather goods (wallets, belts, and accessories) with a live customizer and an AI concept generator.

Open For golfers, executives & gift-buyers
CB Leathercrafts homepage: Hand-Cut, Hand-Stitched, Built to Last

About

CB Leathercrafts is the analog corner of my world: handcrafted wallets, card holders, and accessories, started during COVID because too much leather is cheaply made and overpriced. Every piece is hand-cut and hand-stitched in Augusta, GA. Built to last.

The twist is the storefront. Instead of a static catalog, there’s a Design Studio: pick a piece, then choose the leather and stitching for each individual panel and watch the preview update live. Generate an AI concept of exactly what you designed, and submit it for me to build by hand. It’s the clearest example I have of dragging AI into a craft as old as time.

How I built it

The frontend is deliberately old-school: hand-written HTML, CSS, and JavaScript with no framework, no build step, and no bundler, just pages served as-is on Vercel. A single catalog file is the source of truth every page reads from, and the per-part previews render as live SVG right in the browser.

The interesting part is the backend: a set of Vercel serverless functions that turn the storefront into more than a catalog. The Design Studio calls OpenAI’s gpt-image-1 to recolor a real photo of the actual product, editing it through an alpha mask that locks my embossed CB brand mark in place so the model can’t redraw it. A “build from scratch” request runs through gpt-4o-mini to name the customizable parts before you ever pick a color. Email capture and finished orders flow through Resend straight to my inbox, and Upstash Redis rate-limits the image generation so the AI bill stays sane.

Payments are intentionally manual: a Stripe invoice I send by hand. For a one-person shop where every piece is hand-cut, that friction is a feature: it keeps order volume matched to what I can actually make.

Stack

Vanilla JSSVGVercel FunctionsOpenAI gpt-image-1ResendUpstash Redis