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.
The Upgrade: We Needed Bids and Better Search
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