Case study · Marketplace

Hamro Sajha Bazaar

A national multi-category marketplace, secondhand goods, vehicles, jobs, medical, trades, rentals, agriculture, food and beauty, with verified sellers, escrow protection and Nepali/English UI.

9categories
eSewa · Khaltipayments
NE · ENlanguages
freelistings
hamrosajhabazaar.com
Hamro Sajha Bazaar
The problem

Classifieds without the scams.

Nepali classifieds are fragmented across Facebook groups with no verification, no payment protection and no recourse. Buyers cannot tell a real seller from a fake listing, and sellers cannot prove they are real.

The product needed the breadth of a classifieds site with the trust mechanics of a marketplace: identity checks, a protected payment path, moderation and a dispute trail.

What we built

Nine categories, one trust layer.

  • Category-specific listing models (goods, vehicles, jobs, rentals, services, food) with their own fields and validation.
  • Seller verification: phone OTP plus ID review, with a visible verification state on listings.
  • Search and filters per category, featured listings, saved searches and a Nepali/English interface.
  • Escrow checkout with eSewa and Khalti, order states, refunds and a buyer-protection dispute flow.
  • Admin console for KYC review, listing moderation, category taxonomy and payment reconciliation.
Architecture

How it is put together

Next.js frontend (app router, BFF route handlers)
        │  HTTPS
        ▼
NestJS API (REST, JWT + sessions, RBAC)
   │          │             │
PostgreSQL  payment callbacks  object storage
(Prisma)    eSewa / Khalti     (listing media)
   │
SMS/OTP · admin console · moderation queue

Stack

Next.jsReactNestJSPostgreSQLPrismaNextAutheSewaKhaltiSparrow SMSTailwind

Security and money

  • Registration can only assign buyer/seller roles; admin and reviewer roles are granted server-side after review.
  • Payment confirmation happens only after a server-to-server verification with the provider.
  • Uploaded media is content-validated by magic bytes and re-encoded before it is served.
  • Auth, OTP and search endpoints are rate-limited, and pagination is bounded.
Screens

Product surfaces

Marketplace home: categories, search and verified-seller messaging
Marketplace home: categories, search and verified-seller messaging
Similar work

Building something in this category?

We can walk you through the architecture, the payment integration and the failure cases on a call, including the parts that were hard.