updated next config and feature pages

This commit is contained in:
srikanth_M 2026-04-04 18:54:47 +05:30
parent 966a1e0e18
commit 37c251d7ba
81 changed files with 1168 additions and 70 deletions

View File

@ -1,11 +1,11 @@
import type { NextConfig } from "next";
const nextConfig: NextConfig = {
output: "export", // needed for static export
output: "export", // for static export
trailingSlash: true,
images: {
unoptimized: true, // ✅ keep this
unoptimized: true, // required for static export
remotePatterns: [
{
protocol: "https",
@ -37,8 +37,6 @@ const nextConfig: NextConfig = {
},
],
},
};
export default nextConfig;

View File

@ -2,3 +2,4 @@ User-agent: *
Allow: /
Sitemap: https://dine360.vercel.app/sitemap.xml
Host: https://dine360.vercel.app

View File

@ -1,11 +1,369 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<!-- Main Pages -->
<url>
<loc>https://dine360.vercel.app/</loc>
<lastmod>2026-04-01</lastmod>
<lastmod>2026-04-04</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://dine360.vercel.app/about</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://dine360.vercel.app/blog</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://dine360.vercel.app/contact</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://dine360.vercel.app/faq</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://dine360.vercel.app/pricing</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://dine360.vercel.app/privacy</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://dine360.vercel.app/terms</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<!-- Features Pages -->
<url>
<loc>https://dine360.vercel.app/features/business-dashboard</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/inventory-management</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/invoicing</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/kitchen-management</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/loyalty-management</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/multi-menu-management</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/order-management</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/pos</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/promotion-management</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/promotions</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/qr-code-menu</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/restaurant-website</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/table-reservation</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/team-communication</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://dine360.vercel.app/features/uber-integration</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<!-- Restaurant Types Pages -->
<url>
<loc>https://dine360.vercel.app/restaurant-types</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/bakery</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/bistro</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/buffet</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/cafe-bistro</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/cafeteria</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/casual-dining</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/coffee-house</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/concession</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/contemporary-casual</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/delivery-only</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/destination</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/digital-only</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/diner</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/family-style</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/fast-casual</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/fast-food</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/fine-dine</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/fine-dining</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/food-truck</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/full-service</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/ghost-kitchen</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/ghost-restaurant</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/mongolian-bbq</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/pop-up</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/pub</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/teppanyaki</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://dine360.vercel.app/restaurant-types/theme</loc>
<lastmod>2026-04-04</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
</urlset>

14
src/app/about/layout.tsx Normal file
View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'About Dine360 | Restaurant Management Platform',
description: 'Learn about Dine360 and how we help restaurants manage operations, improve efficiency, and grow with smart technology.',
}
export default function AboutLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -8,6 +8,10 @@ import Footer from '@/components/Footer';
import MarketValuationSection from '@/components/MarketValuationSection';
import { CheckCircle2, TrendingUp, Users, Trophy, ArrowRight } from 'lucide-react';
import aboutUsImg from '@/assets/about_us/about-us.webp';
import howItStartedImg from '@/assets/about_us/how-it-started.webp';
import ourPhilosophyImg from '@/assets/about_us/our-philosophy.webp';
const AboutPage = () => {
return (
<div className="min-h-screen bg-white text-zinc-900 font-sans selection:bg-rose-100 selection:text-rose-900">
@ -63,7 +67,7 @@ const AboutPage = () => {
className="relative h-75 sm:h-100 w-full rounded-[2.5rem] overflow-hidden"
>
<Image
src="https://images.unsplash.com/photo-1497215728101-856f4ea42174?auto=format&fit=crop&q=80&w=1200"
src={aboutUsImg}
alt="Modern Office"
fill
className="object-cover"
@ -79,7 +83,7 @@ const AboutPage = () => {
className="relative h-50 w-full rounded-[2.5rem] overflow-hidden"
>
<Image
src="https://images.unsplash.com/photo-1600880292203-757bb62b4baf?q=80&w=2070&auto=format&fit=crop"
src={ourPhilosophyImg}
alt="Team Collaboration"
fill
className="object-cover"
@ -206,7 +210,7 @@ const AboutPage = () => {
</div>
<Image
src="https://images.unsplash.com/photo-1522071820081-009f0129c71c?q=80&w=2070&auto=format&fit=crop"
src={howItStartedImg}
alt="Founders working"
fill
className="object-cover relative z-10"

14
src/app/blog/layout.tsx Normal file
View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Management Tips & Insights | Dine360',
description: 'Read Dine360 blog for restaurant tips, POS insights, marketing strategies, and industry trends to grow your business.',
}
export default function BlogLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Contact Dine360 | Restaurant Software Support',
description: 'Get in touch with Dine360 for demos, support, or pricing. We\'re here to help you grow your restaurant business.',
}
export default function ContactLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -4,6 +4,7 @@ import { Mail, Phone, MapPin, Facebook, Instagram, Linkedin, Youtube } from 'luc
import Navbar from '@/components/Navbar'
import Footer from '@/components/Footer'
import Image from 'next/image'
import contactImg from '@/assets/contact/contact.webp'
const ContactPage = () => {
return (
@ -117,7 +118,7 @@ const ContactPage = () => {
<div className="space-y-12">
<div className="relative rounded-[32px] overflow-hidden bg-zinc-100 aspect-[4/3] group">
<Image
src="https://images.pexels.com/photos/7703651/pexels-photo-7703651.jpeg"
src={contactImg}
alt="Quick Contact"
fill
className="object-cover transition-transform duration-700 group-hover:scale-105"

14
src/app/faq/layout.tsx Normal file
View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Software FAQs | Dine360',
description: 'Find answers about Dine360 features, pricing, setup, and support. Everything you need to know about our restaurant system.',
}
export default function FAQLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Analytics & Business Dashboard | Dine360',
description: 'Track sales, orders, and performance with Dine360 dashboard. Get real-time insights, reports, and analytics to grow your restaurant business.',
}
export default function BusinessDashboardLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Inventory Management Software | Dine360',
description: 'Track ingredient stock, monitor usage, and receive low-stock alerts with Dine360 inventory management to reduce waste and control costs.',
}
export default function InventoryManagementLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Invoicing & Billing Software | Dine360',
description: 'Generate invoices automatically, handle tax calculations, and track payments with Dine360 invoicing built for restaurants.',
}
export default function InvoicingLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Kitchen Display System (KDS) for Restaurants | Dine360',
description: 'Streamline kitchen operations with Dine360 KDS. Sync orders from POS to kitchen screens, reduce mistakes, speed up preparation, and improve service.',
}
export default function KitchenManagementLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Management Features | Dine360',
description: 'Explore Dine360\'s powerful POS and restaurant management features including order management, kitchen coordination, loyalty programs, inventory tracking, and more to transform your business.',
}
export default function FeaturesLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant CRM Software for Guest Management | Dine360',
description: 'Track customer profiles, order history, and dining preferences with Dine360 CRM to improve guest experience and increase repeat visits.',
}
export default function LoyaltyManagementLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Multi-Branch Restaurant Management Software | Dine360',
description: 'Manage multiple restaurant locations from one dashboard. Track performance, control operations, and scale your business with Dine360.',
}
export default function MultiMenuManagementLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Sales Analytics & Reports | Dine360',
description: 'Analyze restaurant performance with real-time sales tracking, revenue reports, menu insights, and peak hour analytics using Dine360.',
}
export default function OrderManagementLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant POS System for Billing & Orders | Dine360',
description: 'Run your restaurant with Dine360 POS. Fast billing, multi-payment support, and real-time order tracking for dine-in, takeaway, and delivery.',
}
export default function POSLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Promotions & Offers Management | Dine360',
description: 'Create, manage, and track restaurant promotions with Dine360. Boost sales, attract customers, and run targeted offers with real-time insights.',
}
export default function PromotionManagementLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Purchase & Vendor Management | Dine360',
description: 'Manage suppliers, track purchase orders, and update inventory automatically with Dine360 purchase management for restaurants.',
}
export default function PromotionsLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'QR Code Menu for Restaurants | Dine360',
description: 'Create digital menus with QR codes for contactless dining. Update menu items instantly and improve customer experience with Dine360.',
}
export default function QRCodeMenuLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Website & Online Ordering System | Dine360',
description: 'Build your restaurant website and accept direct online orders with Dine360. Increase revenue, reduce third-party fees, and manage orders easily.',
}
export default function RestaurantWebsiteLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Table Reservation System | Dine360',
description: 'Manage reservations, walk-ins, and table availability with Dine360. Visual floor layout, real-time table status, and faster seating for guests.',
}
export default function TableReservationLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Team Communication System | Dine360',
description: 'Improve staff coordination with Dine360 team communication. Share updates, sync kitchen and service teams, and reduce operational errors.',
}
export default function TeamCommunicationLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Uber Order Integration for Restaurants | Dine360',
description: 'Sync Uber delivery orders directly with POS and kitchen systems. Manage online orders from one dashboard using Dine360.',
}
export default function UberIntegrationLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -1,3 +1,9 @@
export const metadata = {
title: "Dine 360 | Best Restaurant POS in Hamilton, GTA & Kitchener | Save 50%",
description:
"Dine 360 is the most affordable POS for 1-3 location restaurants in Southern Ontario. No hardware fees. No hidden costs.",
};
import Navbar from "@/components/Navbar";
import HeroSection from "@/components/HeroSection";
import VideoSection from "@/components/VideoSection";

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant POS Pricing Plans & Packages | Dine360',
description: 'Explore Dine360 pricing plans for restaurants. Flexible, scalable solutions for POS, inventory, and complete restaurant management.',
}
export default function PricingLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Bakery POS System for Orders & Inventory | Dine360',
description: 'Manage bakery operations with Dine360. Handle custom orders, billing, and inventory in real time.',
}
export default function BakeryLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Bistro Restaurant POS & Table Management | Dine360',
description: 'Manage your bistro efficiently with Dine360. Handle orders, tables, and billing while maintaining a cozy dining experience.',
}
export default function BistroLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Buffet Restaurant Management Software | Dine360',
description: 'Manage buffet operations with Dine360. Improve guest flow, billing, and table turnover for high-volume dining.',
}
export default function BuffetLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Cafe & Coffee Shop POS Software | Dine360',
description: 'Streamline café operations with Dine360 POS. Manage orders, billing, tables, and takeaway efficiently during busy hours.',
}
export default function CafeLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Cafeteria POS System for High Volume Orders | Dine360',
description: 'Manage cafeteria operations with Dine360. Fast billing, queue management, and efficient order handling for large crowds.',
}
export default function CafeteriaLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Casual Dining Restaurant POS Software | Dine360',
description: 'Streamline casual dining operations with Dine360. Manage tables, orders, and billing efficiently for better service and growth.',
}
export default function CasualDiningLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Coffee House POS & Order Management | Dine360',
description: 'Improve coffee shop operations with Dine360. Handle orders, billing, and customer flow smoothly during peak hours.',
}
export default function CoffeeHouseLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Concession Stand POS for Events & Stadiums | Dine360',
description: 'Run concession stands smoothly with Dine360. Fast billing, queue management, and high-volume order handling.',
}
export default function ConcessionLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Contemporary Casual Restaurant Software | Dine360',
description: 'Balance speed and experience with Dine360. Manage modern dining operations with smart tools and real-time insights.',
}
export default function ContemporaryCasualLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Delivery-Only Restaurant POS Software | Dine360',
description: 'Manage delivery-first restaurants with Dine360. Track orders, optimize delivery flow, and scale easily.',
}
export default function DeliveryOnlyLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Destination Restaurant Management Software | Dine360',
description: 'Deliver premium dining experiences with Dine360. Manage reservations, service flow, and operations effortlessly.',
}
export default function DestinationLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Digital-Only Restaurant & Cloud POS | Dine360',
description: 'Manage online-only restaurants with Dine360. Handle orders, delivery, and multiple brands from one dashboard.',
}
export default function DigitalOnlyLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Diner POS System for All-Day Service | Dine360',
description: 'Manage diner operations with Dine360. Handle breakfast, lunch, and dinner orders efficiently with real-time tracking.',
}
export default function DinerLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Family Style Restaurant POS System | Dine360',
description: 'Manage large group dining and table service with Dine360. Simplify billing, seating, and order flow for family restaurants.',
}
export default function FamilyStyleLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Fast Casual Restaurant POS System | Dine360',
description: 'Speed up service and manage high-volume orders with Dine360 POS for fast casual restaurants. Improve efficiency and revenue.',
}
export default function FastCasualLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Fast Food Restaurant POS & Billing System | Dine360',
description: 'Run fast food operations smoothly with Dine360 POS. Handle high-volume orders, reduce queues, and improve service speed.',
}
export default function FastFoodLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Fine Dining POS System for Upscale Restaurants | Dine360',
description: 'Elevate your fine dining experience with Dine360. Manage course timing, wine service, and guest preferences effortlessly.',
}
export default function FineDineLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Fine Dining Restaurant Management Software | Dine360',
description: 'Manage fine dining operations with precision using Dine360. Improve reservations, service flow, and guest experience seamlessly.',
}
export default function FineDiningLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Food Truck POS System & Mobile Restaurant Software | Dine360',
description: 'Manage your food truck or street food business with Dine360. Fast billing, order tracking, and mobile-friendly POS system.',
}
export default function FoodTruckLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Full Service Restaurant POS & Management | Dine360',
description: 'Manage full-service restaurant operations with Dine360. Handle reservations, tableside service, and detailed billing seamlessly.',
}
export default function FullServiceLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Ghost Kitchen & Cloud Kitchen Software | Dine360',
description: 'Run ghost kitchens efficiently with Dine360. Manage multiple brands, orders, and delivery platforms from one system.',
}
export default function GhostKitchenLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Ghost Kitchen & Cloud Restaurant Software | Dine360',
description: 'Manage delivery-only restaurants and cloud kitchens with Dine360. Handle multiple brands, orders, and delivery platforms easily.',
}
export default function GhostRestaurantLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Restaurant Types We Serve | POS Solutions | Dine360',
description: 'Discover how Dine360 supports all restaurant types including cafes, fast food, fine dining, and cloud kitchens with tailored solutions.',
}
export default function RestaurantTypesLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Mongolian BBQ Restaurant POS System | Dine360',
description: 'Manage high-volume custom dining with Dine360. Handle guest flow, billing, and operations efficiently.',
}
export default function MongolianBBQLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Pop-Up Restaurant POS & Event System | Dine360',
description: 'Run pop-up restaurants and events with Dine360. Quick setup, fast billing, and flexible operations anywhere.',
}
export default function PopUpLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Pub & Bar POS System for Order Management | Dine360',
description: 'Run your pub smoothly with Dine360 POS. Manage drink orders, tables, and billing during peak hours efficiently.',
}
export default function PubLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Teppanyaki & Hibachi Restaurant POS | Dine360',
description: 'Manage hibachi-style dining with Dine360. Handle group seating, timing, and billing efficiently.',
}
export default function TeppanyakiLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

View File

@ -0,0 +1,14 @@
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'Theme Restaurant Management Software | Dine360',
description: 'Deliver immersive dining experiences with Dine360. Manage service flow and operations without disruption.',
}
export default function ThemeLayout({
children,
}: {
children: React.ReactNode
}) {
return <>{children}</>
}

64
src/app/sitemap.ts Normal file
View File

@ -0,0 +1,64 @@
import { MetadataRoute } from 'next'
export default function sitemap(): MetadataRoute.Sitemap {
const baseUrl = "https://dine360.vercel.app"
return [
// MAIN PAGES
{
url: `${baseUrl}/`,
changeFrequency: "weekly",
priority: 1,
},
{
url: `${baseUrl}/features`,
changeFrequency: "weekly",
priority: 0.9,
},
{
url: `${baseUrl}/restaurant-types`,
changeFrequency: "weekly",
priority: 0.9,
},
{
url: `${baseUrl}/features/kds`,
lastModified: new Date(), changeFrequency: "monthly",
priority: 0.8,
},
// FEATURES SUB PAGES
{ url: `${baseUrl}/features/kds`, priority: 0.8 },
{ url: `${baseUrl}/features/table-reservation`, priority: 0.8 },
{ url: `${baseUrl}/features/crm`, priority: 0.8 },
{ url: `${baseUrl}/features/sales`, priority: 0.8 },
{ url: `${baseUrl}/features/inventory`, priority: 0.8 },
{ url: `${baseUrl}/features/purchase`, priority: 0.8 },
{ url: `${baseUrl}/features/uber-integration`, priority: 0.8 },
{ url: `${baseUrl}/features/invoicing`, priority: 0.8 },
{ url: `${baseUrl}/features/promotions`, priority: 0.8 },
{ url: `${baseUrl}/features/online-ordering`, priority: 0.8 },
{ url: `${baseUrl}/features/dashboard`, priority: 0.8 },
{ url: `${baseUrl}/features/multi-branch`, priority: 0.8 },
{ url: `${baseUrl}/features/team-communication`, priority: 0.8 },
{ url: `${baseUrl}/features/pos`, priority: 0.8 },
// RESTAURANT TYPES (from your data :contentReference[oaicite:0]{index=0})
{ url: `${baseUrl}/restaurant-types/fine-dining`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/casual-dining`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/fast-casual`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/cloud-kitchen`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/family-style`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/fast-food`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/food-truck`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/cafe`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/buffet`, priority: 0.7 },
{ url: `${baseUrl}/restaurant-types/pub`, priority: 0.7 },
// OTHER PAGES
{ url: `${baseUrl}/pricing`, priority: 0.8 },
{ url: `${baseUrl}/contact`, priority: 0.8 },
{ url: `${baseUrl}/about`, priority: 0.7 },
{ url: `${baseUrl}/blog`, priority: 0.7 },
{ url: `${baseUrl}/faq`, priority: 0.7 },
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

View File

@ -2,22 +2,13 @@
import React, { useState } from 'react';
import { motion } from 'framer-motion';
import { Utensils, Play, ArrowRight } from 'lucide-react';
import Image from 'next/image';
const ContactSection = () => {
return (
<section className="relative w-full min-h-[600px] lg:h-[800px] bg-black overflow-hidden">
{/* 1. Background Image (Bartender) */}
<div className="absolute inset-0 z-0">
<Image
src="https://images.unsplash.com/photo-1514362545857-3bc16c4c7d1b?q=80&w=2670&auto=format&fit=crop"
alt="Bartender mixing drink"
fill
className="object-cover object-center opacity-90"
priority
/>
</div>
{/* Background gradient instead of external image */}
<div className="absolute inset-0 z-0 bg-gradient-to-r from-black via-red-900/20 to-black"></div>
{/* 2. Red Curved Background */}
<div className="absolute top-0 left-0 h-full w-full lg:w-[65%] z-10 pointer-events-none">
@ -29,32 +20,7 @@ const ContactSection = () => {
<div className="absolute inset-0 bg-[#E60023] lg:hidden block" style={{ clipPath: "none" }}></div>
</div>
{/* 3. Floating Assets (Leaves/Tomatoes) */}
<div className="absolute inset-0 z-20 pointer-events-none overflow-hidden">
<motion.div
animate={{ y: [0, -20, 0], rotate: [0, 10, 0] }}
transition={{ duration: 5, repeat: Infinity }}
className="absolute top-20 left-10 w-24 h-24"
>
<Image src="https://png.pngtree.com/png-vector/20230303/ourmid/pngtree-fresh-organic-basil-leaf-isolated-on-transparent-background-png-image_6630043.png" width={80} height={80} alt="Leaf" className="opacity-80" />
</motion.div>
<motion.div
animate={{ y: [0, 20, 0], rotate: [0, -10, 0] }}
transition={{ duration: 7, repeat: Infinity }}
className="absolute bottom-40 left-10 w-20 h-20"
>
<Image src="https://png.pngtree.com/png-vector/20230303/ourmid/pngtree-fresh-organic-basil-leaf-isolated-on-transparent-background-png-image_6630043.png" width={60} height={60} alt="Leaf" className="opacity-80 scale-x-[-1]" />
</motion.div>
<motion.div
animate={{ scale: [1, 1.1, 1] }}
transition={{ duration: 4, repeat: Infinity }}
className="absolute top-[40%] left-[5%] w-16 h-16"
>
<Image src="https://purepng.com/public/uploads/large/purepng.com-fresh-cherry-tomatovegetables-tomatofresh-red-cherry-tomato-941524712071z6n59.png" width={50} height={50} alt="Tomato" />
</motion.div>
</div>
{/* 3. Decorative elements removed - keeping layout clean */}
{/* 4. Content */}
<div className="relative z-30 h-full w-full container mx-auto px-6 py-20 flex flex-col lg:flex-row items-center">

View File

@ -3,6 +3,15 @@
import Image from 'next/image';
import { motion } from 'framer-motion';
import Link from 'next/link';
import posImage from '@/assets/homepage/pos-system.webp';
import orderImage from '@/assets/homepage/order-management.webp';
import reservationImage from '@/assets/homepage/table-reservation.webp';
import qrImage from '@/assets/homepage/qr-code-menu.webp';
import inventoryImage from '@/assets/homepage/inventory-management.webp';
import multiBranchImage from '@/assets/homepage/multi-branch-control.webp';
import promotionsImage from '@/assets/homepage/promotions.webp';
import websiteImage from '@/assets/homepage/website-ordering.webp';
import dashboardImage from '@/assets/homepage/business-dashboard.webp';
const features = [
{
@ -15,7 +24,7 @@ const features = [
"Split bills & multiple payment methods",
"Real-time sales reports"
],
image: "https://images.unsplash.com/photo-1556742044-3c52d6e88c62?q=80&w=2070",
image: posImage,
link: "/features/pos-management"
},
{
@ -28,7 +37,7 @@ const features = [
"Reduce human errors",
"Improve preparation time"
],
image: "https://images.unsplash.com/photo-1556742502-ec7c0e9f34b1?q=80&w=2070",
image: orderImage,
link: "/features/order-management"
},
{
@ -41,7 +50,7 @@ const features = [
"Walk-in management",
"Reduce waiting chaos"
],
image: "https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?q=80&w=2070",
image: reservationImage,
link: "/features/table-reservation"
},
{
@ -54,7 +63,7 @@ const features = [
"No reprinting costs",
"Faster ordering experience"
],
image: "https://images.unsplash.com/photo-1513151233558-d860c5398176?q=80&w=2144",
image: qrImage,
link: "/features/qr-code-menu"
},
{
@ -67,7 +76,7 @@ const features = [
"Ingredient-level tracking",
"Reduce wastage & theft"
],
image: "https://images.unsplash.com/photo-1555396273-367ea4eb4db5?q=80&w=2074",
image: inventoryImage,
link: "/features/inventory-management"
},
{
@ -79,7 +88,7 @@ const features = [
"Centralized reporting",
"Branch performance comparison"
],
image: "https://images.unsplash.com/photo-1546241072-48010ad2862c?q=80&w=1974",
image: multiBranchImage,
link: "/features/multi-menu-management"
},
{
@ -92,7 +101,7 @@ const features = [
"Automated SMS/Email marketing",
"Track campaign performance"
],
image: "https://images.unsplash.com/photo-1557804506-669a67965ba0?q=80&w=2074",
image: promotionsImage,
link: "/features/promotions"
},
{
@ -105,7 +114,7 @@ const features = [
"Real-time menu sync",
"Mobile-optimized experience"
],
image: "https://images.unsplash.com/photo-1522199755839-a2bacb67c546?q=80&w=2072",
image: websiteImage,
link: "/features/restaurant-website"
},
{
@ -118,7 +127,7 @@ const features = [
"Staff performance metrics",
"Exportable financial reports"
],
image: "https://images.unsplash.com/photo-1460925895917-afdab827c52f?q=80&w=2026",
image: dashboardImage,
link: "/features/business-dashboard"
}
];

View File

@ -2,25 +2,28 @@
import { useState, useEffect } from 'react';
import { motion, AnimatePresence } from 'framer-motion';
import banner1 from '@/assets/homepage/banner/home-banner-1.webp';
import banner2 from '@/assets/homepage/banner/home-banner-2.webp';
import banner3 from '@/assets/homepage/banner/home-banner-3.webp';
const slides = [
{
tag: "Trusted by Growing Restaurants & Food Brands",
title: "Run Your Entire Restaurant\nFrom One Smart System",
description: "POS, Orders, Reservations, QR Menu, Inventory & Multi-Branch Control — All in One Powerful Platform Built for Modern Restaurants.",
image: "https://images.unsplash.com/photo-1517248135467-4c7edcad34c4?q=80&w=2070"
image: banner1
},
{
tag: "Next-Gen Analytics",
title: "The Local POS\nThat Saves You 50%.",
description: "No per-tablet fees. No per-employee fees. Use the hardware you already own.",
image: "https://images.unsplash.com/photo-1504674900247-0877df9cc836?q=80&w=2070"
image: banner2
},
{
tag: "Seamless Integration",
title: "Operations Mastered\nIn One Dashboard",
description: "Connect your kitchen, floor, and online presence. Real-time syncing ensures your business never misses a beat.",
image: "https://images.unsplash.com/photo-1552566626-52f8b828add9?q=80&w=2070"
image: banner3
}
];
@ -50,7 +53,7 @@ const HeroSection = () => {
<div className="absolute inset-0 bg-black/65 z-10" />
<div
className="absolute inset-0 bg-cover bg-center"
style={{ backgroundImage: `url('${slides[current].image}')` }}
style={{ backgroundImage: `url('${slides[current].image.src}')` }}
/>
</motion.div>
</AnimatePresence>

View File

@ -2,6 +2,7 @@
import React from 'react';
import { motion } from 'framer-motion';
import whyChooseImage from '@/assets/homepage/why-choose-us.webp';
const HighlightsSection = () => {
const highlights = [
@ -48,7 +49,7 @@ const HighlightsSection = () => {
{/* Screen Content */}
<div className="absolute inset-0 bg-gray-900">
<img
src="https://images.unsplash.com/photo-1516321318423-f06f85e504b3?q=80&w=1000"
src={whyChooseImage.src}
alt="App Interface"
className="w-full h-full object-cover opacity-80"
/>

View File

@ -3,7 +3,7 @@
import { useState, useEffect } from 'react';
import Link from 'next/link';
import Image from 'next/image';
import Logo from '@/assets/img/dine360.jpeg';
import Logo from '@/assets/logo/dine360.jpeg';
import { motion, AnimatePresence } from 'framer-motion';
import {
Monitor,

View File

@ -3,6 +3,7 @@ import React, { useState, useEffect } from 'react';
import { motion, AnimatePresence } from 'framer-motion';
import Image from 'next/image';
import { ArrowLeft, ArrowRight, Star, Quote } from 'lucide-react';
import testimonialImage from '@/assets/homepage/testimonial.webp';
const testimonials = [
{
@ -96,7 +97,7 @@ const Testimonials = ({ title, subtitle }: TestimonialsProps) => {
className="relative w-[300px] md:w-[450px] h-[400px] md:h-[600px] z-10"
>
<Image
src="https://images.unsplash.com/photo-1577219491135-ce391730fb2c?q=80&w=1000&auto=format&fit=crop"
src={testimonialImage}
alt="Happy Chef"
fill
className="object-cover rounded-2xl shadow-2xl"