YK.
Back to projects

Frontend Engineering · 2026

Airbnb Clone

A desktop-first recreation of an Airbnb property listing interface developed from a supplied visual reference. The implementation covers the primary listing experience, image gallery, Photo Tour, full-screen lightbox, navigation states, and accessibility-focused interaction behavior.

Live productPrivate repository

ROLE

Frontend development · UI recreation · Interaction engineering · Accessibility

STACK

Next.js · React · TypeScript · Tailwind CSS · Playwright · axe-core · Vercel

OUTCOME

Recreated a complex production-style interface from a visual reference while preserving layout accuracy and interaction quality. Built a complete Photo Tour and 43-image lightbox experience with keyboard navigation, focus management, accessibility handling, and automated Playwright testing.

Airbnb-style property photo tour

PROBLEM

What needed solving

Reproducing an established production interface requires more than matching colors and typography. Layout proportions, image presentation, interaction states, keyboard behavior, overlays, focus handling, and navigation all need to behave consistently while remaining maintainable.

APPROACH

How I approached it

I broke the interface into reusable React components and reproduced the page structure, spacing, typography, image layout, and interaction states in Next.js. I then built the Photo Tour and full-screen lightbox as dedicated interaction flows, including previous and next controls, keyboard navigation, Escape handling, focus trapping and restoration, reduced-motion support, and automated accessibility checks.

ENGINEERING

Implementation highlights

01High-fidelity UI implementation
02Component-driven React architecture
03Complex image gallery interactions
04Photo Tour and full-screen lightbox
05Keyboard navigation
06Focus trapping and restoration
07Accessibility testing
08Reduced-motion support
09Hover and focus states
10Automated browser testing
11Production deployment

KEY DECISIONS

Trade-offs and choices

01

Component-driven interface

Split the listing experience into reusable components instead of building the entire reference page as one monolithic view.

02

Dedicated Photo Tour

Separated the expanded gallery experience from the primary listing page to keep navigation and state easier to manage.

03

Accessible lightbox

Added keyboard navigation, Escape handling, focus trapping, and focus restoration so the image viewer works beyond pointer interaction.

04

Automated accessibility checks

Used Playwright with axe-core to validate important interaction and accessibility behavior.

05

Desktop fidelity first

Prioritized accurate reproduction of the supplied desktop reference while maintaining robust browser interactions.

06

Interaction-aware motion

Added reduced-motion handling so transitions respect user accessibility preferences.

ENGINEERING SUMMARY

What this project is built on.

TECHNOLOGY

Next.js · React · TypeScript · Tailwind CSS · Playwright · axe-core · Vercel

ROLE

Frontend development · UI recreation · Interaction engineering · Accessibility

OUTCOME

Recreated a complex production-style interface from a visual reference while preserving layout accuracy and interaction quality. Built a complete Photo Tour and 43-image lightbox experience with keyboard navigation, focus management, accessibility handling, and automated Playwright testing.

LINKS

Live productPrivate repository

NEXT PROJECT

Full-stack application

Compliance Tracker

A responsive compliance workspace for clients, tasks, deadlines, filtering and lightweight analytics.