Marketplace / Booking and Payments
Rent N Roll
A pre-launch marketplace that gives camera owners and renters one booking to follow from available dates and verification through payment, handoff, and return.

Public evidence
These reviewed public sources support the adjacent build claims; they do not imply adoption or unmeasured outcomes.
Problem
- Target user
- Camera owners listing equipment and renters looking for the right gear on specific dates.
- Challenge
- Both people need to know what gear is available, who has been verified, what has been signed and paid, and whether the equipment is ready for handoff or return.
- Why it mattered
- If any of those details disagree, the owner and renter can act on different booking information or lose sight of the next required step.
Constraints
- The marketplace is still pre-launch, so the build proves feature coverage—not adoption or live rental volume.
- PayMongo confirms payment and deposit changes asynchronously through webhook events.
- The initial data layer contained 24 untyped database queries across a growing booking journey.
Solution
One booking connects the listing, renter, required checks, money movement, and physical exchange so each side can see what happens next.
- Owners publish equipment with photos, daily pricing, deposit details, and available dates.
- Renters choose available gear, complete the supported identity verification and contract steps, and request the booking.
- That booking carries PayMongo payment and deposit updates through handoff confirmation and return.

Engineering Decisions
Fix ambiguous database calls before launch
- Constraint
- Twenty-four untyped database queries made it easy for application code and stored data to disagree.
- Decision
- Move every identified query behind typed Supabase RPC patterns backed by generated types.
- Rationale
- Make booking-data changes reviewable and catch mismatched fields before they reach an owner or renter.
- Validation
- All 24 identified queries were migrated to the typed pattern.
Let PayMongo confirm money movement
- Constraint
- The interface can start a payment, but it cannot prove that PayMongo completed it.
- Decision
- Integrate payment and deposit handling through PayMongo webhooks.
- Rationale
- Update the booking from provider-confirmed events instead of assuming a successful button click.
Outcomes
Product and delivery
Full lifecycle
One booking, end to end
Connected listings and availability to verification, contracts, PayMongo payments and deposits, handoff confirmation, and return.
Implementation evidence
24 queries
Safer database changes
Moved 24 untyped database queries to typed Supabase RPC patterns so mismatched application and database assumptions can be caught earlier.
Learnings and Next Steps
What I learned
- The difficult part of rental software is not the listing page; it is keeping two people aligned through every commitment and handoff.
- A payment button shows intent, but the PayMongo event must confirm whether money actually moved.
What I would improve
- Run the complete booking, payment, handoff, return, and exception paths with launch users before adding more marketplace scope.
What remains unvalidated
- Because the marketplace is pre-launch, there is no verified rental volume, user adoption, or live payment history yet.