Case study

Soonday

TypeLast-minute booking platform
Soonday same-day service-booking marketplace

Overview

Soonday is a last-minute appointment-booking platform: users book services that are available within a 48-hour window. The system follows an OpenAPI-first microservices design — account, catalog and provider domain services sit behind a BFF (backend-for-frontend) gateway, with every contract defined up front. I work on the web client: a Next.js and TypeScript app built against those OpenAPI contracts, while the backend services are built by the rest of the team.

Challenge

On the frontend, the challenge is staying in lockstep with contracts that keep evolving — the TypeScript API client is generated straight from the OpenAPI specs, so any breaking change surfaces at compile time instead of in production. Add time-sensitive availability on top (bookings only make sense inside a 48-hour window, across timezones), and the client has to handle live data, caching and optimistic updates without ever showing a slot that's already gone.

Soonday service architecture
Technologies used for this project

Web client: Next.js, React, TypeScript, TanStack Query, Zustand, React Hook Form with Zod, i18next, Tailwind CSS
API integration: TypeScript client generated from OpenAPI contracts, consumed through a BFF gateway

Soonday service search and booking view