Live demo · everything is real except the money

🥞 Try DosaDash

An AI-native South Indian cloud-kitchen platform — a portfolio project running on a 4 GB VPS. Everything below is safe to try: payments are Razorpay TEST mode (no real money, ever), the data is synthetic and periodically reseeded, and backoffice actions are audit-logged. Source on GitHub.

1 · Log in (any phone works)

Signup is OTP-based and runs in demo channel: enter any Indian mobile number (e.g. a made-up 98765 43210) and the OTP is shown right on the screen — no SMS is sent. Each number becomes its own customer account, so you get a clean cart, order history and “my usual” memory of your own.

If you link the Telegram bot later, OTPs are DM’d there instead — that’s the swappable OtpChannel interface doing its job.

2 · The three surfaces

There is also a Telegram bot (@dosadash_bot) — same order agent, different adapter. Try sending it a voice note in English or Tamil.

3 · Test payments (Razorpay TEST mode)

After checkout, the pay button opens Razorpay’s test checkout. Use the official test credentials — no real charge is possible on a TEST key:

Card (Visa)4386 2894 0766 0153 · any CVV · any future expiry
Card (Mastercard)2305 3242 5784 8228 · any CVV · any future expiry
Card outcomeA mock bank page follows — choose Success or Failure there (if it asks for an OTP instead: 4+ random digits = success, fewer = failure)
UPI (success)success@razorpay
UPI (failure)failure@razorpay — to see the failure path

Real cards are rejected in test mode by design. If the environment runs without Razorpay keys, the button becomes a one-click demo payment instead (the PaymentProvider interface swaps providers without touching checkout).

4 · AI things worth trying

5 · House rules

  • Synthetic data — any resemblance to a real dosa shop is aspirational.
  • ⚠ be kind The demo admin can edit things; the seeder puts it all back. Be kind anyway.
  • Phone numbers are redacted before any text reaches an LLM.
  • ⚠ 429 Rate limiting is on: hammer it and you’ll meet a polite 429.