← All projects
2025

MuseoBot

Next.js · PostgreSQL · Razorpay · Clerk · Botpress

Museum ticketing with payments that can't double-charge.

Idempotent paymentsAutomated support

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