Compare commits
44 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f83ea4bde9 | |||
| c84625191e | |||
| 031452128b | |||
| fd3ef2f466 | |||
| 636bff401c | |||
| 382150a3bc | |||
| 633eb13484 | |||
| fb5b47aab5 | |||
| 6172869915 | |||
| 20059929a6 | |||
| be275e01f2 | |||
| 8971f2314a | |||
| beec3a80be | |||
| 83a7eb7c41 | |||
| 80c6aaab00 | |||
| 1e6b1b43b7 | |||
| e77e3e9704 | |||
| f968bcc13f | |||
| c8ba27ffdd | |||
| b7fff1b9a9 | |||
| 3ed839c4ff | |||
| b181b4ddee | |||
| 5938ba865f | |||
| dbe2e43bf0 | |||
| 57ee638862 | |||
| a494a9b8e9 | |||
| d0d0b79d77 | |||
| b33b068014 | |||
| e0d9f02166 | |||
| b295031842 | |||
| 351aebda79 | |||
| ec154b8c99 | |||
| 097ee76e53 | |||
| 344050f746 | |||
| 63b8ff5ed3 | |||
| 5bdbc626df | |||
| 85206f83e6 | |||
| ae65ec736e | |||
| ae05459beb | |||
| 4d0513675b | |||
| b05d20d018 | |||
| 732e7932d7 | |||
| e5c98ebc14 | |||
| 9cb2ced825 |
@@ -1,52 +1,24 @@
|
||||
import type { Metadata } from "next";
|
||||
import { Libre_Baskerville } from "next/font/google";
|
||||
import { Inter } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
||||
import Tag from "@/tag/Tag";
|
||||
|
||||
const libreBaskerville = Libre_Baskerville({
|
||||
variable: "--font-libre-baskerville", subsets: ["latin"],
|
||||
weight: ["400", "700"],
|
||||
});
|
||||
|
||||
const inter = Inter({
|
||||
variable: "--font-inter", subsets: ["latin"],
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Learn Skateboarding in Marrakech with Houda Ait Lahcen", description: "Book an authentic skateboarding experience in Tameslouht, Marrakech. Learn from an expert skater instructor with 5+ years experience. 5% supports CJF Morocco youth programs.", keywords: "skateboarding lessons marrakech, learn skateboard morocco, skateboard coaching tameslouht, skateboard instructor marrakech, beginner skateboarding, CJF morocco", metadataBase: new URL("https://houdasskateboarding.com"),
|
||||
alternates: {
|
||||
canonical: "https://houdasskateboarding.com"},
|
||||
openGraph: {
|
||||
title: "Learn Skateboarding in Marrakech with Houda Ait Lahcen", description: "Expert skateboarding coaching in beautiful Tameslouht. Build confidence, balance, and skills. 5% to CJF Morocco.", url: "https://houdasskateboarding.com", siteName: "Houda's Skateboarding", type: "website", images: [
|
||||
{
|
||||
url: "http://img.b2bpic.net/free-photo/cute-girl-roller-skating_1303-8881.jpg", alt: "Female skateboarder in Marrakech"},
|
||||
],
|
||||
},
|
||||
twitter: {
|
||||
card: "summary_large_image", title: "Learn Skateboarding in Marrakech", description: "Expert coaching from Morocco's best skater girl. Build confidence on the board.", images: ["http://img.b2bpic.net/free-photo/cute-girl-roller-skating_1303-8881.jpg"],
|
||||
},
|
||||
robots: {
|
||||
index: true,
|
||||
follow: true,
|
||||
},
|
||||
};
|
||||
title: "Houda's Skateboarding Experience", description: "Learn skateboarding in Marrakech with professional coaching from Morocco's best skater girl."};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
}) {
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<ServiceWrapper>
|
||||
<body
|
||||
className={`${libreBaskerville.variable} ${inter.variable} antialiased`}
|
||||
>
|
||||
<Tag />
|
||||
{children}
|
||||
|
||||
<html lang="en">
|
||||
<body className={inter.variable}>
|
||||
{children}
|
||||
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
@@ -1414,7 +1386,6 @@ export default function RootLayout({
|
||||
}}
|
||||
/>
|
||||
</body>
|
||||
</ServiceWrapper>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
|
||||
117
src/app/page.tsx
117
src/app/page.tsx
@@ -4,9 +4,9 @@ import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay";
|
||||
import HeroLogoBillboard from "@/components/sections/hero/HeroLogoBillboard";
|
||||
import TextAbout from "@/components/sections/about/TextAbout";
|
||||
import SplitAbout from "@/components/sections/about/SplitAbout";
|
||||
import FeatureCardSeven from "@/components/sections/feature/FeatureCardSeven";
|
||||
import PricingCardNine from "@/components/sections/pricing/PricingCardNine";
|
||||
import SocialProofOne from "@/components/sections/socialProof/SocialProofOne";
|
||||
import FaqSplitText from "@/components/sections/faq/FaqSplitText";
|
||||
import ContactSplit from "@/components/sections/contact/ContactSplit";
|
||||
import FooterBaseCard from "@/components/sections/footer/FooterBaseCard";
|
||||
@@ -27,7 +27,7 @@ export default function LandingPage() {
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarLayoutFloatingOverlay
|
||||
brandName="Houda's Skateboarding"
|
||||
brandName="Book Your Skatebording & Surfskate Experience Today"
|
||||
navItems={[
|
||||
{ name: "About", id: "about" },
|
||||
{ name: "What You'll Learn", id: "features" },
|
||||
@@ -36,21 +36,23 @@ export default function LandingPage() {
|
||||
{ name: "Contact", id: "contact" },
|
||||
]}
|
||||
button={{
|
||||
text: "Book Now", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"}}
|
||||
text: "Book Now", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroLogoBillboard
|
||||
logoText="Houda's Skateboarding"
|
||||
description="Learn skateboarding or surf skate with confidence. Build strong balance, control, and smooth turns through clear, focused coaching in beautiful Tameslouht, Marrakech."
|
||||
logoText=""
|
||||
description="Learn skateboarding or surf skate with confidence. Build strong balance, control, and smooth turns through clear, focused coaching in Tameslouht or Marrakech."
|
||||
buttons={[
|
||||
{
|
||||
text: "Book Your Experience", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"},
|
||||
text: "Book Your Experience", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"
|
||||
},
|
||||
{ text: "Learn More" },
|
||||
]}
|
||||
background={{ variant: "sparkles-gradient" }}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/cute-girl-roller-skating_1303-8881.jpg?_wi=1"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AVSnAj9MzGOThMDqSI4t30YgeB/uploaded-1773007372231-tufcrmsc.jpg"
|
||||
imageAlt="Female skateboarder performing at skateboard park"
|
||||
mediaAnimation="slide-up"
|
||||
frameStyle="card"
|
||||
@@ -58,13 +60,31 @@ export default function LandingPage() {
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<TextAbout
|
||||
<SplitAbout
|
||||
tag="Meet Your Coach"
|
||||
title="Houda Ait Lahcen - Skateboarding Instructor & Girls Supporter"
|
||||
description="Learn from Morocco's best skater girl with years of experience coaching beginners and intermediate riders."
|
||||
buttons={[
|
||||
{
|
||||
text: "Reserve Your Spot", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"},
|
||||
text: "Reserve Your Spot", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"
|
||||
},
|
||||
]}
|
||||
bulletPoints={[
|
||||
{
|
||||
title: "Expert Coach", description: "Years of professional skateboarding experience with a passion for teaching"
|
||||
},
|
||||
{
|
||||
title: "Safety First", description: "All equipment provided, professional protective gear included"
|
||||
},
|
||||
{
|
||||
title: "Personal Attention", description: "Step by step coaching tailored to your skill level and learning pace"
|
||||
},
|
||||
]}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AVSnAj9MzGOThMDqSI4t30YgeB/uploaded-1772847116738-v7uf3uyb.jpg"
|
||||
imageAlt="Houda skateboarding instructor"
|
||||
mediaAnimation="slide-up"
|
||||
imagePosition="right"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={true}
|
||||
/>
|
||||
</div>
|
||||
@@ -77,13 +97,16 @@ export default function LandingPage() {
|
||||
features={[
|
||||
{
|
||||
id: 1,
|
||||
title: "Warm-Up & Balance", description: "We begin with a dynamic warm-up to activate balance, body control, and confidence before stepping on the board.", imageSrc: "http://img.b2bpic.net/free-photo/skate-parkteens-skate-park_23-2149836894.jpg?_wi=1"},
|
||||
title: "Warm-Up & Balance", description: "We begin with a dynamic warm-up to activate balance, body control, and confidence before stepping on the board.", imageSrc: "http://img.b2bpic.net/free-photo/young-couple-enjoys-playing-sports-morning-open-air-warm-up-before-exercise_146671-14939.jpg?id=9277056"
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title: "Safety & Gear Check", description: "Learn proper stance, safe stopping techniques, and riding basics with professional-grade equipment and guidance.", imageSrc: "http://img.b2bpic.net/free-photo/cropped-shot-legs-longboard-skater-girl-riding-her-skateboard-street-female-teenager-cru_1258-138262.jpg"},
|
||||
title: "Safety & Gear Check", description: "Learn proper stance, safe stopping techniques, and riding basics with safety equipment and guidance.", imageSrc: "http://img.b2bpic.net/free-photo/guys-skate-pool_1321-1334.jpg?id=3202066"
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title: "Personal Coaching", description: "One-on-one instruction with Morocco's best skater girl, including hands-on skating practice and personalized learning.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-skateboarders-feet-skating_171337-9160.jpg"},
|
||||
title: "Personal Coaching", description: "Steaby step coaching with Morocco's best skater girl, including hands-on skating practice and personalized learning.", imageSrc: "http://img.b2bpic.net/free-photo/close-up-skateboarders-feet-skating_171337-9160.jpg"
|
||||
},
|
||||
]}
|
||||
animationType="blur-reveal"
|
||||
textboxLayout="default"
|
||||
@@ -94,20 +117,24 @@ export default function LandingPage() {
|
||||
<div id="pricing" data-section="pricing">
|
||||
<PricingCardNine
|
||||
title="Skateboarding Experience"
|
||||
description="All sessions include professional coaching, safety equipment, and community support. 5% of proceeds benefit CJF Morocco."
|
||||
description="All sessions include professional coaching, safety equipment, and community support. 8% of proceeds benefit CJF Morocco a youth led organization ."
|
||||
tag="Competitive Pricing"
|
||||
plans={[
|
||||
{
|
||||
id: "session", title: "Single Session", price: "$32", period: "per guest", imageSrc: "http://img.b2bpic.net/free-photo/cute-girl-roller-skating_1303-8881.jpg?_wi=2", features: [
|
||||
"1.5-2 hour coaching session", "Professional equipment included", "Beginner-friendly instruction", "Tea & Atlas views included"],
|
||||
id: "session", title: "Single Session", price: "$32", period: "per guest", imageSrc: "http://img.b2bpic.net/free-photo/woman-having-fun-with-skateboarding_329181-12953.jpg?id=12929860", features: [
|
||||
"1.3 hour coaching session", "Professional equipment included", "Beginner-friendly instruction", "Tea & relaxing area and discussion "
|
||||
],
|
||||
button: {
|
||||
text: "Book Now", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"},
|
||||
text: "Book Now", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"
|
||||
},
|
||||
},
|
||||
{
|
||||
id: "package", title: "3-Session Package", price: "$85", period: "per guest", imageSrc: "http://img.b2bpic.net/free-photo/skate-parkteens-skate-park_23-2149836894.jpg?_wi=2", features: [
|
||||
"3 coaching sessions (best value)", "Skill progression tracking", "Professional equipment", "Complimentary refreshments"],
|
||||
id: "package", title: "3-Session Package", price: "$85", period: "per guest", imageSrc: "http://img.b2bpic.net/premium-photo/two-skateboarders-performing-tricks-simultaneously_274719-11841.jpg?id=92853095", features: [
|
||||
"3 coaching sessions (best value)", "Skill progression tracking", "Professional equipment", ""
|
||||
],
|
||||
button: {
|
||||
text: "Book Package", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"},
|
||||
text: "Book Package", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"
|
||||
},
|
||||
},
|
||||
]}
|
||||
animationType="slide-up"
|
||||
@@ -116,20 +143,6 @@ export default function LandingPage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="social-proof" data-section="social-proof">
|
||||
<SocialProofOne
|
||||
title="Trusted by Skateboarders Worldwide"
|
||||
description="Join hundreds of learners from around the world who have built confidence on the skateboard."
|
||||
tag="Community Impact"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
names={[
|
||||
"Marrakech Skateboard Community", "CJF Morocco Programs", "Atlas Mountain Sports", "Tameslouht Fiere et Fort", "International Skate Alliance", "Women Skater Network", "Moroccan Youth Sports", "Inclusive Skateboarding Initiative"]}
|
||||
speed={40}
|
||||
showCard={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqSplitText
|
||||
sideTitle="Frequently Asked Questions"
|
||||
@@ -140,17 +153,23 @@ export default function LandingPage() {
|
||||
faqsAnimation="blur-reveal"
|
||||
faqs={[
|
||||
{
|
||||
id: "1", title: "What age can participate?", content: "Guests ages 15 and up can attend. We welcome beginners and intermediates alike."},
|
||||
id: "1", title: "What age can participate?", content: "Guests ages 15 and up can attend. We welcome beginners and intermediates alike."
|
||||
},
|
||||
{
|
||||
id: "2", title: "What should I bring?", content: "Bring water to keep hydrated. All skateboarding equipment and protective gear is provided."},
|
||||
id: "2", title: "What should I bring?", content: "Bring water to keep hydrated. All skateboarding equipment and protective gear is provided."
|
||||
},
|
||||
{
|
||||
id: "3", title: "How difficult is this activity?", content: "The activity level is moderate and the skill level is beginner. We start with the fundamentals and progress at your pace."},
|
||||
id: "3", title: "How difficult is this activity?", content: "The activity level is moderate and the skill level is beginner. We start with the fundamentals and progress at your pace."
|
||||
},
|
||||
{
|
||||
id: "4", title: "What's your cancellation policy?", content: "Cancel at least 1 day before the start time for a full refund. Free cancellation is available."},
|
||||
id: "4", title: "What's your cancellation policy?", content: "Cancel at least 1 day before the start time for a full refund. Free cancellation is available."
|
||||
},
|
||||
{
|
||||
id: "5", title: "Do you accommodate people with mobility issues?", content: "We have a step-free bathroom available and a quiet retreat space. Contact us to discuss specific accessibility needs."},
|
||||
id: "5", title: "Do you accommodate people with mobility issues?", content: "We have a step-free bathroom available and a quiet retreat space. Contact us to discuss specific accessibility needs."
|
||||
},
|
||||
{
|
||||
id: "6", title: "Where exactly do we meet?", content: "Sessions are held in Tameslouht, Marrakech. You'll enjoy spectacular Atlas Mountain views and access to Fiere et Fort skateboard park."},
|
||||
id: "6", title: "Where exactly do we meet?", content: "Sessions are held in Tamelslohte, Marrakech. You'll enjoy spectacular Atlas Mountain views and access to Fiere et Fort skatepark."
|
||||
},
|
||||
]}
|
||||
/>
|
||||
</div>
|
||||
@@ -159,28 +178,29 @@ export default function LandingPage() {
|
||||
<ContactSplit
|
||||
tag="Get In Touch"
|
||||
title="Ready to Learn?"
|
||||
description="Join our skateboarding community in Marrakech. Book your experience today and become part of a movement supporting youth skateboarding across Morocco."
|
||||
description="Let's learn together and try a new experience where you learn not just skating but confidence. Join our skateboarding community in Marrakech. Book your experience today and become part of a movement supporting children skateboarding across Morocco."
|
||||
tagAnimation="slide-up"
|
||||
background={{ variant: "radial-gradient" }}
|
||||
useInvertedBackground={false}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/ksar-ait-ben-haddou-surrounded-by-greenery-sunlight-blue-sky-morocco_181624-14248.jpg"
|
||||
imageAlt="Atlas Mountains and Tameslouht landscape in Marrakech"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AVSnAj9MzGOThMDqSI4t30YgeB/uploaded-1772848005706-orzy7qlk.jpg"
|
||||
imageAlt="Atlas Mountains and Tamelslohte landscape in Marrakech"
|
||||
mediaAnimation="opacity"
|
||||
mediaPosition="right"
|
||||
inputPlaceholder="your@email.com"
|
||||
buttonText="Join Our Community"
|
||||
termsText="By booking, you support CJF Morocco programs serving local youth. 5% of proceeds go directly to community development."
|
||||
termsText="By booking, you support CJF Morocco programs serving local youth. 8% of proceeds go directly to community development."
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterBaseCard
|
||||
logoText="Houda's Skateboarding"
|
||||
logoText="Ready to book your new experience "
|
||||
columns={[
|
||||
{
|
||||
title: "Experience", items: [
|
||||
{
|
||||
label: "Book On Airbnb", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"},
|
||||
label: "Book On Airbnb", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"
|
||||
},
|
||||
{ label: "What You'll Learn", href: "#features" },
|
||||
{ label: "Pricing", href: "#pricing" },
|
||||
{ label: "FAQ", href: "#faq" },
|
||||
@@ -189,7 +209,7 @@ export default function LandingPage() {
|
||||
{
|
||||
title: "About", items: [
|
||||
{ label: "Meet Houda", href: "#about" },
|
||||
{ label: "Location: Tameslouht", href: "#contact" },
|
||||
{ label: "Location: Tameslouht, Marrakech, Morocco", href: "https://share.google/mFIsJmMkYH3jZ7wkk" },
|
||||
{ label: "CJF Morocco Support", href: "#" },
|
||||
{ label: "Community Impact", href: "#" },
|
||||
],
|
||||
@@ -208,11 +228,12 @@ export default function LandingPage() {
|
||||
{ label: "Facebook", href: "https://facebook.com" },
|
||||
{ label: "TikTok", href: "https://tiktok.com" },
|
||||
{
|
||||
label: "Message on Airbnb", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"},
|
||||
label: "Message on Airbnb", href: "https://www.airbnb.com/experiences/6774219?viralityEntryPoint=2&s=76"
|
||||
},
|
||||
],
|
||||
},
|
||||
]}
|
||||
copyrightText="© 2025 Houda's Skateboarding Experience. 5% of proceeds support CJF Morocco community programs."
|
||||
copyrightText="Let's Learn Together and Try a New Experience Where You Learn Not Just Skating But Confidence — © 2025 Houda's Skateboarding Experience in Tameslouht, Marrakech, Morocco. 8% of proceeds support CJF Morocco community programs."
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
|
||||
Reference in New Issue
Block a user