DEV Community

Nabin Joshi
Nabin Joshi

Posted on

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 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.

javascript
import { removeBackground } from '@imgly/background-removal';

const handleRemove = async (imageFile) => {
// Runs entirely in the browser! $0 server cost.
const blob = await removeBackground(imageFile);
return URL.createObjectURL(blob);
};

Top comments (0)