Hopa Menu — Restaurant Discovery Platform

A production-grade SaaS and NFC-based restaurant management and food ordering platform built for the Israeli market — enabling digital menu management, online ordering, and streamlined restaurant operations.

Overview

Led the development of Hopa Menu, a production-grade SaaS and NFC-based restaurant management and food ordering platform targeting the Israeli market. The platform enables restaurant owners to manage their menus, timings, kitchen operations, orders, and deliveries — while customers can scan NFC-based or QR menus to browse and place food orders. Built with Next.js, Node.js, Express.js, Firebase, Material UI, and Tailwind CSS. This was a core project during my tenure at Krishworks Technology and Research Labs (Jun 2022 — Nov 2024).

Problem

The existing application was built as a React.js single-page application (SPA), which suffered from suboptimal performance, poor SEO visibility, and slower initial page loads. As the platform scaled to serve the Israeli market with multilingual support requirements and growing restaurant partner counts, these limitations became bottlenecks for user acquisition and engagement. Additionally, restaurant owners needed a more streamlined way to manage menus, track orders across kitchen and bar, and handle deliveries and take-away from a single interface.

Goals

  • ▸Migrate the application from React.js to Next.js for improved performance and SEO
  • ▸Achieve measurable improvements in website performance and user engagement
  • ▸Enable NFC and QR-based menu scanning for touchless food ordering
  • ▸Support multilingual content for the Israeli market
  • ▸Build a scalable, production-grade architecture suitable for the Israeli market
  • ▸Leverage cloud infrastructure for reliability and scalability

Technology Stack

Next.jsFrontend framework — server-side rendering, routing, and optimized builds
React.jsUI component architecture (migrated from pure React SPA to Next.js)
Node.jsBackend API and server-side logic
Express.jsREST API framework powering the backend services
FirebaseDatabase, authentication, and real-time data management
Google Cloud PlatformHosting, cloud functions, and infrastructure
Material UIComponent library for consistent, modern UI elements
Tailwind CSSUtility-first CSS framework for rapid, responsive styling

My Contribution

Led the full development lifecycle of the platform — from architecture decisions through implementation and deployment. Key responsibilities included:

  • ▸Leading the complete migration from React.js SPA to Next.js with server-side rendering
  • ▸Designing and implementing the application architecture on Firebase and GCP
  • ▸Optimizing build processes, image loading, and runtime performance
  • ▸Implementing SEO best practices through Next.js's built-in capabilities

Results

30%

Website Performance Improvement

10%

Customer Engagement Increase

The React.js to Next.js migration delivered significant performance gains through server-side rendering, optimized code splitting, and improved initial load times. The architectural improvements translated directly into measurable user engagement increases.

Architecture

The platform uses a modern full-stack architecture with Next.js handling server-side rendering and static generation for fast, SEO-friendly pages. Express.js powers the REST API layer, while Firebase provides real-time database capabilities, authentication, and cloud functions. The frontend combines Material UI components with Tailwind CSS for rapid, responsive styling. NFC and QR code scanning integrations enable touchless menu access. GCP hosts the infrastructure, ensuring scalability and reliability. The architecture supports multilingual content delivery and real-time order management across kitchen, bar, take-away, and delivery channels.

Challenges & Solutions

React to Next.js Migration

Migrating a production SPA to Next.js required careful planning around routing, state management, and server-side rendering compatibility — ensuring zero downtime during the transition while maintaining feature parity.

Performance Optimization

Achieving the 30% performance improvement required optimizing image loading strategies, implementing code splitting, and leveraging Next.js's built-in performance features like automatic static optimization.

Lessons Learned

This project reinforced the importance of choosing the right framework for the problem — the migration from React.js to Next.js was a strategic decision that paid dividends in performance, SEO, and developer experience. Leading the full lifecycle also deepened my understanding of cloud architecture and production deployment patterns on GCP and Firebase.