Decision
Redux Toolkit for shared booking state
Reason
Reservation steps need predictable, inspectable state transitions.
Trade-off
More ceremony than local component state for simpler screens.

A food-tech booking experience focused on discoverability, availability, and a polished interface that feels ready for real diners — not just demos.
Case narrative
Ubaky helps diners reserve tables across Spain and Portugal — a product where clarity in each booking step directly affects completion.
Problem
Reservation flows often feel cluttered or inconsistent, which increases drop-off before confirmation.
Why it was difficult
Multi-step booking state, availability feedback, and UI density had to stay understandable under real diner impatience.
Approach
I contributed React + TypeScript interfaces with Redux Toolkit for shared booking state and a design-system baseline for consistent actions.
Why this approach
Predictable client state and reusable UI patterns reduce edge-case bugs in flows that users abandon quickly when confused.
Outcome
A more productized booking experience — clearer actions, more consistent screens, and safer state handling as features grew.
What I learned
Reservation products succeed when each step feels obvious Shared state needs discipline as features grow Design-system reuse accelerates trustworthy UI
Trade-offs
Choices that shaped the architecture — including what we accepted in return.
Decision
Reason
Reservation steps need predictable, inspectable state transitions.
Trade-off
More ceremony than local component state for simpler screens.
Decision
Reason
Accelerates consistent UI without inventing every control.
Trade-off
Requires discipline to avoid generic, overloaded interfaces.
Decision
Reason
Protects complex booking props and API contracts as the product evolves.
Trade-off
Slightly slower initial wiring for safer refactors later.
System shape
Visuals
A product screenshot from this project. Select it to open a larger view.
Outcome
Practical results across experience, maintainability, scale, and value — without invented metrics.
Diners encounter clearer booking actions and less visual noise during reservation.
Shared state patterns make multi-step flows easier to extend safely.
Consistent UI primitives support growth across restaurant and booking surfaces.
A more completeable booking journey supports the product’s core conversion path.
Open the deployment, or continue to another case study below.