Sports & Fitness

Tennis.ru App

Tennis.ru App, screenshot 1

Two mobile apps for a large sports complex, processing millions in transactions every month. One brand: tennis court booking and gym subscriptions on a shared architecture, payments and backend.

Booking & Payments

Real-time court availability with instant booking and integrated payment processing. The gym app manages monthly subscriptions with automated renewals and access control. Both systems handle peak loads while maintaining sub-second response times and transactional integrity.

Concurrency & Caching

The booking engine uses PostgreSQL Row Level Locking to prevent double-bookings under concurrent access. DragonflyDB serves as the caching layer, providing Redis-compatible in-memory caching.

Architecture

Built on Capacitor 6 for native mobile deployment, with Bun/ElysiaJS powering the backend API. The frontend uses React/Vite for a fast, responsive interface, backed by PostgreSQL with Drizzle ORM for type-safe database operations.

Key Highlights

  • Two apps, one platform: tennis booking + gym subscriptions on shared infrastructure
  • Row Level Locking: PostgreSQL-based concurrency for zero double-bookings
  • DragonflyDB caching: millisecond reads for schedules and availability
  • Personal account system: purchases, bookings, statistics, subscriptions
  • Native mobile: Capacitor 6 for iOS and Android
  • High-load ready: handles peak booking periods without degradation