El Rawas
← All work
Sports · Lebanonin build

Cotenos

2025 – present

Creator · Full-Stack & Mobile

React Native / Expo · NestJS · Next.js · Prisma · PostgreSQL · Socket.IO · TypeScript

Context

Booking a pitch or a court still mostly happens over phone calls and messages. Cotenos puts sporting venues in one platform: players find a venue and book it directly from the mobile app, while owners manage their venues, bookings, and staff through the app and a web dashboard. I'm building the product end to end across three codebases.

What I did

  • Designed and built the NestJS + Prisma (PostgreSQL) API powering venues, bookings, and roles: versioned REST endpoints, a consistent response envelope, and centralized error handling that maps database errors to proper HTTP responses.
  • Built the React Native (Expo) app that serves both players and venue owners, branching navigation on the user's role.
  • Built the Next.js dashboard where owners and admins manage venues and operations.
  • Implemented auth across the platform: JWT access and refresh tokens plus Google OAuth, held in a NextAuth session on web and secure storage on mobile.
  • Wired up real-time updates over Socket.IO, transactional email via Resend, and mobile push notifications through Expo.
  • Shipped the app to TestFlight and running the current testing round.

Key decisions

API as the single source of truth

The dashboard and the mobile app are both pure clients of one versioned API. Every response passes through the same envelope and every error through the same filter, so a contract change is made once and both clients inherit it. That discipline is what keeps a three-codebase product maintainable by a small team.

One app, every role

Players, owners, coaches, managers, and admins share a single role model instead of separate apps per audience. The mobile app branches its navigation on role, which means one codebase to ship and test, and an owner can wear a player's hat without switching apps.

Dogfood before launch

Rather than rushing to the App Store, the app is on TestFlight and we're testing it ourselves as developers first, walking the real booking flow end to end so launch-day users never hit the rough edges.

Outcome

A complete venue-booking platform (API, dashboard, and mobile app) in closed TestFlight testing, being exercised end to end ahead of public release.