MuseoBot
Next.js · PostgreSQL · Razorpay · Clerk · Botpress
Museum ticketing with payments that can't double-charge.
MuseoBot handles the unglamorous parts of ticketing correctly: Razorpay payments run through idempotency checks so a retried request can never become a duplicate charge, and Clerk owns auth and session management.
An admin dashboard tracks booking analytics and user activity, while Botpress automates the customer-support workflows that would otherwise land in someone's inbox.
Key decisions
- Idempotent Razorpay integration — retries never duplicate transactions
- Admin dashboard for booking analytics and user activity
- Botpress-automated customer support workflows