DEV Community

Divy Tandon
Divy Tandon

Posted on

ListSmith: Turn Product Photos Into Polished Etsy & eBay Listings, Running on Open Models

Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle Submission 💸

What I Built

Problem statement: "A listing writer for Etsy or eBay sellers that turns a few product photos into a polished description."

ListSmith is an open-source listing writer for small online sellers. You drop in two to five photos of an item, such as a hand-thrown mug, a thrifted jacket, or a vintage camera. Within a minute you get a complete, ready-to-paste listing: a title, a description, a bullet list of key details (material, color, condition, visible flaws), suggested tags, and a price range based on what similar items are currently selling for.

Anyone who has sold online knows the real bottleneck is not the selling, it's writing the fortieth listing of the week at 11pm. A seller who lists in bulk, such as a thrift reseller, a ceramics artist, or a vintage dealer, can save hours every week, which makes the tool easy to justify paying for.

Who it's for: Solo Etsy and eBay sellers, thrift and vintage resellers, and small craft businesses who want consistent, good-looking listings without hiring a copywriter or sending every product photo to someone else's server.

How someone would pay for it: The code is open and free to self-host. The side hustle is the convenience layer: a hosted version with a monthly subscription, a done-for-you setup for resellers who don't want to run anything, and custom "brand voice" tuning for shops that want their listings to sound like them.

Demo
Deployed Application Link: (add your Render URL here)
Video Walkthrough: (add your demo video link here)

(Embed screenshots or a GIF here: uploading photos, the generated listing with editable fields, and the comparable-price panel.)

Code

(Embed your repository here using the DEV GitHub embed tag.)

How I Built It
Open-Source AI Framework: Photo understanding and writing both run on Gemma, an open-weight vision-language model. It reads the photos and extracts what it can actually see (item type, material, color, pattern, wear, visible damage), then writes the listing from those facts. A strict prompt tells it to describe only what is visible and to flag anything uncertain for the seller to confirm, so it doesn't invent claims like "solid silver" or "mint condition." Everything the model produces lands in an editable form, so the seller always has the final say.
Frontend Architecture: A lightweight React app with drag-and-drop photo upload, side-by-side editing of the generated fields, and one-click copy buttons formatted for Etsy and eBay. A "listing queue" lets sellers batch-process a whole box of items in one sitting.
Backend & Hosting: A small API deployed on Render handles job queuing, the saved brand-voice profiles, and the batch queue. The model can run on the same infrastructure or on the seller's own machine, depending on how privacy-conscious they are.
Integrations: SerpApi pulls live search and shopping results for similar items, which ListSmith uses to suggest a realistic price range and to find keywords buyers actually search for. The listing copy comes from Gemma, and the market data comes from SerpApi, so the two jobs stay cleanly separated.
Brand voice tuning: Sellers paste in three or four of their best existing listings, and ListSmith uses them as style examples so new listings match their tone, whether that's warm and handmade or short and no-nonsense.

How it flows: (1) Upload photos. (2) Gemma extracts the item's facts. (3) SerpApi supplies comparable prices and keywords. (4) Gemma writes the listing in the seller's voice. (5) The seller reviews, edits, and copies it into their shop.

Why Does Open Innovation Matter?

Cost that actually works for a side hustle. Most sellers earn small margins per item. Paying a per-image, per-token fee to a closed API for every listing eats into that margin and makes pricing unpredictable. With an open-weight model, the cost of one more listing is just compute I control, so I can offer a flat, low subscription and a seller can process a whole box of inventory without watching a meter.

Privacy for the seller. Unlisted inventory, sourcing details, and product photos are competitive information. Self-hosting means sellers can keep all of it on their own laptop or a server they control, instead of uploading it to a third party.

Fine-tuning for a niche. A general-purpose closed model writes generic copy. Because the weights are open, a shop can fine-tune or prompt-tune for their category, for example pottery glazes, vintage denim eras, or camera models, and get listings that use the right terminology. A community of resellers can even share category-specific tunes.

No lock-in. If a model gets better or a vendor changes its pricing, I can swap models without rewriting the product. The business doesn't depend on any one company's roadmap or terms of service.

Prize Categories
Best Use of Gemma
Best Use of Render
Best Use of SerpApi

Top comments (0)