Skip to content

amankalra4/zomato-clone

Repository files navigation

This is a project built on NextJS.

AIM

The aim of this project is to search restaurants and check restaurant details near you or in any city or across countries where Zomato provides their services.

All APIs used here were provided by Zomato.

Tech Stack Used

  1. NextJS
  2. TypeScript
  3. React Query
  4. SCSS Modules
  5. Material UI
  6. React Glider
  7. Emotion CSS
  8. Axios
  9. Bootstrap
  10. React Error Boundary
  11. Service workers

Formatting and Linting

  • ES Lint
  • Prettier

Deployment

  • Vercel

Development Details

  1. Used NextJS built in features:
  • Server Side Rendering and Client Side Rendering
  • Dynamic Imports
  • Image component
  • Serving Static Pages
  1. Infinite Scrolling
  • Implemented with the help of react-query to load more data based on user requirement.
  • This helped us to limit the unnecessary API calls if user finds the restaurant earlier while searching.
  • It also helped to have good UI experience by not having pagination but having infinite scroll.
  1. Debouncing
  • Used debouncing with the help of lodash-es.
  1. SEO
  • Have used og meta tags to have a good SEO performance.
  1. Web Vitals
  • Since web vitals is one of the core performance metric of a website, we have used all the required techniques to have good LCP, CLS, TBT score.
  • Pre loaded images wherever required to have less LCP.
  • Used Emotion CSS, Skeletons to avoid layout shift.
  • Used light weight packages like - react glider to have less TBT.
  1. Created custom hooks
  • Created custom hooks wherever required so as to have easy development.
  1. Progressive Web App - PWA
  • Have made the application compatible on any device with the help of PWA.