
I work on TrueGether, a marketplace that's been running since 2012 where you can sell an item with no commission taken out — no listing fee either, unlike most of the platforms sellers are used to. I didn't build the business model, but I've spent a lot of time on the engineering side of what that pricing model actually forces you to get right, and I wanted to write down what that's taught me, mistakes included.
"Zero fee" is a product constraint, not just a pricing page
The first thing that becomes obvious once "no commission" is the pitch: you can't paper over friction with money. A marketplace that charges 10-13% per sale can afford a clunky onboarding flow, because the revenue is already flowing. We don't have that cushion, so every point of friction in listing, searching, and checkout has to earn its keep on its own. That reframes a lot of otherwise "nice to have" engineering work as actually load-bearing for the business.
The clearest example: a huge number of sellers who'd consider a second marketplace already have a working catalog somewhere else — usually eBay or Shopify. Asking them to manually re-list everything is the single biggest thing standing between "interested" and "actually selling." So instead of just building a listing form and hoping, we built import tooling that pulls an existing eBay or Shopify catalog in directly. It's not glamorous work, but it probably did more for adoption than any feature we shipped that quarter.
Search gets weird when your catalog is everything
TrueGether spans a genuinely wide catalog — electronics, jewelry, collectibles, home goods, sporting goods, and a couple dozen categories beyond that. That's great for being a real "one place to list" marketplace, but it's rough on search relevance. A query like "case" means something completely different in Electronics (phone case) than in Musical Instruments (guitar case) than in Collectibles (display case). Generic relevance tuning that works for a single-category shop falls apart fast at that breadth.
We run Solr for search, and most of the actual engineering effort there isn't indexing — it's building enough category-aware signal into ranking that a broad, ambiguous query still surfaces the right cluster of results instead of a blend of unrelated ones. It's the kind of problem that looks small until you're staring at a search log full of near-misses.
Caching a marketplace is not caching a blog
Varnish sits in front of a lot of our read traffic, and for a mostly-static site that's a solved problem. A marketplace is not mostly static — prices change, items sell out, sellers edit listings — so overly aggressive caching means showing a buyer something that's no longer true, and overly cautious caching means your origin gets hammered on every category page. We ended up spending more time on invalidation strategy (what has to bust the cache immediately vs. what can lag by a few minutes) than on the caching layer itself, which was the opposite of what I expected going in.
Rewrite less than you think you need to
Some of the frontend is still JSP. Some of it — the listing details page, most recently — has been rebuilt in React, TypeScript, and Tailwind. I used to be a "just rewrite it properly" person, and working on a live marketplace cured me of that. You can't take checkout offline for a quarter to do a clean rewrite, so the actual skill is figuring out which single page or flow to modernize next, shipping it behind the old one, and letting the two coexist without users noticing the seam. It's slower and less satisfying than a fresh start, but it's the only version of "modernize the stack" that doesn't put revenue at risk.
What I'd tell someone building a marketplace from scratch
None of this is exotic technology — Solr, HBase, Varnish, Docker, a slow React migration. The lessons weren't really about picking the right tools, they were about which problems actually matter when your pricing model removes the usual safety net. Building a real eBay alternative — not just a cheaper clone with the same fee structure — turned out to be less about the pricing page and more about all of the above. If you're not charging fees, your infrastructure has to work harder to justify why anyone stays, because you can't buy their patience with a good deal — the deal is the default state.
If you want to see where all of this actually landed, the same import-and-list flow I described above kicks in the moment you become an online seller there — it's running in production, not just on a roadmap slide.
Happy to go deeper on any of this in the comments — search relevance and cache invalidation are the two I'd genuinely enjoy nerding out about further.
Top comments (0)