MaiMai: a second-hand marketplace with built-in contracts

A buy-and-sell marketplace where buyer and seller agree terms in the chat, forming a simple contract, and the buyer's payment is held until the deal is done. If something goes wrong, there is a record of what both sides agreed.

Details

Built as
A start-up idea and school project
Trial
10+ users, 20+ transactions, within the school
Market
Singapore
Built with
React · Meteor · Node.js · Stripe

Case study

The problem

On consumer marketplaces like Facebook Marketplace or Carousell, disputes come down to one person's word against another's, with no way to confirm who is right. Buying from a stranger, second-hand or new, has none of the protection you get from a retailer. MaiMai set out to add it.

What we built

Buyers and sellers negotiate in a real-time chat, and the terms they settle on become a contract that both accept in the chat. Once they agree, the buyer's payment is taken and held. Agreeing terms this way felt closer to a game than to paperwork, and it left a clear record for settling disputes.

What changed

A trial launch within the school drew 10+ users and 20+ transactions.

Technical notes

Meteor for real-time updates, with a React front end on Node.js. The chat is built around the contract model, so agreed terms are stored as part of the deal record alongside the conversation. Payments are held and released through Stripe, so the platform itself never holds funds.

My role

CTO in a team of five. Designed the contract and payment model and built the platform, including its real-time chat.

Back to work