Merge version_1 into main #2
@@ -7,7 +7,7 @@ import FeatureBento from '@/components/sections/feature/FeatureBento';
|
||||
import MetricCardSeven from '@/components/sections/metrics/MetricCardSeven';
|
||||
import FooterBaseReveal from '@/components/sections/footer/FooterBaseReveal';
|
||||
import Link from 'next/link';
|
||||
import { AlertTriangle, Thermometer, Napkin, Trophy, TrendingUp, Zap } from 'lucide-react';
|
||||
import { AlertTriangle, Thermometer, Trophy, TrendingUp, Zap } from 'lucide-react';
|
||||
|
||||
export default function ForOwnersPage() {
|
||||
const navItems = [
|
||||
@@ -20,8 +20,7 @@ export default function ForOwnersPage() {
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Product",
|
||||
items: [
|
||||
title: "Product", items: [
|
||||
{ label: "Easyer for Guests", href: "/" },
|
||||
{ label: "Easyer+ for Owners", href: "/for-owners" },
|
||||
{ label: "Features", href: "#features" },
|
||||
@@ -29,8 +28,7 @@ export default function ForOwnersPage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
title: "Company", items: [
|
||||
{ label: "About Us", href: "#team" },
|
||||
{ label: "How It Works", href: "#metrics" },
|
||||
{ label: "Testimonials", href: "#testimonials" },
|
||||
@@ -38,8 +36,7 @@ export default function ForOwnersPage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
title: "Legal", items: [
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
{ label: "Terms of Service", href: "#" },
|
||||
{ label: "Compliance", href: "#" },
|
||||
@@ -67,9 +64,7 @@ export default function ForOwnersPage() {
|
||||
brandName="Easyer"
|
||||
navItems={navItems}
|
||||
button={{
|
||||
text: "Book a Demo",
|
||||
href: "/contact",
|
||||
}}
|
||||
text: "Book a Demo", href: "/contact"}}
|
||||
className="fixed top-6 left-0 right-0 z-50"
|
||||
buttonClassName="bg-gradient-to-r from-pink-500 to-purple-600 hover:shadow-lg hover:shadow-pink-500/50 transition-all"
|
||||
/>
|
||||
@@ -80,16 +75,12 @@ export default function ForOwnersPage() {
|
||||
<InlineImageSplitTextAbout
|
||||
heading={[
|
||||
{
|
||||
type: "text",
|
||||
content: "Easyer+ Command Center",
|
||||
},
|
||||
type: "text", content: "Easyer+ Command Center"},
|
||||
]}
|
||||
useInvertedBackground={true}
|
||||
buttons={[
|
||||
{
|
||||
text: "See Full Platform",
|
||||
href: "#features",
|
||||
},
|
||||
text: "See Full Platform", href: "#features"},
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
@@ -106,55 +97,33 @@ export default function ForOwnersPage() {
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{
|
||||
title: "Active Requests",
|
||||
description: "Color-coded real-time request categorization: broken glass, cold food, missing items, or routine service.",
|
||||
bentoComponent: "3d-task-list",
|
||||
title: "Real-Time Requests",
|
||||
items: [
|
||||
title: "Active Requests", description: "Color-coded real-time request categorization: broken glass, cold food, missing items, or routine service.", bentoComponent: "3d-task-list", items: [
|
||||
{
|
||||
icon: AlertTriangle,
|
||||
label: "Broken Glass - Table 5",
|
||||
time: "URGENT",
|
||||
},
|
||||
label: "Broken Glass - Table 5", time: "URGENT"},
|
||||
{
|
||||
icon: Thermometer,
|
||||
label: "Cold Food - Table 12",
|
||||
time: "HIGH",
|
||||
},
|
||||
{
|
||||
icon: Napkin,
|
||||
label: "Extra Napkins - Table 3",
|
||||
time: "NORMAL",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Classement - Team Performance",
|
||||
description: "Live leaderboard showing staff tips, efficiency scores, and service quality metrics to motivate teams.",
|
||||
bentoComponent: "icon-info-cards",
|
||||
items: [
|
||||
label: "Cold Food - Table 12", time: "HIGH"},
|
||||
{
|
||||
icon: Trophy,
|
||||
label: "Top Performer",
|
||||
value: "Sophie D.",
|
||||
},
|
||||
{
|
||||
icon: TrendingUp,
|
||||
label: "Tips Generated",
|
||||
value: "+$1,240",
|
||||
},
|
||||
{
|
||||
icon: Zap,
|
||||
label: "Avg Response",
|
||||
value: "55 seconds",
|
||||
},
|
||||
label: "Extra Napkins - Table 3", time: "NORMAL"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Réactivité & Urgences - Analytics",
|
||||
description: "Track incident response times, handling efficiency, and peak hour performance with detailed analytics.",
|
||||
bentoComponent: "line-chart",
|
||||
title: "Classement - Team Performance", description: "Live leaderboard showing staff tips, efficiency scores, and service quality metrics to motivate teams.", bentoComponent: "icon-info-cards", items: [
|
||||
{
|
||||
icon: Trophy,
|
||||
label: "Top Performer", value: "Sophie D."},
|
||||
{
|
||||
icon: TrendingUp,
|
||||
label: "Tips Generated", value: "+$1,240"},
|
||||
{
|
||||
icon: Zap,
|
||||
label: "Avg Response", value: "55 seconds"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Réactivité & Urgences - Analytics", description: "Track incident response times, handling efficiency, and peak hour performance with detailed analytics.", bentoComponent: "line-chart"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -170,44 +139,20 @@ export default function ForOwnersPage() {
|
||||
useInvertedBackground={true}
|
||||
metrics={[
|
||||
{
|
||||
id: "1",
|
||||
value: "55s",
|
||||
title: "Average Incident Response Time",
|
||||
items: [
|
||||
"Real-time request prioritization",
|
||||
"Automated alert routing",
|
||||
"Staff performance tracking",
|
||||
],
|
||||
id: "1", value: "55s", title: "Average Incident Response Time", items: [
|
||||
"Real-time request prioritization", "Automated alert routing", "Staff performance tracking"],
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
value: "+68%",
|
||||
title: "Increase in Staff Tips",
|
||||
items: [
|
||||
"Direct tipping via app",
|
||||
"Performance-based incentives",
|
||||
"Transparent earning visibility",
|
||||
],
|
||||
id: "2", value: "+68%", title: "Increase in Staff Tips", items: [
|
||||
"Direct tipping via app", "Performance-based incentives", "Transparent earning visibility"],
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
value: "-40%",
|
||||
title: "Reduction in Wait Times",
|
||||
items: [
|
||||
"Autonomous table-side ordering",
|
||||
"No server bottlenecks",
|
||||
"Parallel order processing",
|
||||
],
|
||||
id: "3", value: "-40%", title: "Reduction in Wait Times", items: [
|
||||
"Autonomous table-side ordering", "No server bottlenecks", "Parallel order processing"],
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
value: "+45%",
|
||||
title: "Menu Attachment Rate",
|
||||
items: [
|
||||
"AI-driven recommendations",
|
||||
"360° dish photography",
|
||||
"Allergen transparency",
|
||||
],
|
||||
id: "4", value: "+45%", title: "Menu Attachment Rate", items: [
|
||||
"AI-driven recommendations", "360° dish photography", "Allergen transparency"],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
543
src/app/page.tsx
543
src/app/page.tsx
@@ -28,7 +28,6 @@ import {
|
||||
User,
|
||||
AlertTriangle,
|
||||
Thermometer,
|
||||
Napkin,
|
||||
Trophy,
|
||||
TrendingUp,
|
||||
Calendar,
|
||||
@@ -61,9 +60,7 @@ export default function HomePage() {
|
||||
navItems={navItems}
|
||||
brandName="Easyer"
|
||||
button={{
|
||||
text: "Book a Demo",
|
||||
href: "#contact",
|
||||
}}
|
||||
text: "Book a Demo", href: "#contact"}}
|
||||
className="fixed top-6 left-0 right-0 z-50"
|
||||
buttonClassName="bg-gradient-to-r from-pink-500 to-purple-600 hover:shadow-lg hover:shadow-pink-500/50 transition-all"
|
||||
/>
|
||||
@@ -75,15 +72,11 @@ export default function HomePage() {
|
||||
description="Transform restaurant operations and elevate guest experiences with the premium ecosystem bridging seamless table-side service and real-time management."
|
||||
buttons={[
|
||||
{
|
||||
text: "I'm a Restaurant Owner",
|
||||
href: "#owners",
|
||||
},
|
||||
text: "I'm a Restaurant Owner", href: "#owners"},
|
||||
{
|
||||
text: "I'm a Diner",
|
||||
href: "#diners",
|
||||
},
|
||||
text: "I'm a Diner", href: "#diners"},
|
||||
]}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-modern-restaurant-interior-with-ambien-1773275596708-e71c7a1c.png?_wi=1"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-modern-restaurant-interior-with-ambien-1773275596708-e71c7a1c.png"
|
||||
imageAlt="Modern restaurant with neon purple ambient lighting"
|
||||
showDimOverlay={true}
|
||||
buttonAnimation="slide-up"
|
||||
@@ -96,21 +89,13 @@ export default function HomePage() {
|
||||
title="Dual Ecosystem for Modern Restaurants"
|
||||
titleSegments={[
|
||||
{
|
||||
type: "text",
|
||||
content: "Easyer",
|
||||
},
|
||||
type: "text", content: "Easyer"},
|
||||
{
|
||||
type: "text",
|
||||
content: " for Diners • ",
|
||||
},
|
||||
type: "text", content: " for Diners • "},
|
||||
{
|
||||
type: "text",
|
||||
content: "Easyer+",
|
||||
},
|
||||
type: "text", content: "Easyer+"},
|
||||
{
|
||||
type: "text",
|
||||
content: " for Management",
|
||||
},
|
||||
type: "text", content: " for Management"},
|
||||
]}
|
||||
description="One seamless ecosystem designed to elevate guest experiences while giving restaurant teams complete operational control and real-time visibility into every floor request, team performance metric, and operational bottleneck."
|
||||
tag="The Platform"
|
||||
@@ -119,76 +104,52 @@ export default function HomePage() {
|
||||
useInvertedBackground={true}
|
||||
features={[
|
||||
{
|
||||
title: "Table-Side Digital Service",
|
||||
description:
|
||||
"Guests order directly from their table without waiting for servers. Autonomous service meets premium hospitality.",
|
||||
bentoComponent: "phone",
|
||||
statusIcon: Lock,
|
||||
title: "Table-Side Digital Service", description:
|
||||
"Guests order directly from their table without waiting for servers. Autonomous service meets premium hospitality.", bentoComponent: "phone", statusIcon: Lock,
|
||||
alertIcon: Zap,
|
||||
alertTitle: "Order Ready",
|
||||
alertMessage: "Your Mojito Cubain is being prepared",
|
||||
apps: [
|
||||
alertTitle: "Order Ready", alertMessage: "Your Mojito Cubain is being prepared", apps: [
|
||||
{
|
||||
name: "Menu",
|
||||
icon: UtensilsCrossed,
|
||||
name: "Menu", icon: UtensilsCrossed,
|
||||
},
|
||||
{
|
||||
name: "Order",
|
||||
icon: ShoppingCart,
|
||||
name: "Order", icon: ShoppingCart,
|
||||
},
|
||||
{
|
||||
name: "Pay",
|
||||
icon: CreditCard,
|
||||
name: "Pay", icon: CreditCard,
|
||||
},
|
||||
{
|
||||
name: "Tip",
|
||||
icon: HandCoins,
|
||||
name: "Tip", icon: HandCoins,
|
||||
},
|
||||
{
|
||||
name: "Chat",
|
||||
icon: MessageCircle,
|
||||
name: "Chat", icon: MessageCircle,
|
||||
},
|
||||
{
|
||||
name: "History",
|
||||
icon: Clock,
|
||||
name: "History", icon: Clock,
|
||||
},
|
||||
{
|
||||
name: "Settings",
|
||||
icon: Sliders,
|
||||
name: "Settings", icon: Sliders,
|
||||
},
|
||||
{
|
||||
name: "Help",
|
||||
icon: HelpCircle,
|
||||
name: "Help", icon: HelpCircle,
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Real-Time Command Center",
|
||||
description:
|
||||
"Managers see floor requests, staff performance, and operational metrics in real-time with instant response capabilities.",
|
||||
bentoComponent: "animated-bar-chart",
|
||||
},
|
||||
title: "Real-Time Command Center", description:
|
||||
"Managers see floor requests, staff performance, and operational metrics in real-time with instant response capabilities.", bentoComponent: "animated-bar-chart"},
|
||||
{
|
||||
title: "AI-Powered Menu Assistant",
|
||||
description:
|
||||
"Guests get instant answers about allergens, ingredients, and menu recommendations via conversational AI.",
|
||||
bentoComponent: "chat",
|
||||
aiIcon: Sparkles,
|
||||
title: "AI-Powered Menu Assistant", description:
|
||||
"Guests get instant answers about allergens, ingredients, and menu recommendations via conversational AI.", bentoComponent: "chat", aiIcon: Sparkles,
|
||||
userIcon: User,
|
||||
exchanges: [
|
||||
{
|
||||
userMessage: "Is there gluten in the Burger?",
|
||||
aiResponse:
|
||||
"No, our Burger uses a gluten-free bun. We also offer nut-free options upon request.",
|
||||
},
|
||||
userMessage: "Is there gluten in the Burger?", aiResponse:
|
||||
"No, our Burger uses a gluten-free bun. We also offer nut-free options upon request."},
|
||||
{
|
||||
userMessage: "What's the spiciest dish?",
|
||||
aiResponse:
|
||||
"Try our Thai Green Curry—it's our signature hot dish. We can adjust heat levels to your preference.",
|
||||
},
|
||||
userMessage: "What's the spiciest dish?", aiResponse:
|
||||
"Try our Thai Green Curry—it's our signature hot dish. We can adjust heat levels to your preference."},
|
||||
],
|
||||
placeholder: "Ask about ingredients or allergens...",
|
||||
},
|
||||
placeholder: "Ask about ingredients or allergens..."},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -197,16 +158,12 @@ export default function HomePage() {
|
||||
<InlineImageSplitTextAbout
|
||||
heading={[
|
||||
{
|
||||
type: "text",
|
||||
content: "The Easyer Experience",
|
||||
},
|
||||
type: "text", content: "The Easyer Experience"},
|
||||
]}
|
||||
useInvertedBackground={false}
|
||||
buttons={[
|
||||
{
|
||||
text: "Explore Easyer",
|
||||
href: "#easyer-features",
|
||||
},
|
||||
text: "Explore Easyer", href: "#easyer-features"},
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
@@ -223,38 +180,17 @@ export default function HomePage() {
|
||||
gridVariant="three-columns-all-equal-width"
|
||||
products={[
|
||||
{
|
||||
id: "1",
|
||||
brand: "Easyer",
|
||||
name: "Table N° Entry System",
|
||||
price: "Instant Access",
|
||||
rating: 5,
|
||||
reviewCount: "Premium",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-close-up-of-the-easyer-mobile-app-inte-1773275597448-7bde0803.png?_wi=1",
|
||||
imageAlt: "Easyer table entry interface",
|
||||
},
|
||||
id: "1", brand: "Easyer", name: "Table N° Entry System", price: "Instant Access", rating: 5,
|
||||
reviewCount: "Premium", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-close-up-of-the-easyer-mobile-app-inte-1773275597448-7bde0803.png", imageAlt: "Easyer table entry interface"},
|
||||
{
|
||||
id: "2",
|
||||
brand: "Easyer",
|
||||
name: "Interactive 360° Menu",
|
||||
price: "Full Details",
|
||||
rating: 5,
|
||||
reviewCount: "Enhanced",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-stunning-high-resolution-product-photo-1773275597150-2fc83ca6.png?_wi=1",
|
||||
imageAlt: "Mojito Cubain 360 view",
|
||||
},
|
||||
id: "2", brand: "Easyer", name: "Interactive 360° Menu", price: "Full Details", rating: 5,
|
||||
reviewCount: "Enhanced", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-stunning-high-resolution-product-photo-1773275597150-2fc83ca6.png", imageAlt: "Mojito Cubain 360 view"},
|
||||
{
|
||||
id: "3",
|
||||
brand: "Easyer",
|
||||
name: "PourBoire Tipping Module",
|
||||
price: "Seamless",
|
||||
rating: 5,
|
||||
reviewCount: "Direct",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-close-up-of-the-easyer-mobile-app-inte-1773275597448-7bde0803.png?_wi=2",
|
||||
imageAlt: "Digital tipping interface",
|
||||
},
|
||||
id: "3", brand: "Easyer", name: "PourBoire Tipping Module", price: "Seamless", rating: 5,
|
||||
reviewCount: "Direct", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-close-up-of-the-easyer-mobile-app-inte-1773275597448-7bde0803.png", imageAlt: "Digital tipping interface"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -263,16 +199,12 @@ export default function HomePage() {
|
||||
<InlineImageSplitTextAbout
|
||||
heading={[
|
||||
{
|
||||
type: "text",
|
||||
content: "Easyer+ Command Center",
|
||||
},
|
||||
type: "text", content: "Easyer+ Command Center"},
|
||||
]}
|
||||
useInvertedBackground={true}
|
||||
buttons={[
|
||||
{
|
||||
text: "Learn About Easyer+",
|
||||
href: "#easyer-plus-features",
|
||||
},
|
||||
text: "Learn About Easyer+", href: "#easyer-plus-features"},
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
@@ -288,58 +220,36 @@ export default function HomePage() {
|
||||
useInvertedBackground={false}
|
||||
features={[
|
||||
{
|
||||
title: "Active Requests",
|
||||
description:
|
||||
"Color-coded real-time request categorization: broken glass, cold food, missing items, or routine service.",
|
||||
bentoComponent: "3d-task-list",
|
||||
title: "Active Requests",
|
||||
items: [
|
||||
title: "Active Requests", description:
|
||||
"Color-coded real-time request categorization: broken glass, cold food, missing items, or routine service.", bentoComponent: "3d-task-list", items: [
|
||||
{
|
||||
icon: AlertTriangle,
|
||||
label: "Broken Glass - Table 5",
|
||||
time: "URGENT",
|
||||
},
|
||||
label: "Broken Glass - Table 5", time: "URGENT"},
|
||||
{
|
||||
icon: Thermometer,
|
||||
label: "Cold Food - Table 12",
|
||||
time: "HIGH",
|
||||
},
|
||||
{
|
||||
icon: Napkin,
|
||||
label: "Extra Napkins - Table 3",
|
||||
time: "NORMAL",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Classement - Team Performance",
|
||||
description:
|
||||
"Live leaderboard showing staff tips, efficiency scores, and service quality metrics to motivate teams.",
|
||||
bentoComponent: "icon-info-cards",
|
||||
items: [
|
||||
label: "Cold Food - Table 12", time: "HIGH"},
|
||||
{
|
||||
icon: Trophy,
|
||||
label: "Top Performer",
|
||||
value: "Sophie D.",
|
||||
},
|
||||
{
|
||||
icon: TrendingUp,
|
||||
label: "Tips Generated",
|
||||
value: "+$1,240",
|
||||
},
|
||||
{
|
||||
icon: Zap,
|
||||
label: "Avg Response",
|
||||
value: "55 seconds",
|
||||
},
|
||||
label: "Extra Napkins - Table 3", time: "NORMAL"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Réactivité & Urgences - Analytics",
|
||||
description:
|
||||
"Track incident response times, handling efficiency, and peak hour performance with detailed analytics.",
|
||||
bentoComponent: "line-chart",
|
||||
title: "Classement - Team Performance", description:
|
||||
"Live leaderboard showing staff tips, efficiency scores, and service quality metrics to motivate teams.", bentoComponent: "icon-info-cards", items: [
|
||||
{
|
||||
icon: Trophy,
|
||||
label: "Top Performer", value: "Sophie D."},
|
||||
{
|
||||
icon: TrendingUp,
|
||||
label: "Tips Generated", value: "+$1,240"},
|
||||
{
|
||||
icon: Zap,
|
||||
label: "Avg Response", value: "55 seconds"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Réactivité & Urgences - Analytics", description:
|
||||
"Track incident response times, handling efficiency, and peak hour performance with detailed analytics.", bentoComponent: "line-chart"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -354,44 +264,20 @@ export default function HomePage() {
|
||||
useInvertedBackground={true}
|
||||
metrics={[
|
||||
{
|
||||
id: "1",
|
||||
value: "55s",
|
||||
title: "Average Incident Response Time",
|
||||
items: [
|
||||
"Real-time request prioritization",
|
||||
"Automated alert routing",
|
||||
"Staff performance tracking",
|
||||
],
|
||||
id: "1", value: "55s", title: "Average Incident Response Time", items: [
|
||||
"Real-time request prioritization", "Automated alert routing", "Staff performance tracking"],
|
||||
},
|
||||
{
|
||||
id: "2",
|
||||
value: "+68%",
|
||||
title: "Increase in Staff Tips",
|
||||
items: [
|
||||
"Direct tipping via app",
|
||||
"Performance-based incentives",
|
||||
"Transparent earning visibility",
|
||||
],
|
||||
id: "2", value: "+68%", title: "Increase in Staff Tips", items: [
|
||||
"Direct tipping via app", "Performance-based incentives", "Transparent earning visibility"],
|
||||
},
|
||||
{
|
||||
id: "3",
|
||||
value: "-40%",
|
||||
title: "Reduction in Wait Times",
|
||||
items: [
|
||||
"Autonomous table-side ordering",
|
||||
"No server bottlenecks",
|
||||
"Parallel order processing",
|
||||
],
|
||||
id: "3", value: "-40%", title: "Reduction in Wait Times", items: [
|
||||
"Autonomous table-side ordering", "No server bottlenecks", "Parallel order processing"],
|
||||
},
|
||||
{
|
||||
id: "4",
|
||||
value: "+45%",
|
||||
title: "Menu Attachment Rate",
|
||||
items: [
|
||||
"AI-driven recommendations",
|
||||
"360° dish photography",
|
||||
"Allergen transparency",
|
||||
],
|
||||
id: "4", value: "+45%", title: "Menu Attachment Rate", items: [
|
||||
"AI-driven recommendations", "360° dish photography", "Allergen transparency"],
|
||||
},
|
||||
]}
|
||||
/>
|
||||
@@ -408,37 +294,17 @@ export default function HomePage() {
|
||||
gridVariant="four-items-2x2-equal-grid"
|
||||
members={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Loïc Durand",
|
||||
role: "Founder & CEO",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png?_wi=1",
|
||||
imageAlt: "Loïc Durand, Founder and CEO of Easyer",
|
||||
},
|
||||
id: "1", name: "Loïc Durand", role: "Founder & CEO", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png", imageAlt: "Loïc Durand, Founder and CEO of Easyer"},
|
||||
{
|
||||
id: "2",
|
||||
name: "Marie Rousseau",
|
||||
role: "VP Operations",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png?_wi=2",
|
||||
imageAlt: "Marie Rousseau, VP Operations",
|
||||
},
|
||||
id: "2", name: "Marie Rousseau", role: "VP Operations", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png", imageAlt: "Marie Rousseau, VP Operations"},
|
||||
{
|
||||
id: "3",
|
||||
name: "Antoine Mercier",
|
||||
role: "Head of Product",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png?_wi=3",
|
||||
imageAlt: "Antoine Mercier, Head of Product",
|
||||
},
|
||||
id: "3", name: "Antoine Mercier", role: "Head of Product", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png", imageAlt: "Antoine Mercier, Head of Product"},
|
||||
{
|
||||
id: "4",
|
||||
name: "Sophie Bernard",
|
||||
role: "Chief Technology Officer",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png?_wi=4",
|
||||
imageAlt: "Sophie Bernard, Chief Technology Officer",
|
||||
},
|
||||
id: "4", name: "Sophie Bernard", role: "Chief Technology Officer", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-headshot-of-a-confident-e-1773275596290-aade340c.png", imageAlt: "Sophie Bernard, Chief Technology Officer"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -452,95 +318,35 @@ export default function HomePage() {
|
||||
useInvertedBackground={true}
|
||||
testimonials={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Pierre Leclerc, Owner of Brasserie Lyon",
|
||||
date: "Date: November 2024",
|
||||
title: "Transformed our service model in weeks",
|
||||
quote:
|
||||
"Easyer+ gave us real-time visibility into floor operations. Our response times dropped 60%, and staff tips are up 70%. It's not just a tool—it's completely changed how we manage the restaurant.",
|
||||
tag: "Restaurant Owner",
|
||||
avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png",
|
||||
avatarAlt: "Pierre Leclerc",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png?_wi=1",
|
||||
imageAlt: "Restaurant owner testimonial",
|
||||
},
|
||||
id: "1", name: "Pierre Leclerc, Owner of Brasserie Lyon", date: "Date: November 2024", title: "Transformed our service model in weeks", quote:
|
||||
"Easyer+ gave us real-time visibility into floor operations. Our response times dropped 60%, and staff tips are up 70%. It's not just a tool—it's completely changed how we manage the restaurant.", tag: "Restaurant Owner", avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png", avatarAlt: "Pierre Leclerc", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png", imageAlt: "Restaurant owner testimonial"},
|
||||
{
|
||||
id: "2",
|
||||
name: "Isabelle Moreau, Head Server at Étoile Michelin",
|
||||
date: "Date: October 2024",
|
||||
title: "Staff absolutely loves it",
|
||||
quote:
|
||||
"Easyer eliminated the chaos of shouted requests. Now everything comes through our devices in priority order. We're calmer, guests are happier, and our tips reflect the improved service. Best system we've implemented.",
|
||||
tag: "Restaurant Staff",
|
||||
avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png",
|
||||
avatarAlt: "Isabelle Moreau",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png?_wi=1",
|
||||
imageAlt: "Server testimonial",
|
||||
},
|
||||
id: "2", name: "Isabelle Moreau, Head Server at Étoile Michelin", date: "Date: October 2024", title: "Staff absolutely loves it", quote:
|
||||
"Easyer eliminated the chaos of shouted requests. Now everything comes through our devices in priority order. We're calmer, guests are happier, and our tips reflect the improved service. Best system we've implemented.", tag: "Restaurant Staff", avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png", avatarAlt: "Isabelle Moreau", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png", imageAlt: "Server testimonial"},
|
||||
{
|
||||
id: "3",
|
||||
name: "Jean-Michel Dubois, Guest at Maison Française",
|
||||
date: "Date: September 2024",
|
||||
title: "Dining experience elevated",
|
||||
quote:
|
||||
"The Easyer experience is seamless. I loved browsing the full menu with 360° views of each dish before ordering. No more miscommunications about ingredients. Direct tipping to my server was instant. Pure innovation.",
|
||||
tag: "Restaurant Guest",
|
||||
avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-lifestyle-photograph-of-a-satisfied-re-1773275596613-74ff8b61.png",
|
||||
avatarAlt: "Jean-Michel Dubois",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-lifestyle-photograph-of-a-satisfied-re-1773275596613-74ff8b61.png?_wi=1",
|
||||
imageAlt: "Diner testimonial",
|
||||
},
|
||||
id: "3", name: "Jean-Michel Dubois, Guest at Maison Française", date: "Date: September 2024", title: "Dining experience elevated", quote:
|
||||
"The Easyer experience is seamless. I loved browsing the full menu with 360° views of each dish before ordering. No more miscommunications about ingredients. Direct tipping to my server was instant. Pure innovation.", tag: "Restaurant Guest", avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-lifestyle-photograph-of-a-satisfied-re-1773275596613-74ff8b61.png", avatarAlt: "Jean-Michel Dubois", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-lifestyle-photograph-of-a-satisfied-re-1773275596613-74ff8b61.png", imageAlt: "Diner testimonial"},
|
||||
{
|
||||
id: "4",
|
||||
name: "Claire Fontaine, Manager at La Table Verte",
|
||||
date: "Date: August 2024",
|
||||
title: "Data-driven decisions, real results",
|
||||
quote:
|
||||
"The analytics dashboard showed us exactly where bottlenecks were occurring. We adjusted staffing based on real demand patterns, cut food waste by 35%, and increased seat turnover. Easyer+ is a game-changer.",
|
||||
tag: "Restaurant Manager",
|
||||
avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png",
|
||||
avatarAlt: "Claire Fontaine",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png?_wi=2",
|
||||
imageAlt: "Manager testimonial",
|
||||
},
|
||||
id: "4", name: "Claire Fontaine, Manager at La Table Verte", date: "Date: August 2024", title: "Data-driven decisions, real results", quote:
|
||||
"The analytics dashboard showed us exactly where bottlenecks were occurring. We adjusted staffing based on real demand patterns, cut food waste by 35%, and increased seat turnover. Easyer+ is a game-changer.", tag: "Restaurant Manager", avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png", avatarAlt: "Claire Fontaine", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png", imageAlt: "Manager testimonial"},
|
||||
{
|
||||
id: "5",
|
||||
name: "Luc Arnaud, Owner of Café Côté",
|
||||
date: "Date: July 2024",
|
||||
title: "ROI exceeded expectations",
|
||||
quote:
|
||||
"We expected incremental improvements. Instead, we saw 45% more menu attachments in the first month, table turnover up 30%, and guest satisfaction scores climbing. The investment paid for itself in 6 weeks.",
|
||||
tag: "Business Owner",
|
||||
avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png",
|
||||
avatarAlt: "Luc Arnaud",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png?_wi=3",
|
||||
imageAlt: "Owner testimonial",
|
||||
},
|
||||
id: "5", name: "Luc Arnaud, Owner of Café Côté", date: "Date: July 2024", title: "ROI exceeded expectations", quote:
|
||||
"We expected incremental improvements. Instead, we saw 45% more menu attachments in the first month, table turnover up 30%, and guest satisfaction scores climbing. The investment paid for itself in 6 weeks.", tag: "Business Owner", avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png", avatarAlt: "Luc Arnaud", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-professional-photograph-of-a-successfu-1773275596554-0cf39a75.png", imageAlt: "Owner testimonial"},
|
||||
{
|
||||
id: "6",
|
||||
name: "Christiane Renault, Guest Experience Lead",
|
||||
date: "Date: June 2024",
|
||||
title: "Guests request our digital service",
|
||||
quote:
|
||||
"Our regulars now ask for Easyer tables. New guests are impressed by the technology seamlessly integrated into hospitality. Easyer didn't make dining cold—it made it more personal and efficient. That's the magic.",
|
||||
tag: "Experience Manager",
|
||||
avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png",
|
||||
avatarAlt: "Christiane Renault",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png?_wi=2",
|
||||
imageAlt: "Experience leader testimonial",
|
||||
},
|
||||
id: "6", name: "Christiane Renault, Guest Experience Lead", date: "Date: June 2024", title: "Guests request our digital service", quote:
|
||||
"Our regulars now ask for Easyer tables. New guests are impressed by the technology seamlessly integrated into hospitality. Easyer didn't make dining cold—it made it more personal and efficient. That's the magic.", tag: "Experience Manager", avatarSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png", avatarAlt: "Christiane Renault", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3Ap34fmlZ46rTO4yDKH0KysBVMA/a-warm-photograph-of-a-happy-restaurant--1773275599302-a3cc9b4e.png", imageAlt: "Experience leader testimonial"},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -559,53 +365,29 @@ export default function HomePage() {
|
||||
mediaPosition="right"
|
||||
faqs={[
|
||||
{
|
||||
id: "1",
|
||||
title: "How long does it take to implement Easyer in our restaurant?",
|
||||
content:
|
||||
"Implementation typically takes 2-4 weeks depending on restaurant size and table density. We handle hardware setup, staff training, and guest onboarding. Most restaurants are fully operational within a month with 24/7 support throughout.",
|
||||
},
|
||||
id: "1", title: "How long does it take to implement Easyer in our restaurant?", content:
|
||||
"Implementation typically takes 2-4 weeks depending on restaurant size and table density. We handle hardware setup, staff training, and guest onboarding. Most restaurants are fully operational within a month with 24/7 support throughout."},
|
||||
{
|
||||
id: "2",
|
||||
title: "What hardware do we need for Easyer+ management?",
|
||||
content:
|
||||
"Easyer+ works on iPads, Android tablets, or any modern device with a web browser. We recommend iPad Air for optimal performance in high-volume environments. No expensive POS system integration required—Easyer+ works alongside your existing systems.",
|
||||
},
|
||||
id: "2", title: "What hardware do we need for Easyer+ management?", content:
|
||||
"Easyer+ works on iPads, Android tablets, or any modern device with a web browser. We recommend iPad Air for optimal performance in high-volume environments. No expensive POS system integration required—Easyer+ works alongside your existing systems."},
|
||||
{
|
||||
id: "3",
|
||||
title: "Do guests need to download an app for Easyer?",
|
||||
content:
|
||||
"No app download required. Guests access Easyer through a QR code scan on each table, opening a progressive web app. It works on any smartphone instantly—no friction, no barriers to adoption.",
|
||||
},
|
||||
id: "3", title: "Do guests need to download an app for Easyer?", content:
|
||||
"No app download required. Guests access Easyer through a QR code scan on each table, opening a progressive web app. It works on any smartphone instantly—no friction, no barriers to adoption."},
|
||||
{
|
||||
id: "4",
|
||||
title: "How does payment processing work with PourBoire tipping?",
|
||||
content:
|
||||
"PourBoire integrates with Apple Pay, Google Pay, and major payment processors. Tips are processed securely and deposited directly to staff bank accounts. Restaurants maintain full visibility into tip distribution through Easyer+.",
|
||||
},
|
||||
id: "4", title: "How does payment processing work with PourBoire tipping?", content:
|
||||
"PourBoire integrates with Apple Pay, Google Pay, and major payment processors. Tips are processed securely and deposited directly to staff bank accounts. Restaurants maintain full visibility into tip distribution through Easyer+."},
|
||||
{
|
||||
id: "5",
|
||||
title: "Can Easyer integrate with our existing POS system?",
|
||||
content:
|
||||
"Yes. Easyer+ integrates with major POS systems (Square, Toast, MarginEdge, etc.) or works independently. Order data flows seamlessly to your kitchen display system and accounting—no manual re-entry needed.",
|
||||
},
|
||||
id: "5", title: "Can Easyer integrate with our existing POS system?", content:
|
||||
"Yes. Easyer+ integrates with major POS systems (Square, Toast, MarginEdge, etc.) or works independently. Order data flows seamlessly to your kitchen display system and accounting—no manual re-entry needed."},
|
||||
{
|
||||
id: "6",
|
||||
title: "What kind of support do you provide?",
|
||||
content:
|
||||
"We offer 24/7 technical support via phone, email, and chat. Plus, dedicated onboarding specialists, ongoing staff training, and quarterly business reviews to optimize your Easyer+ usage and ROI.",
|
||||
},
|
||||
id: "6", title: "What kind of support do you provide?", content:
|
||||
"We offer 24/7 technical support via phone, email, and chat. Plus, dedicated onboarding specialists, ongoing staff training, and quarterly business reviews to optimize your Easyer+ usage and ROI."},
|
||||
{
|
||||
id: "7",
|
||||
title: "How much does Easyer cost?",
|
||||
content:
|
||||
"Pricing is based on table count and feature tier. Easyer starts at €299/month for base installations. Easyer+ pricing includes management tools, analytics, and staff performance tracking. Contact us for a custom quote for your restaurant.",
|
||||
},
|
||||
id: "7", title: "How much does Easyer cost?", content:
|
||||
"Pricing is based on table count and feature tier. Easyer starts at €299/month for base installations. Easyer+ pricing includes management tools, analytics, and staff performance tracking. Contact us for a custom quote for your restaurant."},
|
||||
{
|
||||
id: "8",
|
||||
title: "Is guest data secure with Easyer?",
|
||||
content:
|
||||
"Absolutely. Easyer is SOC 2 Type II compliant with end-to-end encryption for all transactions. We comply with GDPR and handle no sensitive guest payment data—all transactions go directly to secure payment processors.",
|
||||
},
|
||||
id: "8", title: "Is guest data secure with Easyer?", content:
|
||||
"Absolutely. Easyer is SOC 2 Type II compliant with end-to-end encryption for all transactions. We comply with GDPR and handle no sensitive guest payment data—all transactions go directly to secure payment processors."},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -615,38 +397,24 @@ export default function HomePage() {
|
||||
ctaTitle="Book Your Demo"
|
||||
ctaDescription="See Easyer & Easyer+ in action with a personalized walkthrough tailored to your restaurant's needs and challenges."
|
||||
ctaButton={{
|
||||
text: "Schedule a Demo",
|
||||
href: "#",
|
||||
}}
|
||||
text: "Schedule a Demo", href: "#"}}
|
||||
ctaIcon={Calendar}
|
||||
useInvertedBackground={true}
|
||||
animationType="slide-up"
|
||||
faqs={[
|
||||
{
|
||||
id: "1",
|
||||
title: "What should I prepare for the demo?",
|
||||
content:
|
||||
"Just bring your restaurant details—table count, current pain points, and any specific goals. We'll handle everything else and show you exactly how Easyer solves your challenges with live system access.",
|
||||
},
|
||||
id: "1", title: "What should I prepare for the demo?", content:
|
||||
"Just bring your restaurant details—table count, current pain points, and any specific goals. We'll handle everything else and show you exactly how Easyer solves your challenges with live system access."},
|
||||
{
|
||||
id: "2",
|
||||
title:
|
||||
"Can we customize Easyer for our restaurant's unique workflow?",
|
||||
content:
|
||||
"Yes. Easyer is highly configurable. We'll work with you during implementation to match your service style, menu structure, and team workflows. Most customizations are handled in setup.",
|
||||
},
|
||||
id: "2", title:
|
||||
"Can we customize Easyer for our restaurant's unique workflow?", content:
|
||||
"Yes. Easyer is highly configurable. We'll work with you during implementation to match your service style, menu structure, and team workflows. Most customizations are handled in setup."},
|
||||
{
|
||||
id: "3",
|
||||
title: "Do you offer a free trial before purchasing?",
|
||||
content:
|
||||
"We offer a 2-week free pilot program for qualified restaurants. You'll have full access to Easyer & Easyer+ with dedicated support to test feasibility with real guests and staff.",
|
||||
},
|
||||
id: "3", title: "Do you offer a free trial before purchasing?", content:
|
||||
"We offer a 2-week free pilot program for qualified restaurants. You'll have full access to Easyer & Easyer+ with dedicated support to test feasibility with real guests and staff."},
|
||||
{
|
||||
id: "4",
|
||||
title: "What's the typical ROI timeline?",
|
||||
content:
|
||||
"Most restaurants see measurable ROI within 6-12 weeks: reduced labor costs, increased cover turnover, higher guest satisfaction, and significantly increased staff tips. Your dedicated account manager will track metrics specific to your goals.",
|
||||
},
|
||||
id: "4", title: "What's the typical ROI timeline?", content:
|
||||
"Most restaurants see measurable ROI within 6-12 weeks: reduced labor costs, increased cover turnover, higher guest satisfaction, and significantly increased staff tips. Your dedicated account manager will track metrics specific to your goals."},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -656,66 +424,39 @@ export default function HomePage() {
|
||||
copyrightText="© 2025 Easyer Technologies. All rights reserved. Transforming hospitality through innovation."
|
||||
columns={[
|
||||
{
|
||||
title: "Product",
|
||||
items: [
|
||||
title: "Product", items: [
|
||||
{
|
||||
label: "Easyer for Guests",
|
||||
href: "/for-diners",
|
||||
},
|
||||
label: "Easyer for Guests", href: "/for-diners"},
|
||||
{
|
||||
label: "Easyer+ for Owners",
|
||||
href: "/for-owners",
|
||||
},
|
||||
label: "Easyer+ for Owners", href: "/for-owners"},
|
||||
{
|
||||
label: "Features",
|
||||
href: "#product-split",
|
||||
},
|
||||
label: "Features", href: "#product-split"},
|
||||
{
|
||||
label: "Pricing",
|
||||
href: "#contact",
|
||||
},
|
||||
label: "Pricing", href: "#contact"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
title: "Company", items: [
|
||||
{
|
||||
label: "About Us",
|
||||
href: "#team",
|
||||
},
|
||||
label: "About Us", href: "#team"},
|
||||
{
|
||||
label: "How It Works",
|
||||
href: "#metrics",
|
||||
},
|
||||
label: "How It Works", href: "#metrics"},
|
||||
{
|
||||
label: "Testimonials",
|
||||
href: "#testimonials",
|
||||
},
|
||||
label: "Testimonials", href: "#testimonials"},
|
||||
{
|
||||
label: "Contact",
|
||||
href: "#contact",
|
||||
},
|
||||
label: "Contact", href: "#contact"},
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Legal",
|
||||
items: [
|
||||
title: "Legal", items: [
|
||||
{
|
||||
label: "Privacy Policy",
|
||||
href: "#",
|
||||
},
|
||||
label: "Privacy Policy", href: "#"},
|
||||
{
|
||||
label: "Terms of Service",
|
||||
href: "#",
|
||||
},
|
||||
label: "Terms of Service", href: "#"},
|
||||
{
|
||||
label: "Compliance",
|
||||
href: "#",
|
||||
},
|
||||
label: "Compliance", href: "#"},
|
||||
{
|
||||
label: "Security",
|
||||
href: "#",
|
||||
},
|
||||
label: "Security", href: "#"},
|
||||
],
|
||||
},
|
||||
]}
|
||||
|
||||
@@ -1,51 +1,37 @@
|
||||
"use client";
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
import React from 'react';
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
text: string;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
|
||||
logoText,
|
||||
adjustHeightFactor,
|
||||
verticalAlign = "top",
|
||||
className = "",
|
||||
}) {
|
||||
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
|
||||
|
||||
export const SvgTextLogo: React.FC<SvgTextLogoProps> = ({ text, className = '' }) => {
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
viewBox="0 0 300 100"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className={className}
|
||||
>
|
||||
<defs>
|
||||
<linearGradient id="textGradient" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" style={{ stopColor: '#ff006e', stopOpacity: 1 }} />
|
||||
<stop offset="100%" style={{ stopColor: '#8338ec', stopOpacity: 1 }} />
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<text
|
||||
ref={textRef}
|
||||
x="0"
|
||||
y={verticalAlign === "center" ? "50%" : "0"}
|
||||
className="font-bold fill-current"
|
||||
style={{
|
||||
fontSize: "20px",
|
||||
letterSpacing: "-0.02em",
|
||||
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
|
||||
}}
|
||||
x="50%"
|
||||
y="50%"
|
||||
textAnchor="middle"
|
||||
dominantBaseline="middle"
|
||||
fill="url(#textGradient)"
|
||||
fontSize="48"
|
||||
fontWeight="bold"
|
||||
fontFamily="Arial, sans-serif"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user