Next.jsReactCorporate Website

Foodie-Spot — Next.js Business Template

By zainshah3464

Foodie Spot is a Next.js-based single-page restaurant website template with a dark theme, direct WhatsApp ordering, and scroll-driven animations. It is suitable for restaurants and small food businesses to showcase menus and contact information.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-13View source

What stands out

A quick read of the recorded project description.

01

Single-page structure with sections for hero, story, menu, gallery, reviews, contact, and footer

02

Menu supports filtering by category and includes Framer Motion layout animations

03

Direct ordering via WhatsApp; clicking a dish button opens a chat with a pre-filled message

04

Gallery supports hover zoom and click-to-open lightbox preview

05

Dark theme with orange accent colors; animations include parallax and progressive reveal

06

Includes Open Graph, Twitter Cards, and JSON-LD structured data

Template Details

Foodie Spot is a single-page restaurant website template built with Next.js. The page includes sections for a hero, brand story, menu, image gallery, customer reviews, contact and map, and footer. The menu supports filtering by category, the gallery offers hover zoom and lightbox preview, and the contact section embeds Google Maps and displays address, phone, and business hours. The ordering flow does not rely on a backend: when customers click the "Order Now" button on a dish, WhatsApp opens with a pre-filled message including the dish name and a quantity inquiry, and the business receives the order in WhatsApp.

The template uses a dark background with orange accent colors, and animations are powered by Framer Motion, including parallax, progressive reveal, and layout transitions. The project description positions it as a front-end demo with no backend, and all images come from Unsplash and can be replaced with your own assets. The README mentions that Open Graph, Twitter Cards, and JSON-LD structured data are included, along with inline SVG icons.

Before use, note the following: the template has no backend or payment integration, and orders rely entirely on WhatsApp links; the licensing of third-party assets such as demo images and fonts must be checked separately and cannot be determined solely by the code's MIT license. The README roadmap still contains unfinished items, indicating that some features may not yet be implemented.

Next.jsCorporate website

Is it right for your project?

Use Cases

  • Build a single-page website for a restaurant or small food business to showcase menus and contact information
  • Scenarios where customers need to order directly via WhatsApp without integrating a backend order system
  • Use as a sample project for learning Next.js and Framer Motion scroll animations and layout transitions
  • Quickly replace copy such as dishes, reviews, and contact information for demos or prototypes

Suitable For

  • Restaurants, fast-food outlets, takeout shops, and other food businesses that need to display menus online
  • Operators who want to receive orders via WhatsApp without introducing payment or order backends
  • Front-end developers or designers who need a single-page dark-theme website template

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Requires Node.js v18.18 or higher; install dependencies with npm, yarn, pnpm, or bun, then run npm run dev

  2. 2

    The project has no required environment variables; optionally set NEXT_PUBLIC_SITE_URL for SEO and metadata

  3. 3

    When replacing the WhatsApp number, use international format without a plus sign, e.g., 923710371689, and update the links in components such as Hero, Menu, and Contact accordingly

  4. 4

    Dishes, reviews, contact information, and gallery images are located in arrays or configurations in Menu.tsx, Reviews.tsx, Contact.tsx, and Gallery.tsx respectively

  5. 5

    Demo images come from Unsplash; when replacing them with your own assets, verify the asset licenses yourself

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope applies to that version's code and does not mean external services or third-party assets are free.

Must comply with when using

  • You are allowed to use, modify, commercialize, and distribute this version's code for free.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be determined solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
  • This template is a front-end demo only and has no backend service; orders do not pass through a server or database and must be received via external means.
  • The ordering function depends on WhatsApp: after customers click, they are redirected to WhatsApp and send a pre-filled message, and the business must have a working WhatsApp account to receive orders.
  • Before use, you must replace the hardcoded example WhatsApp number in multiple places in the code with your own number, using international format without a plus sign.
  • Demo images come from Unsplash and must be replaced; the licenses for these third-party assets must be checked separately and are not granted along with the code's MIT license.
  • Page images are loaded from Unsplash over the internet; offline or in restricted network conditions, images may not display.
  • The contact section embeds Google Maps, and the page loads external services from Google, which may be subject to their availability and terms.
  • The project runs without required environment variables; only NEXT_PUBLIC_SITE_URL is optionally set for SEO and metadata.
  • Online payment is currently not supported; only WhatsApp ordering is supported. Payment functionality is still on the roadmap and not yet implemented.
  • The project currently has no unit tests; testing is planned for v2.0 and should not be considered as already having test coverage.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

The site is a front‑end demo with no backend.

Original README

Customers can place orders via WhatsApp with pre‑filled messages.

Original README

Replace `923710371689` in all `href` attributes (Hero, Menu, Contact, etc.) with your own WhatsApp number (include country code, no plus sign).

Original README

All images are from Unsplash and can be replaced with your own.

Original README

Ensure you have internet connection; images are from Unsplash.

Original README

Embedded Google Map

Original README

No mandatory environment variables are needed to run the project.

Original README

Not yet, but it's on the roadmap. Currently only WhatsApp ordering is supported.

Original README

No unit tests yet — planned for v2.0

Original README
https://github.com/zainshah3464/Foodie-Spot/blob/main/LICENSEhttps://github.com/zainshah3464/Foodie-Spot/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-13. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 83 / 100
Technologies
Next.js · React
Website type
Corporate Website
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-09-07
Screenshot last checked
2026-10-13

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: [email protected] · 2026-10-13

Inspect the recorded source material

SHA-256: bef955cda65a95ca08c6327c3aa6f245cb2368ccfb9a7d9e90b87e707cfdea30

2026-10-13T08:11:53.975Z

Source file / repository
<!-- PROJECT LOGO -->
<br />
<div align="center">
  <a href="https://foodiespot.pk">
    <img src="https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=200&h=80&auto=format&fit=crop" alt="Foodie Spot Logo" width="200" height="80">
  </a>

  <h1 align="center">FOODIE SPOT — Delicious Food, Delivered Hot & Fresh</h1>

  <p align="center">
    Modern single-page restaurant website with direct WhatsApp ordering, scroll-driven animations, and a clean dark theme.
    <br />
    <a href="https://foodiespot-demo.vercel.app"><strong>View Live Demo »</strong></a>
    <br />
    <br />
    <a href="https://github.com/zainshah3464/Foodie-Spot">GitHub Repository</a>
    ·
    <a href="https://github.com/zainshah3464/Foodie-Spot/issues">Report Bug</a>
    ·
    <a href="https://github.com/zainshah3464/Foodie-Spot/issues">Request Feature</a>
  </p>
</div>

<!-- BADGES -->
<p align="center">
  <a href="https://github.com/zainshah3464/Foodie-Spot/actions">
    <img src="https://img.shields.io/github/actions/workflow/status/zainshah3464/Foodie-Spot/deploy.yml?style=flat-square" alt="Build Status">
  </a>
  <a href="https://foodiespot-demo.vercel.app">
    <img src="https://img.shields.io/github/deployments/zainshah3464/Foodie-Spot/production?style=flat-square&label=vercel" alt="Deployment">
  </a>
  <a href="LICENSE">
    <img src="https://img.shields.io/github/license/zainshah3464/Foodie-Spot?style=flat-square" alt="License">
  </a>
  <img src="https://img.shields.io/badge/Next.js-16-black?style=for-the-badge&logo=next.js&logoColor=white" alt="Next.js">
  <img src="https://img.shields.io/badge/TypeScript-5-blue?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript">
  <img src="https://img.shields.io/badge/Tailwind%20CSS-4-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white" alt="Tailwind">
  <img src="https://img.shields.io/badge/Framer%20Motion-11-purple?style=for-the-badge&logo=framer&logoColor=white" alt="Framer Motion">
  <img src="https://img.shields.io/badge/Google%20Fonts-Poppins-orange?style=for-the-badge" alt="Fonts">
</p>

<!-- TABLE OF CONTENTS -->
<details>
  <summary>Table of Contents</summary>
  <ol>
    <li><a href="#about-the-project">About The Project</a></li>
    <li><a href="#features">Features</a></li>
    <li><a href="#tech-stack">Tech Stack</a></li>
    <li><a href="#getting-started">Getting Started</a></li>
    <li><a href="#environment-variables">Environment Variables</a></li>
    <li><a href="#project-structure">Project Structure</a></li>
    <li><a href="#key-components">Key Components</a></li>
    <li><a href="#how-it-works">How It Works</a></li>
    <li><a href="#customization">Customization</a></li>
    <li><a href="#performance-optimizations">Performance Optimizations</a></li>
    <li><a href="#mobile-responsiveness">Mobile Responsiveness</a></li>
    <li><a href="#accessibility">Accessibility</a></li>
    <li><a href="#troubleshooting">Troubleshooting</a></li>
    <li><a href="#roadmap">Roadmap</a></li>
    <li><a href="#changelog">Changelog</a></li>
    <li><a href="#testing">Testing</a></li>
    <li><a href="#code-style">Code Style</a></li>
    <li><a href="#deployment">Deployment</a></li>
    <li><a href="#contributing">Contributing</a></li>
    <li><a href="#license">License</a></li>
    <li><a href="#developer">Developer</a></li>
    <li><a href="#support">Support</a></li>
    <li><a href="#faq">FAQ</a></li>
    <li><a href="#acknowledgments">Acknowledgments</a></li>
  </ol>
</details>

---

## About The Project

**Foodie Spot** is a modern, fully responsive single-page restaurant website built with **Next.js** and **Framer Motion**. It features an elegant dark theme with subtle orange accents, smooth scroll-driven animations, and a direct WhatsApp ordering system—no commission, no app download. The project serves as a demo to help restaurants and small food businesses establish a professional online presence quickly.

> **Note:** All images are from Unsplash and can be replaced with your own. The site is a front‑end demo with no backend.

<p align="center">
  <img src="https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=1200&auto=format&fit=crop" alt="Foodie Spot Demo" width="80%">
</p>

---

## Features

- 🍔 **Fully Responsive** – Optimized for mobile, tablet, and desktop.
- 🎬 **Scroll‑Driven Animations** – Parallax effects, progressive reveals, and smooth transitions powered by Framer Motion.
- 📱 **WhatsApp Direct Ordering** – Customers can place orders via WhatsApp with pre‑filled messages.
- 🍕 **Dynamic Menu with Category Filters** – Filter dishes by category (Burger, Pizza, Biryani, etc.) with smooth layout animations.
- 🖼️ **Interactive Gallery with Lightbox** – Hover‑to‑zoom and click‑to‑preview food images.
- ⭐ **Testimonials Section** – Customer reviews with star ratings and avatars.
- 📍 **Contact & Map** – Embedded Google Map, contact details, and WhatsApp CTA.
- 🔍 **Professional Metadata** – Open Graph, Twitter Cards, and JSON‑LD structured data for SEO and social sharing.
- 🎨 **Custom SVG Favicon** – Inline SVG favicon with a burger icon (path‑based), no external files.
- 🌙 **Clean, Minimal Design** – Dark background (`#0d0d0d`) with subtle neutral borders and orange accent gradients.

---

## Tech Stack

| Category          | Technology                                                                                     |
| ----------------- | ---------------------------------------------------------------------------------------------- |
| **Framework**     | [Next.js 16](https://nextjs.org/) (App Router)                                                  |
| **Language**      | [TypeScript 5](https://www.typescriptlang.org/)                                                 |
| **Styling**       | [Tailwind CSS 4](https://tailwindcss.com/)                                                      |
| **Animations**    | [Framer Motion 11](https://www.framer.com/motion/)                                               |
| **Fonts**         | [Poppins](https://fonts.google.com/specimen/Poppins)                                             |
| **Icons**         | Custom inline SVG + [Lucide Icons](https://lucide.dev/) (optional)                              |
| **Images**        | [Unsplash](https://unsplash.com/) (replaceable with own)                                        |

---

## Getting Started

### Prerequisites

- Node.js (v18.18 or higher)
- npm / yarn / pnpm / bun

### Installation

1. Clone the repository
   ```bash
   git clone https://github.com/zainshah3464/Foodie-Spot.git
   cd Foodie-Spot
   ```

2. Install dependencies
   ```bash
   npm install
   # or
   yarn install
   # or
   pnpm install
   ```

3. Run the development server
   ```bash
   npm run dev
   ```

4. Open [http://localhost:3000](http://localhost:3000) to view it in your browser.

---

## Environment Variables

| Variable | Description | Required | Default |
|----------|-------------|----------|---------|
| `NEXT_PUBLIC_SITE_URL` | Base URL for SEO and metadata | No | `http://localhost:3000` |
| *(None required for this demo)* | | | |

No mandatory environment variables are needed to run the project. If you wish to override the default site URL, create a `.env.local` file and set `NEXT_PUBLIC_SITE_URL`.

---

## Project Structure

```
src/
├── app/
│   ├── layout.tsx          # Root layout with metadata & fonts
│   ├── page.tsx            # Main page assembling all sections
│   └── globals.css         # Global styles & animations
├── components/
│   ├── Hero.tsx            # Hero section with parallax
│   ├── About.tsx           # About/Story section with stats
│   ├── Menu.tsx            # Menu with category filters
│   ├── Gallery.tsx         # Photo gallery with lightbox
│   ├── Reviews.tsx         # Testimonials
│   ├── Contact.tsx         # Contact details & map
│   └── Footer.tsx          # Footer with social links
├── public/                 # Static assets (if any)
├── package.json
└── README.md
```

---

## Key Components

### Hero Section
- Parallax effect on scroll.
- Animated headline and CTA buttons.
- Direct WhatsApp order button.

### Menu Section
- Category filter buttons (Burger, Pizza, Biryani, etc.).
- Framer Motion layout animations for smooth filtering.
- Each dish card with name, description, price, and "Order Now" button.

### Gallery Section
- Grid of food images with hover zoom.
- Lightbox modal for full‑size preview.

### Reviews Section
- Testimonial cards with avatar, name, rating stars, and feedback.
- Subtle entry animations.

### Contact Section
- Embedded Google Map.
- Contact details (address, phone, hours).
- WhatsApp CTA button.

### Footer
- Social media icons, quick links, and copyright.

---

## How It Works

### Ordering Flow
1. Customer browses menu.
2. Clicks "Order Now" on any dish.
3. WhatsApp opens with a pre‑filled message containing the item name and quantity request.
4. Customer sends message; restaurant receives order directly.

### Animation Pipeline
- **Framer Motion** handles all scroll‑triggered animations (`whileInView`) and layout transitions.
- No external smooth scroll library – native CSS `scroll-behavior: smooth` for anchor links.
- GSAP not used; Framer Motion is sufficient for this project.

---

## Customization

### Replace Content
- **Menu items**: Edit the `menuItems` array in `components/Menu.tsx`.
- **Testimonials**: Modify the `reviews` array in `components/Reviews.tsx`.
- **Contact details**: Update the `contactInfo` array and WhatsApp number in `components/Contact.tsx`.
- **Gallery images**: Change the `galleryImages` array in `components/Gallery.tsx`.
- **About stats**: Adjust the `stats` array in `components/About.tsx`.

### Change Colors
The theme uses a dark background (`#0d0d0d`) and orange accent (`#f97316`). You can change these in `globals.css` and by searching for the hex codes or Tailwind classes (`bg-[#0d0d0d]`, `from-orange-400 to-red-500`, etc.).

### Update Metadata & SEO
- Edit `app/layout.tsx`:
  - Replace `baseUrl` with your domain.
  - Update the Open Graph image URL to your own hosted image.
  - Adjust site title, description, and keywords.

### WhatsApp Number
Replace `923710371689` in all `href` attributes (Hero, Menu, Contact, etc.) with your own WhatsApp number (include country code, no plus sign).

---

## Performance Optimizations

- **Image Optimization** – Uses `next/image` with lazy loading and appropriate sizes.
- **Code Splitting** – Automatic by Next.js; no heavy libraries.
- **Font Optimization** – `next/font` with subsetting.
- **Reduced Motion** – Respects `prefers-reduced-motion` via CSS and Framer Motion `useReducedMotion`.
- **Minimal Dependencies** – Only essential packages.

---

## Mobile Responsiveness

- Fluid typography using `clamp()` and responsive Tailwind classes.
- Touch‑friendly buttons and interactive elements.
- Menu filters wrap horizontally on small screens.
- Gallery grid collapses to single column on mobile.
- WhatsApp buttons work seamlessly on mobile (opens app).

---

## Accessibility

- Semantic HTML (`<header>`, `<nav>`, `<main>`, `<section>`, `<footer>`).
- ARIA labels on icon buttons and interactive elements.
- Keyboard navigable (all buttons are real `<button>` elements).
- Sufficient color contrast (dark background with light text).
- `prefers-reduced-motion` support.

---

## Troubleshooting

### Images not loading?
- Ensure you have internet connection; images are from Unsplash.
- Replace with local images in `/public` if needed.

### WhatsApp link not opening?
- Check that the number is in international format without `+` (e.g., `923710371689`).
- Test on a device with WhatsApp installed.

### Build errors?
- Delete `node_modules` and `package-lock.json`, then `npm install`.
- Ensure you are using Node v18.18+.

---

## Roadmap

- [x] Hero section with parallax
- [x] Menu with category filters
- [x] Gallery lightbox
- [x] Testimonials
- [x] WhatsApp ordering
- [ ] Add online payment integration
- [ ] Multi‑language support
- [ ] CMS integration for menu items
- [ ] Unit and E2E testing

---

## Changelog

### v1.0.0 (Feb 2026)
- Initial release
- Fully responsive design
- WhatsApp ordering
- Framer Motion animations
- Professional metadata and SEO

---

## Testing

```bash
npm run lint
npm run type-check
# No unit tests yet — planned for v2.0
```

---

## Code Style

- **ESLint** — `next lint` (Next.js default config)
- **Prettier** — `.prettierrc` with `singleQuote: true`, `semi: false`
- **Commit Convention** — Conventional Commits (`feat:`, `fix:`, `docs:`)

---

## Deployment

### Deploy on Vercel

1. Push your repository to GitHub.
2. Import the project into [Vercel](https://vercel.com).
3. Set framework preset to **Next.js**.
4. Deploy – no additional configuration needed.

### Deploy on Netlify

1. Build command: `npm run build`
2. Publish directory: `.next`
3. Add environment variables if needed (none required for this demo).

---

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

---

## License

Distributed under the MIT License. See [LICENSE](LICENSE) for more information.

---

## Developer

**Zain Shah**  
*Full‑Stack Developer & Software Engineer*

A passionate developer focused on creating modern, high‑performance web experiences. This project showcases advanced front‑end techniques with animations and responsive design.

- **Portfolio:** [zain-main-web.vercel.app](https://zain-main-web.vercel.app/)
- **GitHub:** [@zainshah3464](https://github.com/zainshah3464)
- **Instagram:** [@zainshah3464](https://www.instagram.com/zainshah3464)
- **Email:** [[email protected]](mailto:[email protected])

---

## Support

Issues ke liye [GitHub Issues](https://github.com/zainshah3464/Foodie-Spot/issues) use karein.  
Direct contact: [Email](mailto:[email protected])

---

## FAQ

### Q: Can I use this project for my own restaurant?
**A:** Absolutely! Just replace the placeholder content with your own (menu items, images, contact details, WhatsApp number).

### Q: Where do the food images come from?
**A:** They are from Unsplash. For production, replace them with your own high‑quality photos.

### Q: Is there a backend?
**A:** No, this is a front‑end only demo. Orders go directly to WhatsApp, no database or server required.

### Q: Does it support online payments?
**A:** Not yet, but it's on the roadmap. Currently only WhatsApp ordering is supported.

---

## Acknowledgments

- [Next.js Documentation](https://nextjs.org/docs)
- [Framer Motion](https://www.framer.com/motion/)
- [Tailwind CSS](https://tailwindcss.com/)
- [Unsplash](https://unsplash.com/) for placeholder images
- [Google Fonts](https://fonts.google.com/) for typography
- [Lucide Icons](https://lucide.dev/) for some SVG icons
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.