# aditya9-2/airbnb-clone architecture

> Architecture diagram of the GitHub repository aditya9-2/airbnb-clone, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/aditya9-2/airbnb-clone
- Repository: https://github.com/aditya9-2/airbnb-clone

## Overview

This is a Next.js Airbnb-style listing-page replica. The user-facing flow is to view a property’s photos and details, inspect amenities, reviews, location, host information and nearby stays, then use the booking card and calendar interface. The listing root coordinates these sections; review content is backed by local typed data rather than a shown remote service. The README is a generic Next.js starter and documents no additional product capabilities. Several section implementations and the page entry point were not sampled, so their internal wiring is omitted where it cannot be confirmed.

Main entry points: [`components/listing/ListingClientRoot.tsx`](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/ListingClientRoot.tsx) (Listing root), [`app/page.tsx`](https://github.com/aditya9-2/airbnb-clone/blob/main/app/page.tsx) (App page), [`components/listing/reviews/ReviewsSection.tsx`](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/reviews/ReviewsSection.tsx) (Reviews section), [`components/layout/ListingNavbar.tsx`](https://github.com/aditya9-2/airbnb-clone/blob/main/components/layout/ListingNavbar.tsx) (Listing navigation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Page entry"]
  node_page["App page<br/>[page.tsx]"]
end

subgraph group_listing["Listing experience"]
  node_root["Listing root"]
  node_nav["Listing navigation<br/>[ListingNavbar.tsx]"]
  node_booking["Booking card<br/>[BookingCard.tsx]"]
  node_calendar["Booking calendar"]
  node_toast["Toast feedback<br/>[useToast.tsx]"]
end

subgraph group_discovery["Listing details"]
  node_photos["Photo tour<br/>[PhotoTourModal.tsx]"]
  node_amenities["Amenities"]
  node_reviews["Reviews section<br/>[ReviewsSection.tsx]"]
  node_location["Location section"]
  node_host["Host section"]
  node_nearby["Nearby stays"]
end

subgraph group_content["Local content"]
  node_listingdata["Listing data<br/>[listing.ts]"]
  node_amenitydata["Amenity data<br/>[amenities.ts]"]
  node_reviewdata["Review data<br/>[reviews.ts]"]
  node_nearbydata["Nearby stay data<br/>[nearbyStays.ts]"]
  node_photodata["Photo tour data<br/>[photoTour.ts]"]
end

node_visitor(("Site visitor"))

node_visitor -->|"opens page"| node_page
node_page -->|"renders listing"| node_root
node_root -->|"renders"| node_nav
node_root -->|"renders"| node_booking
node_root -->|"renders"| node_calendar
node_root -->|"opens"| node_photos
node_root -->|"renders"| node_amenities
node_root -->|"renders"| node_reviews
node_root -->|"renders"| node_location
node_root -->|"renders"| node_host
node_root -->|"renders"| node_nearby
node_root -->|"uses"| node_toast
node_root -->|"receives listing"| node_listingdata
node_reviews -->|"reads reviews"| node_reviewdata

click node_page "https://github.com/aditya9-2/airbnb-clone/blob/main/app/page.tsx"
click node_root "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/ListingClientRoot.tsx"
click node_nav "https://github.com/aditya9-2/airbnb-clone/blob/main/components/layout/ListingNavbar.tsx"
click node_booking "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/BookingCard.tsx"
click node_calendar "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/StaticBookingCalendar.tsx"
click node_photos "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/phototour/PhotoTourModal.tsx"
click node_amenities "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/AmenitiesSection.tsx"
click node_reviews "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/reviews/ReviewsSection.tsx"
click node_location "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/LocationSection.tsx"
click node_host "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/host/MeetYourHostSection.tsx"
click node_nearby "https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/NearbyStaysCarousel.tsx"
click node_listingdata "https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/listing.ts"
click node_amenitydata "https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/amenities.ts"
click node_reviewdata "https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/reviews.ts"
click node_nearbydata "https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/nearbyStays.ts"
click node_photodata "https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/photoTour.ts"
click node_toast "https://github.com/aditya9-2/airbnb-clone/blob/main/hooks/useToast.tsx"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_page toneBlue
class node_root,node_nav,node_booking,node_calendar,node_toast toneAmber
class node_photos,node_amenities,node_reviews,node_location,node_host,node_nearby toneMint
class node_listingdata,node_amenitydata,node_reviewdata,node_nearbydata,node_photodata toneRose
class node_visitor toneIndigo
```

## Components

### Page entry

- [App page](https://github.com/aditya9-2/airbnb-clone/blob/main/app/page.tsx): `app/page.tsx`

### Listing experience

- [Listing root](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/ListingClientRoot.tsx): `components/listing/ListingClientRoot.tsx`
- [Listing navigation](https://github.com/aditya9-2/airbnb-clone/blob/main/components/layout/ListingNavbar.tsx): `components/layout/ListingNavbar.tsx`
- [Booking card](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/BookingCard.tsx): `components/listing/BookingCard.tsx`
- [Booking calendar](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/StaticBookingCalendar.tsx): `components/listing/StaticBookingCalendar.tsx`
- [Toast feedback](https://github.com/aditya9-2/airbnb-clone/blob/main/hooks/useToast.tsx): `hooks/useToast.tsx`

### Listing details

- [Photo tour](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/phototour/PhotoTourModal.tsx): `components/listing/phototour/PhotoTourModal.tsx`
- [Amenities](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/AmenitiesSection.tsx): `components/listing/AmenitiesSection.tsx`
- [Reviews section](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/reviews/ReviewsSection.tsx): `components/listing/reviews/ReviewsSection.tsx`
- [Location section](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/LocationSection.tsx): `components/listing/LocationSection.tsx`
- [Host section](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/host/MeetYourHostSection.tsx): `components/listing/host/MeetYourHostSection.tsx`
- [Nearby stays](https://github.com/aditya9-2/airbnb-clone/blob/main/components/listing/NearbyStaysCarousel.tsx): `components/listing/NearbyStaysCarousel.tsx`

### Local content

- [Listing data](https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/listing.ts): `lib/data/listing.ts`
- [Amenity data](https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/amenities.ts): `lib/data/amenities.ts`
- [Review data](https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/reviews.ts): `lib/data/reviews.ts`
- [Nearby stay data](https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/nearbyStays.ts): `lib/data/nearbyStays.ts`
- [Photo tour data](https://github.com/aditya9-2/airbnb-clone/blob/main/lib/data/photoTour.ts): `lib/data/photoTour.ts`

### Other components

- **Site visitor**

## Connections

- Site visitor → App page: opens page
- App page → Listing root: renders listing
- Listing root → Listing navigation: renders
- Listing root → Booking card: renders
- Listing root → Booking calendar: renders
- Listing root → Photo tour: opens
- Listing root → Amenities: renders
- Listing root → Reviews section: renders
- Listing root → Location section: renders
- Listing root → Host section: renders
- Listing root → Nearby stays: renders
- Listing root → Toast feedback: uses
- Listing root → Listing data: receives listing
- Reviews section → Review data: reads reviews
