Product decisions worth copying
Pricing, supply onboarding, money edge cases and trust — each argued once and settled, with the reasoning that matters more than the choice.
Each of these was argued once and settled. The reasoning matters more than the choice — a different vertical may land elsewhere, but it should land deliberately.
Pricing
Show an all-in price; itemize at checkout. A price that grows at checkout is the most reliable way to lose a booking. Itemize on the payment screen so the split is never hidden — the goal is no surprises, not no fees.
Take a fee from both sides, and keep the rates in the database. A dual fee spreads the take so neither side feels singled out. Rates live in a settings table, not in code — you will change them, and you do not want a deploy for that.
Volume discounts sitewide, funded by the platform. Discounting the supplier's cut to fund a promotion makes suppliers hate promotions. If the platform wants the volume, the platform pays for it.
Supply
Let supply list before completing payment onboarding. Requiring a full payments setup before a first listing kills signup. Let them list, hold the first booking, and trigger onboarding when there is real money waiting — the motivation is far higher at that moment.
Approve supply, and store a rejection reason. You will need to explain a rejection, and "why was I rejected" is a support conversation you want answered by a field rather than a person.
Not every record is bookable. A free directory listing and a bookable listing are different things. Model that in the type system on day one; bolting it on later means auditing every surface that assumed bookability, and shipping a "$0/hr" button on something nobody can book.
Money edge cases
Credits, not refunds, when cancelling for a reason you did not cause (weather, supplier no-show). Money stays in the system, the guest is made whole, and you avoid partial-refund arithmetic across two fee sides.
No security deposits. The dispute burden vastly exceeds the damage recovered.
Refund math treats each fee separately. Refunding the gross and assuming the processor absorbs the platform fee silently loses money on every refund.
Trust
Scrub contact details from user-generated text from day one. Once users learn they can take a transaction off-platform, they do not unlearn it. This is retrofit-hostile in the strongest sense.
Free directory as the funnel; the transaction is the product. The directory earns search traffic and goodwill. Monetizing it directly kills the funnel that feeds the thing that actually makes money.
Benchmarking
Pick the two best marketplaces in the vertical and default to their behaviour for anything unspecified — booking flow, cancellation, fee display, trust and safety. If a proposed behaviour diverges from both, that needs an explicit justification rather than a silent ship.