Soonday

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.
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.

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
