Back to projects
Hospitality
RTL / i18n
Admin

Dinary

Frontend Developer

Bilingual restaurant ordering platform with a full admin console.

Open live site

Problem

A restaurant technology product needed a customer-facing bilingual web app and a serious admin console for ordering, live status, inventory, and analytics, without compromising RTL or motion quality.

What I built

Full-stack frontend delivery for the customer website and admin dashboard. The customer app includes phone + OTP auth (international phone input, reCAPTCHA), menu browsing, order flow, live status, order history with Lottie, plus marketing, partners, and scroll-based motion (Framer Motion, GSAP). The admin side covers KPI charts, drag-and-drop order status, CRUD for menus, inventory, and customers, and a shared internationalized layout. Backend integration through Supabase and Firebase, with React Hook Form and Yup/Zod validation.

Impact

Shipped a production-ready multilingual platform covering ordering, admin workflows, and real-time data with reusable components and animation.

Key features

  • Bilingual (EN/AR) customer app with full RTL and responsive layout
  • Phone + OTP authentication with international input and reCAPTCHA
  • Menu, checkout, live status tracking, and order history
  • Admin analytics with Recharts and drag-and-drop order management
  • CRUD for menus, inventory, and customers
  • Supabase and Firebase data/auth, React Hook Form + Yup/Zod

Tech stack

Next.js 14
React 18
TypeScript
Tailwind CSS
Supabase
Firebase
Framer Motion
GSAP
Recharts

Challenges & solutions

  • Challenge

    Ordering UX that stays clear in both English LTR and Arabic RTL.

    Solution

    Shared internationalized layout, direction-aware components, and the same polish on menu, checkout, and status screens in both locales.

  • Challenge

    An admin console dense enough for operations without becoming noisy.

    Solution

    KPI-first analytics, drag-and-drop status handling, and consistent CRUD patterns for menus, inventory, and customers.