Back to projects
Waraporn — Restaurant Brand Site
Food & Beverage

Waraporn — Restaurant Brand Site

Public brand site for a restaurant brand — menu, allergy info, branch finder with Google Maps, lifestyle blog, and bilingual (Thai / English) content. Backed by an admin CMS on AWS Amplify.

Next.jsReactTailwind CSSRadix UIGoogle MapsEmbla CarouselSwiperSlickAWS AmplifyExpressMongoDB

Overview

Overview

Public brand site for a Thai restaurant brand with multiple branches across the country. The site is a hospitality experience first — menu, lifestyle blog, brand story — and a practical tool second, with a Google Maps branch finder, allergy information, and an FAQ. Bilingual (Thai / English) and backed by an admin CMS that the marketing team runs themselves.

What I built

  • Full menu with category browsing and detail views ("menu" + "menus")
  • Branch finder using @react-google-maps/api — searchable list of branches with map markers, opening hours, and phone
  • Allergy information page so guests can check ingredients before ordering — important for a hospitality brand
  • Lifestyle blog and brand-story sections, plus services and FAQ pages
  • Bilingual (Thai default + /en English tree)
  • Mobile-first carousels and reveals — most diners check the site on a phone, often standing outside a branch
  • Companion admin CMS (separate repo) for menu updates, blog posts, and branch info

Tech stack

  • Frontend: Next.js 16, React 19 (RC), Tailwind CSS
  • UI primitives: Radix UI (accordion, dialog, popover, select)
  • Maps: @react-google-maps/api for the branch locator
  • Carousels: Embla, Swiper, Slick, react-multi-carousel, react-snap-carousel — different carousel libs for different feels (hero, menu rows, testimonials)
  • Animations: Lottie, react-awesome-reveal
  • State + utilities: Zustand-style helpers, lodash, date-fns, react-day-picker, react-swipeable for touch gestures
  • Backend: AWS Amplify, Lambda + Express, MongoDB Atlas

My role

Built the public brand site end-to-end and the admin CMS that feeds it. The branch finder was the most operationally important feature — the marketing team adds branches as the brand expands, and that flow had to be self-serve. The allergy page was where I leaned hardest on the editorial team to get content right; the engineering side was straightforward, the content side wasn't.

What I learned

Restaurant brand sites get used differently than they're designed for. The team imagines diners reading the brand story; in reality, most traffic is people standing outside a branch checking the menu and opening hours on their phone. So the practical tooling — branch finder, menu loading time, mobile carousel ergonomics — ended up mattering more than the lifestyle content. The other lesson was managing the carousel zoo: five carousel libraries is two too many, and on the next project I'd consolidate hard before shipping.

Waraporn — Restaurant Brand Site — krittimet.dev