I Built a Scam-Proof Marketplace (With Free AI Tools)
Hey everyone! 👋 Like a lot of you, I’ve watched friends get scammed on traditional marketplaces. Stolen photos, fake listings, and sketchy in-person handoffs are still the norm in 2024. I got tired of complaining about it, so I decided to build a solution. Meet ** Nabjo**: A modern, scam-proof mar

Like a lot of you, I’ve watched friends get scammed on traditional marketplaces. Stolen photos, fake listings, and sketchy in-person handoffs are still the norm in 2024.
I got tired of complaining about it, so I decided to build a solution.
Meet ** Nabjo**: A modern, scam-proof marketplace designed entirely around trust, safety, and empowering sellers.
Here is what I built to solve the biggest pain points:
🎥 1. Live Video Watermarks (No More Fake Photos) Static photos can be stolen from anywhere. In Nabjo, sellers use a "Live Capture" feature that records a quick video and burns a dynamic, real-time watermark (date + unique ID) directly into the video canvas. Buyers instantly know the item is real and in the seller's possession.
🛡️ 2. QR-Code Safe Handoffs Meeting a stranger is stressful. Nabjo generates a unique, cryptographically secure QR code for each transaction. When the buyer and seller meet, they scan each other's codes. This verifies the in-person handoff and instantly marks the item as "Sold" in the database, preventing post-meetup scams.
⚡ 3. Bulk Listing Optimizer For power sellers, I built a tool that takes a raw, messy CSV and instantly formats, optimizes, and maps it for platforms like Shopify, Amazon, Daraz, or Etsy. (Currently gated behind a Pro tier to keep the core marketplace free).
✨ 4. The $0 AI Background Remover I wanted to give sellers a way to make their listings look like professional Amazon products, but I refused to pay $0.05 per image to an API or manage expensive server-side GPU costs.
The Solution: I used @imgly /background-removal. This library downloads a small machine-learning model directly to the user's browser and processes the image using their own device's CPU via WebAssembly.
const handleRemove = async (imageFile) => { // Runs entirely in the browser! $0 server cost. const blob = await removeBackground(imageFile); return URL.createObjectURL(blob); };