Slice Town

Slice Town is a fully animated marketing website for a pizza restaurant, built from scratch with Next.js 16 and React 19. The site covers the complete customer journey: a parallax hero with scrolling typography, a categorised digital menu (veg pizzas, non-veg pizzas, add-ons, desserts), a hot-deals carousel, a table reservation form, customer testimonials, location cards, and an Instagram-style media grid with auto-play video cards. Legal pages (Privacy Policy, etc.) are fetched at runtime from a Canopy API using Bearer authentication. The entire UI is driven by CSS custom properties and scroll-triggered InView reveal animations, with buttery-smooth scrolling powered by Lenis.

Industry

Food & Beverage

Role

Full Stack Developer

Tech Stack

Next.js 16, React 19, TypeScript, Lenis, Canopy API, ESLint

Year

2026

Live URL

https://slice-town.alinsafawi.com/

GitHub

https://github.com/AlinSafawi19/Slice-Town

Highlights

  • Parallax hand-scroll hero with dual-row animated marquee typography
  • Full digital menu with four categories: Veg Pizzas, Non-Veg Pizzas, Add-ons, and Desserts
  • Interactive offers carousel showcasing hot-deal featured items with pricing
  • Table reservation form section with an animated background image grid
  • Scroll-triggered InView reveal animations on every major section
  • Customer testimonials section
  • Location cards with address, phone number, and opening hours
  • Instagram-style media grid mixing static images and auto-play video cards
  • Promo marquee ticker for rotating promotional copy
  • Privacy policy and legal pages fetched live from a Canopy API
  • Smooth site-wide scrolling via Lenis

Challenge

The brief called for a high-end restaurant marketing site that could compete visually with agency-produced work — rich animations, a complete menu, online table reservations, social proof, and always-current legal pages — all delivered as a fast, accessible, server-rendered web app.

Approach

The site was built on Next.js 16's App Router for a server-first architecture, with React 19 handling interactive components. Smooth scrolling is handled globally by Lenis via a context provider. Section entrances use a custom InViewReveal component backed by IntersectionObserver, keeping animation logic declarative and decoupled from content. The offers carousel and Instagram video cards are bespoke client components. Legal page content is fetched at request time from a Canopy API with Bearer auth and PascalCase key normalisation, so copy updates in the backend appear on the site without a redeploy. The entire visual system is defined in CSS custom properties, making theming consistent and easy to iterate on.

Outcome

A production-ready restaurant website with polished scroll animations, a full categorised menu, functional table reservation flow, promotional sections, and live-fetched legal pages — demonstrating end-to-end front-end engineering with modern React and Next.js patterns.

More Projects