loading
← Back to Projects
Full-Stack Platform / Solo Build

MyPizza

My first full-stack product, built entirely solo. I handled everything — database schema, API routes, frontend UI, admin dashboard, gamification systems, push notifications, and PWA setup. From zero to a production restaurant platform.

My Role
Everything
Team
Just Me
Portals
3 (Customer, Admin, Staff)
Systems
10+
View Live Site →
MyPizza Homepage
01

Overview

This was my proving ground as a full-stack developer. MyPizza is a production restaurant ordering platform I built for a wood-fired pizza place in Tripoli, Lebanon. Not a tutorial project — a real system with real users, handling real orders.

I designed the database schema in Supabase, wrote every API route, built the entire frontend with Next.js 16 and React 19, created a full admin dashboard with 7 management tabs, built a separate staff portal for kitchen and delivery teams, implemented a gamification layer with a spin wheel and loyalty points, and set up push notifications and PWA support.

Building this solo forced me to think about every layer of a product — not just the UI, but database design, authentication flows, notification infrastructure, analytics, and the business logic that connects it all. It's the project that made me a full-stack developer, not just a frontend developer.

10+
Core Systems
1
Developer (Me)
3
User Portals
2
Currencies
02

What I Built

MyPizza Menu
01

Menu, Cart & Checkout

Dynamic menu fetched from Supabase with category filtering. Customization modals with presets and paid extras. Persistent localStorage cart. Multi-step checkout with dual currency (USD/LBP), promo code validation, and loyalty point redemption. WhatsApp fallback ordering.

Supabase, React Context, localStorage, Framer Motion transitions
Photos coming soon
02

Gamification — Spin Wheel & Loyalty

This was the most fun to build. A canvas-rendered spin wheel with weighted probability — customers spend loyalty points to spin for discounts, free delivery, or free items. Real promo codes generated on win. Plus a loyalty system that tracks lifetime points and a flash promo engine for time-limited deals.

Canvas API, probability engine, auto promo code generation, Supabase ledger
MyPizza Admin Dashboard
03

Admin Dashboard (7 Tabs)

The most complex part of the app. Real-time order management with a status pipeline. Analytics dashboard with KPIs (revenue, users, engagement). Menu CRUD with image uploads. Inventory tracking. Shift scheduling. Employee management. Gamification settings. All in one interface.

Supabase real-time, multi-tab state, image uploads, analytics aggregation
Photos coming soon
04

PWA, Push Notifications & Analytics

Set up the full PWA infrastructure — manifest, service worker, install prompts. Web Push for order status updates and cart abandonment reminders (30-min timeout). PostHog for product analytics and Google Analytics for traffic. Every user interaction tracked.

Web Push API, Service Worker, PostHog, Google Analytics, cart abandonment
MyPizza Taste Quiz
05

Taste Quiz & Personalization

A 5-question quiz that builds a taste profile — spice preference, protein type, cheese level, sweet pizzas, adventurousness. Stored in Supabase, it powers a "Recommended for You" section on the menu page using tag-based matching against menu items.

Multi-step form, tag-based scoring, Supabase profiles, recommendation engine
03

Stack

Framework
Next.js 16
UI
React 19
Language
TypeScript
Styling
Tailwind CSS 4
Animation
Framer Motion
Animation
GSAP
Database
Supabase
Auth
Supabase + OAuth
Email
Resend
Notifications
Web Push
Analytics
PostHog + GA
Messaging
WhatsApp API