Back to projects
SmartMenu - SaaS Platform
Web Development
Updated: 22. 01. 2026

SmartMenu - SaaS Platform

A full-stack SaaS application allowing restaurants to create digital menus, manage subscriptions, and generate custom QR codes for tables.

Overview

Landing page

Traditional PDF menus are difficult to update and not mobile-friendly. SmartMenu is a Software-as-a-Service (SaaS) platform that solves this by allowing restaurants to build dynamic, mobile-optimized digital menus instantly. The user uploads a PDF or several images of their menu, and the system uses the OpenAI API to parse and structure the content automatically. Restaurant owners can then customize the menu, generate QR codes for table placement, and manage their subscription plans from a dashboard.

The application serves two distinct user groups: restaurant owners who manage their content via a dashboard, and diners who view the public menus by scanning QR codes. The goal was to build a a simple project that could handle everything from a single coffee shop to a franchise chain.

Core Features

Preview

Subscription Management & Payments

A major technical challenge was implementing a robust subscription system using Stripe. I built a tiered access model that enforces limits on the number of active menus and unlocks premium features and OpenAI API usage.

  • Webhook Handling: Automated synchronization between Stripe events and the Supabase database ensures users' statuses are updated instantly upon payment or cancellation.
  • Feature Gating: Implemented logic to lock specific features, such as removing the "Powered by" watermark or accessing advanced analytics, based on the user's active subscription tier.

High-Performance Public Views

Since the end-users are diners on mobile networks, performance was a priority. The public menu pages (/m/[slug]) are built using Next.js Server Components. This moves the heavy lifting to the server, ensuring that menus load instantly with minimal JavaScript sent to the client.

Restaurant Dashboard

Users can access a comprehensive dashboard to manage their menus, view analytics, and handle billing. The dashboard is built such that the user can easily modify menu items, categories, alergens, design style and more.

Dashboard

Secure Database Architecture

Security was handled using Supabase and PostgreSQL Row Level Security (RLS).

  • Data Isolation: RLS policies ensure restaurant owners can only modify their own data.
  • Business Logic in the Database: Critical checks, such as validating watermark removal based on subscription status, are enforced at the database level to prevent unauthorized access.

Technologies Used

  • Frontend: Next.js 16, Tailwind CSS, Lucide Icons
  • Backend: Supabase (PostgreSQL, Auth, Storage)
  • APIs: OpenAI API for menu parsing and content generation
  • Payments: Stripe (Checkout, Billing Portal, Webhooks)
  • Deployment: Vercel

Key Learnings

Building this project deepened my understanding of the "SaaS lifecycle"—handling user onboarding, enforcing usage limits, and managing recurring billing. It also highlighted the importance of moving business logic (like watermark validation) to the database layer to simplify the frontend and enhance security.

Tags

Next.jsSupabaseStripeOpenAI APITypeScriptTailwind CSS

Project Source

Source is Private