Merge version_2 into main #3

Merged
bender merged 2 commits from version_2 into main 2026-03-04 23:41:51 +00:00
2 changed files with 55 additions and 84 deletions

View File

@@ -1,69 +1,17 @@
import type { Metadata } from "next";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import { Source_Sans_3 } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const halant = Halant({
variable: "--font-halant",
subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter",
subsets: ["latin"],
});
const sourceSans3 = Source_Sans_3({
variable: "--font-source-sans-3",
subsets: ["latin"],
});
export const metadata: Metadata = {
title: "BlasaCar - Safe Ride Sharing Between Moroccan Cities",
description: "Skip WhatsApp chaos. BlasaCar is Morocco's trusted platform for intercity ride sharing. Instant booking, verified drivers, transparent pricing. Join 50K+ users today.",
keywords: "ride sharing Morocco, intercity rides, carpooling, safe travel, taxi alternative",
robots: {
index: true,
follow: true,
},
openGraph: {
title: "BlasaCar - Book Rides in Seconds",
description: "Safe, verified ride sharing between Moroccan cities. No more Facebook groups.",
type: "website",
siteName: "BlasaCar",
images: [
{
url: "http://img.b2bpic.net/free-vector/travel-booking-app-interface-set_23-2148590978.jpg",
alt: "BlasaCar ride sharing platform",
},
],
},
twitter: {
card: "summary_large_image",
title: "BlasaCar - Book Rides in Seconds",
description: "Safe ride sharing between Moroccan cities",
images: ["http://img.b2bpic.net/free-vector/travel-booking-app-interface-set_23-2148590978.jpg"],
},
};
title: "BlasaCar - Ride Sharing for Morocco", description: "Skip the WhatsApp chaos. Book rides in seconds."};
export default function RootLayout({
children,
}: Readonly<{
}: {
children: React.ReactNode;
}>) {
}) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${halant.variable} ${inter.variable} ${sourceSans3.variable} antialiased`}
>
<Tag />
{children}
<html lang="en">
<body>{children}
<script
dangerouslySetInnerHTML={{
__html: `
@@ -1431,7 +1379,6 @@ export default function RootLayout({
}}
/>
</body>
</ServiceWrapper>
</html>
);
}
}

View File

@@ -2,7 +2,7 @@
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
import HeroSplitKpi from "@/components/sections/hero/HeroSplitKpi";
import HeroSplitTestimonial from "@/components/sections/hero/HeroSplitTestimonial";
import SplitAbout from "@/components/sections/about/SplitAbout";
import FeatureCardTwentyThree from "@/components/sections/feature/FeatureCardTwentyThree";
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
@@ -66,21 +66,16 @@ export default function HomePage() {
brandName="BlasaCar"
navItems={navItems}
button={{
text: "Book a Ride", href: "#"}}
text: "Book a Ride", href: "#"
}}
/>
</div>
<div id="hero" data-section="hero">
<HeroSplitKpi
<HeroSplitTestimonial
title="Skip the WhatsApp Chaos. Book Rides in Seconds."
description="BlasaCar connects drivers and passengers traveling between Moroccan cities. No more Facebook groups or endless messages—just instant booking, transparent pricing, and verified travelers."
background={{ variant: "glowing-orb" }}
kpis={[
{ value: "30 sec", label: "Average Booking Time" },
{ value: "100% Verified", label: "All Drivers & Passengers" },
{ value: "24/7 Support", label: "WhatsApp Notifications" },
]}
enableKpiAnimation={true}
tag="Trusted by thousands in Morocco"
tagIcon={CheckCircle}
tagAnimation="slide-up"
@@ -93,6 +88,20 @@ export default function HomePage() {
imageAlt="BlasaCar booking interface showing trip search"
mediaAnimation="slide-up"
imagePosition="right"
testimonials={[
{
name: "Sarah Ahmed", handle: "Regular Passenger", testimonial: "Finally, a reliable way to book rides without the chaos. BlasaCar makes traveling between cities so much easier!", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-woman-smiling_23-2148904278.jpg", imageAlt: "Sarah Ahmed"
},
{
name: "Mohamed Hassan", handle: "Driver, 200+ trips", testimonial: "BlasaCar transformed how I earn extra income. Transparent pricing and serious passengers make all the difference.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-man-smiling_23-2148904277.jpg", imageAlt: "Mohamed Hassan"
},
{
name: "Fatima Benani", handle: "Business Commuter", testimonial: "I book through BlasaCar weekly. The verification system gives me peace of mind, and the app is super intuitive.", rating: 5,
imageSrc: "http://img.b2bpic.net/free-photo/portrait-woman-professional_23-2148904279.jpg", imageAlt: "Fatima Benani"
}
]}
/>
</div>
@@ -133,22 +142,28 @@ export default function HomePage() {
features={[
{
id: "1", title: "Quick Trip Posting", tags: ["Drivers", "2 Minutes"],
imageSrc: "http://img.b2bpic.net/free-photo/adoption-application-family-guardianship-support-concept_53876-122724.jpg", imageAlt: "Quick trip posting interface"},
imageSrc: "http://img.b2bpic.net/free-photo/adoption-application-family-guardianship-support-concept_53876-122724.jpg", imageAlt: "Quick trip posting interface"
},
{
id: "2", title: "Smart Search", tags: ["Passengers", "Real-time"],
imageSrc: "http://img.b2bpic.net/free-vector/goals-habits-tracking-application-template_23-2148676844.jpg", imageAlt: "Trip search and filter interface"},
imageSrc: "http://img.b2bpic.net/free-vector/goals-habits-tracking-application-template_23-2148676844.jpg", imageAlt: "Trip search and filter interface"
},
{
id: "3", title: "Verified Profiles", tags: ["CIN Verification", "Phone Verified"],
imageSrc: "http://img.b2bpic.net/free-vector/mobile-face-scan_24908-56399.jpg", imageAlt: "Profile verification process"},
imageSrc: "http://img.b2bpic.net/free-vector/mobile-face-scan_24908-56399.jpg", imageAlt: "Profile verification process"
},
{
id: "4", title: "Transparent Pricing", tags: ["No Hidden Fees", "Clear Rates"],
imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-two-colorful-wooden-squares-with-shopping-money-icons-black-calculator_181624-58059.jpg", imageAlt: "Pricing breakdown display"},
imageSrc: "http://img.b2bpic.net/free-photo/closeup-shot-two-colorful-wooden-squares-with-shopping-money-icons-black-calculator_181624-58059.jpg", imageAlt: "Pricing breakdown display"
},
{
id: "5", title: "Ratings & Reviews", tags: ["Build Trust", "Community Safe"],
imageSrc: "http://img.b2bpic.net/free-vector/dj-customer-review-facebook-post-template_742173-1350.jpg", imageAlt: "Ratings and reviews section"},
imageSrc: "http://img.b2bpic.net/free-vector/dj-customer-review-facebook-post-template_742173-1350.jpg", imageAlt: "Ratings and reviews section"
},
{
id: "6", title: "WhatsApp Alerts", tags: ["Confirmations", "Reminders"],
imageSrc: "http://img.b2bpic.net/free-photo/email-alert-popup-reminder-concept_53876-123867.jpg", imageAlt: "WhatsApp notification examples"},
imageSrc: "http://img.b2bpic.net/free-photo/email-alert-popup-reminder-concept_53876-123867.jpg", imageAlt: "WhatsApp notification examples"
},
]}
animationType="slide-up"
title="Features Built for Morocco"
@@ -199,11 +214,14 @@ export default function HomePage() {
<MetricCardEleven
metrics={[
{
id: "1", value: "50K+", title: "Active Users", description: "Drivers and passengers across Morocco", imageSrc: "http://img.b2bpic.net/free-photo/group-diverse-people-using-smartphones_53876-30743.jpg", imageAlt: "Active users community"},
id: "1", value: "50K+", title: "Active Users", description: "Drivers and passengers across Morocco", imageSrc: "http://img.b2bpic.net/free-photo/group-diverse-people-using-smartphones_53876-30743.jpg", imageAlt: "Active users community"
},
{
id: "2", value: "10K+", title: "Trips Per Month", description: "Safe, verified journeys between cities", imageSrc: "http://img.b2bpic.net/free-photo/white-sedan-empty-autumn-road-car-driving-through-forest_169016-70260.jpg", imageAlt: "Monthly trip statistics"},
id: "2", value: "10K+", title: "Trips Per Month", description: "Safe, verified journeys between cities", imageSrc: "http://img.b2bpic.net/free-photo/white-sedan-empty-autumn-road-car-driving-through-forest_169016-70260.jpg", imageAlt: "Monthly trip statistics"
},
{
id: "3", value: "4.8/5", title: "Average Rating", description: "Community trust and satisfaction", imageSrc: "http://img.b2bpic.net/free-photo/diverse-people-showing-golden-star-rating-symbol_53876-71536.jpg", imageAlt: "User satisfaction ratings"},
id: "3", value: "4.8/5", title: "Average Rating", description: "Community trust and satisfaction", imageSrc: "http://img.b2bpic.net/free-photo/diverse-people-showing-golden-star-rating-symbol_53876-71536.jpg", imageAlt: "User satisfaction ratings"
},
]}
title="Growing Fast"
description="Trusted by thousands of Moroccan travelers and drivers"
@@ -222,17 +240,23 @@ export default function HomePage() {
<FaqDouble
faqs={[
{
id: "1", title: "How do I post a trip as a driver?", content: "After verifying your CIN and phone number, click 'Post a Trip'. Enter your departure city, destination, date, time, and available seats. Pricing should reflect market rates. Your trip is live within seconds."},
id: "1", title: "How do I post a trip as a driver?", content: "After verifying your CIN and phone number, click 'Post a Trip'. Enter your departure city, destination, date, time, and available seats. Pricing should reflect market rates. Your trip is live within seconds."
},
{
id: "2", title: "How do I book a seat as a passenger?", content: "Search for trips by your departure and destination cities and preferred date. Click on any trip to see details. Click 'Book' and confirm. You'll receive the driver's WhatsApp contact and trip confirmation."},
id: "2", title: "How do I book a seat as a passenger?", content: "Search for trips by your departure and destination cities and preferred date. Click on any trip to see details. Click 'Book' and confirm. You'll receive the driver's WhatsApp contact and trip confirmation."
},
{
id: "3", title: "What if a driver cancels my trip?", content: "BlasaCar allows one free cancellation per month per user. Repeated cancellations lower your rating and visibility. We recommend booking well in advance to avoid cancellations."},
id: "3", title: "What if a driver cancels my trip?", content: "BlasaCar allows one free cancellation per month per user. Repeated cancellations lower your rating and visibility. We recommend booking well in advance to avoid cancellations."
},
{
id: "4", title: "How are payments handled?", content: "Payments are made directly to the driver via cash, bank transfer, or mobile money (Orange Money, Maroc Telecom). BlasaCar does not handle payments—we connect people securely."},
id: "4", title: "How are payments handled?", content: "Payments are made directly to the driver via cash, bank transfer, or mobile money (Orange Money, Maroc Telecom). BlasaCar does not handle payments—we connect people securely."
},
{
id: "5", title: "What should I do if I have a problem during a trip?", content: "Contact the driver directly via WhatsApp first. If unresolved, reach out to BlasaCar support via WhatsApp and we will mediate and review trip ratings for resolution."},
id: "5", title: "What should I do if I have a problem during a trip?", content: "Contact the driver directly via WhatsApp first. If unresolved, reach out to BlasaCar support via WhatsApp and we will mediate and review trip ratings for resolution."
},
{
id: "6", title: "Is my data safe on BlasaCar?", content: "Yes. We only collect verified CIN and phone numbers. Your contact details are shared only after a booking is confirmed. We never share personal data with third parties."},
id: "6", title: "Is my data safe on BlasaCar?", content: "Yes. We only collect verified CIN and phone numbers. Your contact details are shared only after a booking is confirmed. We never share personal data with third parties."
},
]}
title="Frequently Asked Questions"
description="Find answers to common questions about BlasaCar"
@@ -270,4 +294,4 @@ export default function HomePage() {
</div>
</ThemeProvider>
);
}
}