I Tried Building a Website Like eBay. Here’s What Actually Worked.

Hey, I’m Kayla. I built a small site like eBay for used camera gear. I did it twice, honestly. First with a ready-made tool. Then with custom code when things grew. I’ll tell you what felt smooth, what broke, and what I’d do if I had to start again tomorrow.


Quick Outline (so you know where this is going)

  • Why I built it and who it was for
  • My fast no-code MVP (Sharetribe, Stripe, Shippo)
  • The switch to custom (Next.js, Stripe Connect, Algolia)
  • Real costs, time, and big “oops” moments
  • A simple checklist you can copy
  • My verdict and what I’d change

The Why: People Needed Safe Trades

I shoot weddings. I also buy and sell lenses. Folks in my city wanted a safe place to trade. eBay fees bugged them. Facebook groups were messy. Scams popped up. I wanted ratings, escrow, and clear rules. Not fancy. Just safe, and fast to use.

For the full blow-by-blow of how building an eBay-style marketplace actually shakes out, you can skim my field notes here.

You know what? I didn’t want to code for six months. I wanted sellers live in a week.


Phase 1: The Fast MVP That Actually Shipped

I used Sharetribe to start. It let me make a marketplace without heavy code. I picked “Buy and Sell,” set a fee, and added categories like “Lenses” and “Bodies.” It felt like Lego for adults. For a deeper dive into which services you can plug in right out of the box, check Sharetribe’s integrations catalogue.

What I used, and why it worked:

  • Sharetribe Go for listings, profiles, and messages. I set a 6% fee.
  • Stripe Connect for payments and payout splits. Funds sat in escrow.
  • Shippo for labels and tracking. Less “where’s my box?” emails.
  • Cloudinary for image resize. Fast, crisp photos sell gear.
  • Mailchimp for receipts and weekly picks. People love curated lists.

What I shipped in week one:

  • Listing form with photos, price, and condition.
  • Search with brand filters. Canon, Sony, Nikon. Keep it simple.
  • A basic seller rating system. Stars and short notes.
  • Buyer-seller chat. No WhatsApp links. Keep it on-site.
  • Escrow. Money held until item is marked “received.”

What felt great:

  • Time to live: 5 days. I built nights and one weekend.
  • Cost: about $129/month for Sharetribe, plus Stripe fees.
  • Support: templates and docs were clear. I wasn’t stuck.

What didn’t:

  • Auctions. Not built in.
  • Complex shipping rules. Heavy lenses need special rates.
  • Dispute tools were basic. I had to step in by hand.

Still, we hit 180 users in month one. 42 items sold. People were happy. That felt good.
Earlier, I’d run a similar sprint building three separate classifieds sites; if you’re toying with that route, my quick post on what actually worked might save you a weekend.


Sellers asked for auctions. Buyers wanted better search and price alerts. I also needed harder fraud checks. That pushed me to a custom build. It took more time but fixed the pain.

My stacked setup (the stuff I picked and used):

  • Frontend: Next.js on Vercel. Pages felt fast. SEO didn’t tank.
  • Backend: NestJS on a small AWS box. TypeScript helped keep bugs small.
  • Database: PostgreSQL on RDS. Simple and solid.
  • Search: Algolia. Facets for brand, price, condition, and mount.
  • Real-time bids: Socket.io. Bids showed up live, like sports scores.
  • Payments: Stripe Connect Custom. Escrow, split payouts, and KYC.
  • KYC/ID: Stripe Identity first. Later I moved to Persona for more docs.
  • Images: Cloudinary with lazy load and background blur. Looked clean.
  • Email: SendGrid. Templates for bids, wins, and order steps.
  • Error stuff: Sentry for bug alerts. Huge relief on busy days.
  • Analytics: PostHog. I tracked search terms and drop-offs.

Auction logic that worked:

  • Reserve price and bid steps. No fake drama.
  • Hard close at the end. No “soft close” creep for now.
  • Auto outbid with max bid. Feels like eBay in a small way.
  • Anti-sniping: last-minute bids add 60 seconds. That helped.

Safety steps that saved me:

  • Hold funds until “received.”
  • Video proof on high dollar disputes. Short clips. Clear rules.
  • Rate limits on new users. Less spam.
  • Block list for bad cards. Stripe Radar catches a lot.

While my marketplace revolves around camera gear, I also studied platforms in completely different niches to learn how they accelerate stranger-to-stranger trust. One eye-opening example is how casual-meetup sites fuse rapid onboarding with photo verification—see how FuckLocal’s Fling platform layers instant location filters, discreet messaging, and real-time safety checks so users can arrange local meetups confidently and without hassle.

Digging further into hyper-local classifieds, I noticed that smaller city-specific boards often nail the “right person, right place, right now” challenge far better than national giants. If you want to see a concrete blueprint of how ultra-focused geography, phone verification, and real-time messaging can combine to create a friction-free experience, check out the Mishawaka edition of SkipTheGames here. You’ll see exactly how a location-based marketplace keeps interactions safe, fast, and relevant—insights you can remix for any niche you’re targeting.

Real numbers:

  • Time: MVP rebuild took 7 weeks, nights and weekends.
  • Cost per month:
    • Vercel: $20 to start
    • AWS (RDS + small EC2): about $85
    • Algolia: $29
    • Cloudinary: $25
    • SendGrid: $15
    • Stripe fees: the usual cut
  • Traffic: about 7k visits/month by month three.
  • GMV: about $18k/month by month four. Small, but steady.

The Pain: Things I Messed Up (So You Don’t)

  • Returns. I had no plan at first. Final sale? People hate that. I added a 48-hour check window. Buyer pays return ship unless item is not as described.
  • Condition grades. People need a clear scale. I moved to A/B/C/D with notes like “shutter 24k.” It cut fights in half.
  • Taxes. Sales tax rules hurt my head. I added TaxJar. I should’ve done that sooner.
  • Shipping damage. One lens cracked. I now require double-boxing and photos. Claims got easier.
  • Support load. Chat got noisy. I added help docs and canned replies in Help Scout. My brain thanked me.
  • Seller quality. I added a two-photo ID check and a $20 test payout. Bad actors left fast.

What To Build First (A Simple, Honest Checklist)

Start tiny. Then grow. Don’t try to be eBay in week one.

Must-haves:

  • Listings with clear photos, price, and condition.
  • Search with basic filters. Brand, price, and state.
  • Escrow with Stripe Connect. Split payouts.
  • Ratings and short reviews.
  • Dispute steps with a timer.

Nice-to-haves:

  • Auctions with max bids and anti-sniping.
  • Price alerts. Email me when this lens drops.
  • Saved searches and wishlists.
  • Label printing to cut errors.
  • Bulk list for power sellers.

If your idea leans more toward a pure directory play, the notes I gathered while building five real directory sites show the quirks you’ll hit around categories, moderation, and monetization.

Admin stuff (not fun, but needed):

  • Refund flow and partial refunds.
  • Fraud flags and ID checks.
  • Sales tax set up.
  • TOS and clear “what’s allowed.”
  • Moderation queue for risky posts.

Real Examples From My Build

  • I ran a “Canon Week” with a 3% fee cut. Listings jumped 40% in three days.
  • I saw “Sony a7iii battery door” searched 26 times. I made a landing page for it. It sold out in a week. Tiny SEO wins matter.
  • A $2,200 lens got lost. Escrow saved me. I had proof, paid the buyer, and waited for the ship claim.
  • One seller tried side deals. I caught it. I warned them once and locked chat links. That stopped it fast.
  • Peak traffic broke search one night. Sentry pinged me. I bumped Algolia records and we were fine.

Would I Start With No-Code Again?

Yes. I’d start with Sharetribe or Webflow + Wized + Stripe. Before you pick a stack, take two minutes to scan the comparison charts at