Demo · App with payments · 2026
NoPayNoDate
A dating app where the man pays a deposit to send a request: a complete payment flow to try in one click, with no sign-up and no real money.


- automated tests
- 61
- to get in, no sign-up
- 1 click
- of real money: Stripe in test mode
- €0
Context
NoPayNoDate is not a real service: it is a technical demo. The idea: the woman sets a deposit of $20 to $200, and the man pays it to send her a date request. The deposit is held until she decides, refunded if she declines, paid out when both confirm the date. The profiles are fictional and payments go through Stripe in test mode.
Challenges
- Let anyone try the flow from both sides, without creating an account.
- Keep a real payment (the Stripe form, a test card) without any real money being able to move.
- Open an application to the public without a visitor being able to see another visitor’s data, or overload the service.
What was built
One-click entry
One button creates two disposable accounts, one on each side. A banner lets you switch between them to play the request, then the answer.
Deposit held, then paid out or refunded
Card payment in the Stripe form. Full refund if the request is declined, payout (minus a 10% commission) when both confirm.
Real-time chat
The conversation opens as soon as the deposit is held, and messages arrive without reloading the page.
Profiles, search and notifications
Browsing profiles with filters and sorting, detailed profile page, a badge on requests waiting for an answer.
Under the hood
- Each visitor has their own sandbox: they only see fictional profiles and their two accounts, deleted automatically within 48 hours.
- Regular sign-up and login are closed, limits apply per IP address, and everything payment-related refuses to run with a live Stripe key.
- Payment verified with Stripe on return from the form, payout protected against duplicates, simultaneous actions covered by tests (Vitest).
- Full code review before publication, content security policy (CSP), and the demo excluded from Google results.