cd /news/ai-products/listlens-turn-product-photos-into-po… · home › topics › ai-products › article
[ARTICLE · art-151025] src=dev.to ↗ pub= topic=ai-products verified=true sentiment=↑ positive

ListLens Turn product photos into polished Etsy & eBay listings with open-weight AI

A developer built ListLens, an open-weight AI listing writer that turns 1–8 product photos into complete Etsy and eBay listings — title, description, tags, and category — in about 15 seconds. The pipeline runs a vision pass with llama-3.2-90b-vision-preview to extract strictly visible product attributes, then a copy pass with llama-3.3-70b-versatile to generate structured JSON listings, with client-side image downscaling to 1024px cutting vision tokens by roughly 70%. The developer chose open-weight models over closed APIs because listing copy is a commodity task that needs to be fast, cheap, and consistent, and to keep the product viable for sellers paying $5–10/month.

by read4 min views1 publishedOct 15, 2026

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle ListLens is an AI listing writer for Etsy and eBay sellers. Upload 1–8 product photos, and it writes a full listing — title, description, tags, and category — optimized for the platform you're selling on.

Who pays for it: Casual sellers and side-hustlers who list 5–50 items a month. Writing good listings is tedious: keyword research, tag limits, platform-specific tone, honest condition descriptions. Most sellers either skip it (and lose visibility) or spend 15–20 minutes per listing. ListLens cuts that to ~15 seconds.

The problem it solves: Etsy lives or dies on SEO. eBay lives or dies on title keywords. But writing either well is a skill most makers and resellers don't have time to build. ListLens handles the boring part so they can focus on sourcing and photographing.

Turn a few product photos into polished Etsy & eBay listings in seconds.

ListLens is an AI listing writer for Etsy and eBay sellers. Upload 1–8 product photos, and it generates a complete, platform-optimized listing — title, description, tags, and category — in about 15 seconds.

Writing good listings is tedious. Etsy lives or dies on SEO tags. eBay lives or dies on title keywords. Most makers and resellers either skip it (and lose visibility) or spend 15–20 minutes per item. ListLens handles the boring part so you can focus on sourcing and photographing.

Stack: Next.js 15 (App Router), Tailwind CSS, deployed on Vercel.

The AI — fully open-weight: I deliberately chose open-weight models over closed APIs because listing copy is a commodity task. It doesn't need frontier reasoning — it needs to be fast, cheap, and consistent. Running on open weights means I can:

Host the whole thing on Groq's free tier while I validate product-market fit

Swap models without rewriting the app (I prototyped on GPT-4o, then dropped in Llama 3.2 Vision in ~30 minutes of refactoring)

Let users self-host later if they want — the app is a thin wrapper around a prompt The pipeline:

Vision pass — llama-3.2-90b-vision-preview receives up to 8 images and returns JSON attributes. The prompt is strictly constrained: "Only describe what is CLEARLY VISIBLE. Never invent brands, materials, or origins." This matters — vision models hallucinate details that get sellers in trouble with platform authenticity rules.

Copy pass — llama-3.3-70b-versatile takes those attributes plus platform + tone and returns a structured listing (title, description, tags array, category, SEO description). Response format is forced to JSON so the frontend can render individual fields cleanly.

Client-side image resize — every upload is downscaled to max 1024px via canvas before hitting the API. This cuts vision tokens by ~70% and keeps requests under 2 seconds.

Why two model calls instead of one: Separating "read the photo" from "write the copy" lets me tune each independently. When I noticed the vision model inventing leather textures, I tightened only that prompt — the writer prompt stayed stable. It's also cheaper: the vision call is the expensive one, and it never regenerates.

Frontend: Next.js with a two-column layout (controls left, output right), drag-and-drop upload, pill-style platform/tone selectors, skeletons, and per-field copy buttons. Full dark mode. Everything Tailwind, no component library.

Two reasons, one practical and one philosophical.

Practical: Listing writers are a long-tail product. The market isn't 100,000 sellers — it's millions of tiny sellers who'd pay $5–10/month. At those margins, per-token API costs kill you. Open-weight models on Groq or Together let me offer a free tier and still have room to charge. A closed-API-only version of this product can't exist profitably at the bottom of the market.

Philosophical: The prompts are the product. If listing copy is generated by a closed model, and the prompts are the only differentiator, then every competitor is one good reverse-engineering away from cloning me. With open weights, I can fine-tune on my own seller data, run on my own hardware, and eventually let sellers self-host with their own listings baked in. That's a moat a closed API can't give me.

The challenge framing asked why open innovation matters "for what you built" — the honest answer is that open weights are what make a tiny-margin side-hustle tool economically viable at all.

Groq

── more in #ai-products 4 stories · sorted by recency
── more on @listlens 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/listlens-turn-produc…] indexed:0 read:4min 2026-10-15 · —