{"slug": "i-built-locallisting-ai-to-turn-product-photos-into-ready-to-edit-listings", "title": "I Built LocalListing AI to Turn Product Photos Into Ready-to-Edit Listings", "summary": "A developer built LocalListing AI, an open-source Next.js 16 application that turns a product photo and seller-supplied details into a structured, editable product listing. The tool defaults to Gemma 3 4B Vision running locally through Ollama, with a shared provider interface that allows swapping in a hosted OpenAI-compatible API, and uses Zod to validate both inputs and the model's structured output. Its prompts are designed to keep the model grounded in visible features and seller-provided facts, flagging missing information such as exact dimensions rather than inventing them.", "body_md": "*This is a submission for the [Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle](https://dev.to/challenges/hacktoberfest-week2-2026-10-12).*\n\nRunning a small business means doing a lot of jobs at once. You make or source the product, take photos, answer customer messages, manage orders, and try to market everything online.\n\nThat is the problem I wanted to tackle with **LocalListing AI**, a product-listing studio built for small business owners, Instagram sellers, home bakers, boutique owners, and independent artisans.\n\nLocalListing AI helps turn a product photo and a few seller-provided details into a structured listing that is ready to review and edit.\n\nThe workflow is straightforward:\n\nThe app can generate:\n\nSellers can choose from different tones, including Friendly, Premium, Minimal, Playful, and Professional. That matters because a handmade gift, a food product, and a beauty accessory should not necessarily sound the same.\n\nI wanted the app to feel like a focused tool rather than a general-purpose chatbot. The goal is to reduce the blank-page problem and give sellers a useful first draft, without taking away their ability to correct the details.\n\nAI can make writing sound confident even when it is guessing. In product listings, that is risky. A model might infer a material from a photo, invent a dimension, or make an unsupported claim about quality or safety.\n\nLocalListing AI's prompt and output structure are designed to keep the model grounded in what it can see and what the seller provides. It can report visible features, but it should flag missing information rather than pretend it knows the exact size, composition, or certification of an item.\n\nFor example, a photo might show the shape and finish of a brass diya, but it cannot reliably confirm its exact dimensions. The seller should check those details before publishing the listing.\n\nThis approach does not guarantee that every generated answer will be correct. AI output still needs human review. The idea is to make uncertainty easier to spot, not to replace the seller's judgement.\n\nTry the live website:\n\nYou can explore the landing page and open the Listing Studio to see the workflow.\n\nThe project is open source:\n\n[View LocalListing AI on GitHub](https://github.com/extinctsion/locallistingai)\n\nThe repository includes the application source, setup instructions, sample data for demo mode, and tests for input validation, output validation, and parsing model responses.\n\nI built the app with **Next.js 16**, **TypeScript**, **React 19**, and **Tailwind CSS 4**. I use **Zod** to validate inputs and the structured output from the model. The interface is split into focused components for uploading images, entering product details, displaying generated content, previewing a listing, and copying text.\n\nThe AI integration is separated from the user interface through a shared provider interface. This makes it possible to choose between a local model and a hosted, OpenAI-compatible API without rewriting the entire listing workflow.\n\nThe default local setup uses **Gemma 3 4B Vision through Ollama**. Because the model accepts images, it can use a product photo as context instead of relying only on text supplied by the seller.\n\nFor a local setup, install Ollama, pull the model, configure the environment variables, and run the Next.js app. The README includes the commands and configuration needed to get started.\n\nLocal inference can be useful for developers and businesses that want more control over where image processing happens. When the application and model are both running locally, product images can remain on that machine instead of being sent to a hosted model provider.\n\nOpen-weight models make it easier for independent developers to experiment with AI without committing every part of a product to one proprietary provider. With Gemma 3 and Ollama, developers can try local inference, compare model sizes, refine prompts, and understand the trade-offs between quality, speed, and hardware requirements.\n\nFor me, the point is not to claim that local AI is always free, faster, or better. It still needs suitable hardware, and a hosted model may incur usage costs. The value is having choices and being able to adapt the technology to the problem.\n\nI see potential users among people who sell through Instagram, WhatsApp, or small online storefronts but do not have a dedicated marketing team.\n\nBefore deciding what to charge, I want to validate whether the tool saves real time and whether sellers trust the generated drafts enough to use them after review. Possible paid features could include bulk listing generation, saved brand tone settings, additional languages, reusable product templates, and exports tailored to different marketplaces.\n\nThose are ideas to explore, not promises about features already available. The first priority is to get the workflow in front of real sellers, observe where it helps, and find out what they actually need.\n\nMy next steps are to test the listing quality across more product categories, make unverified details even clearer, and gather feedback from small business owners. I would also like to explore bulk generation for sellers who manage many products and improve the setup documentation so other developers can reproduce the local model workflow.\n\nLocalListing AI is a small project, but it explores a practical question: can open-weight AI make a repetitive task easier for people who do not have the time or budget for dedicated marketing support?\n\nFor me, success will not just mean generating a polished paragraph. It will mean helping a seller get a listing ready faster, while still giving them control over what they publish.\n\nI am looking to get the tool in front of small sellers and learn from their feedback. Add a real user story here once someone has tried it, including what they used it for, what worked, and what they would change.", "url": "https://wpnews.pro/news/i-built-locallisting-ai-to-turn-product-photos-into-ready-to-edit-listings", "canonical_source": "https://dev.to/extinctsion/i-built-locallisting-ai-to-turn-product-photos-into-ready-to-edit-listings-40gj", "published_at": "2026-10-16 19:03:02+00:00", "updated_at": "2026-10-16 19:20:45.831117+00:00", "lang": "en", "topics": ["ai-tools", "generative-ai", "ai-products", "developer-tools", "ai-infrastructure"], "entities": ["LocalListing AI", "Next.js", "TypeScript", "React", "Tailwind CSS", "Zod", "Ollama", "Gemma 3 4B Vision"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/i-built-locallisting-ai-to-turn-product-photos-into-ready-to-edit-listings", "markdown": "https://wpnews.pro/news/i-built-locallisting-ai-to-turn-product-photos-into-ready-to-edit-listings.md", "text": "https://wpnews.pro/news/i-built-locallisting-ai-to-turn-product-photos-into-ready-to-edit-listings.txt", "jsonld": "https://wpnews.pro/news/i-built-locallisting-ai-to-turn-product-photos-into-ready-to-edit-listings.jsonld"}}