This is a submission for the Hacktoberfest Open-Source AI Challenge Week 2: Side Hustle.
What I Built
Listing Lab is a private marketplace copywriter for independent Etsy, eBay, and Facebook Marketplace sellers.
A seller enters the real facts about a product, chooses a marketplace and tone, and gets an editable listing draft. The person I built it for is the small seller who wants stronger copy but cannot justify another subscription—or uploading client and product research to an opaque service.
The business case is intentionally small: charge once for a polished local tool, or bundle it with a seller workflow, without inheriting a per-generation API bill.
Demo
The app is a responsive React experience with a visible first-run model download, browser caching, WebGPU acceleration, CPU/WASM fallback, and a plain-language privacy model. The first generation downloads the quantized model; repeat visits reuse the browser cache.
Code
The complete project is MIT-licensed and built with React 19, TypeScript, Vite, Transformers.js, and the open-weight SmolLM2-360M-Instruct model.
The implementation keeps inference entirely on the client: there is no prompt API, server-side generation endpoint, account system, or prompt database.
How I Built It
The entire inference path lives in the browser:
- The UI collects product facts, buyer, price, marketplace, and tone.
- Transformers.js lazily loads a quantized ONNX build of SmolLM2 only when Generate is clicked.
- Chrome uses WebGPU when available and falls back to WASM on the CPU.
- Model files are cached by the browser after the first download.
- The seller reviews and copies the result; Listing Lab has no prompt API or prompt database.
The runtime is lazy-loaded so the landing page stays light. The interface reports bytes and percentage during the first model download instead of looking frozen. I also avoided schema-dependent output: small browser models are better drafting partners when imperfect prose can still be edited than when one malformed JSON token breaks the product.
Why Does Open Innovation Matter?
Open weights make the product economics and privacy story possible.
There is no metered inference cost, so success does not create an escalating API bill. Product research stays on the seller's device. The model can be swapped, quantized, tuned, or self-hosted without waiting for a vendor. After the first model download, the core workflow can run without sending the seller's prompt to an application server.
That trade comes with honest costs: the first download is substantial, browser support varies, and a compact model is not a cloud-scale writer. Listing Lab exposes those constraints instead of hiding them.
What I Learned
The model download is part of the product. Progress, caching, fallback behavior, and clear expectations matter as much as inference speed.
I also learned to design around the model's strengths. A seller can repair a slightly awkward sentence; they cannot repair a UI that silently fails because a local model missed a rigid schema.
Community References
- I built React components that run Qwen2.5 in the browser via WebGPU – no server, no API key, works offline by @dhruvil_chauhan_eccb4a1eb
- What breaks when you ship 21 AI tools that never touch a server by @kingcavan1988
Built With
React, TypeScript, Vite, Transformers.js, ONNX Runtime Web, SmolLM2, WebGPU, and Codex.
Top comments (0)