I Built LocalListing AI to Turn Product Photos Into Ready-to-Edit Listings 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. This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle https://dev.to/challenges/hacktoberfest-week2-2026-10-12 . Running 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. That 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. LocalListing AI helps turn a product photo and a few seller-provided details into a structured listing that is ready to review and edit. The workflow is straightforward: The app can generate: Sellers 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. I 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. AI 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. LocalListing 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. For 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. This 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. Try the live website: You can explore the landing page and open the Listing Studio to see the workflow. The project is open source: View LocalListing AI on GitHub https://github.com/extinctsion/locallistingai The repository includes the application source, setup instructions, sample data for demo mode, and tests for input validation, output validation, and parsing model responses. I 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. The 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. The 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. For 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. Local 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. Open-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. For 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. I see potential users among people who sell through Instagram, WhatsApp, or small online storefronts but do not have a dedicated marketing team. Before 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. Those 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. My 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. LocalListing 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? For 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. I 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.