Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a6f56780d0 | |||
| 91dc5bc122 | |||
| b839fcb4f0 | |||
| 08e3732907 | |||
| 7c7b0002e4 | |||
| 8e5516c610 |
@@ -54,7 +54,8 @@ export default function BlogPage() {
|
|||||||
const url = `${apiUrl}/posts/${projectId}?status=published`;
|
const url = `${apiUrl}/posts/${projectId}?status=published`;
|
||||||
const response = await fetch(url, {
|
const response = await fetch(url, {
|
||||||
method: "GET", headers: {
|
method: "GET", headers: {
|
||||||
"Content-Type": "application/json"},
|
"Content-Type": "application/json"
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
@@ -161,4 +162,4 @@ export default function BlogPage() {
|
|||||||
</ReactLenis>
|
</ReactLenis>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,46 +1,22 @@
|
|||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import { Manrope } from "next/font/google";
|
import { Manrope } from "next/font/google";
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
|
||||||
import Tag from "@/tag/Tag";
|
|
||||||
|
|
||||||
const manrope = Manrope({
|
const manrope = Manrope({
|
||||||
variable: "--font-manrope", subsets: ["latin"],
|
variable: "--font-manrope", subsets: ["latin"],
|
||||||
});
|
});
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Personal Trainer Toronto | FitPro Certified Fitness Coaching", description: "Professional personal training in Toronto with 8+ years experience. Strength training, nutrition coaching, and online fitness programs for real results.", keywords: "personal trainer Toronto, fitness coaching, strength training, nutrition planning, certified personal trainer", metadataBase: new URL("https://fitpro-toronto.com"),
|
title: "FitPro Toronto - Personal Training", description: "Professional personal training in Toronto tailored to your unique goals."};
|
||||||
alternates: {
|
|
||||||
canonical: "https://fitpro-toronto.com"
|
|
||||||
},
|
|
||||||
openGraph: {
|
|
||||||
title: "Personal Trainer Toronto | FitPro Certified Fitness Coaching", description: "Transform your fitness with expert personal training in Toronto. Customized programs for strength, cardio, and nutrition.", url: "https://fitpro-toronto.com", siteName: "FitPro Toronto", type: "website", images: [
|
|
||||||
{
|
|
||||||
url: "https://fitpro-toronto.com/og-image.jpg", alt: "FitPro Toronto Personal Training"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
twitter: {
|
|
||||||
card: "summary_large_image", title: "Personal Trainer Toronto | FitPro Certified Fitness Coaching", description: "Professional fitness coaching and personalized training programs in Toronto.", images: ["https://fitpro-toronto.com/twitter-image.jpg"]
|
|
||||||
},
|
|
||||||
robots: {
|
|
||||||
index: true,
|
|
||||||
follow: true
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export default function RootLayout({
|
export default function RootLayout({
|
||||||
children,
|
children,
|
||||||
}: Readonly<{
|
}: {
|
||||||
children: React.ReactNode;
|
children: React.ReactNode;
|
||||||
}>) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<html lang="en" suppressHydrationWarning>
|
<html lang="en">
|
||||||
<ServiceWrapper>
|
<body className={manrope.variable}>{children}
|
||||||
<body className={manrope.variable}>
|
|
||||||
<Tag />
|
|
||||||
{children}
|
|
||||||
|
|
||||||
<script
|
<script
|
||||||
dangerouslySetInnerHTML={{
|
dangerouslySetInnerHTML={{
|
||||||
__html: `
|
__html: `
|
||||||
@@ -1259,7 +1235,6 @@ export default function RootLayout({
|
|||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</body>
|
</body>
|
||||||
</ServiceWrapper>
|
|
||||||
</html>
|
</html>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
"use client"
|
"use client";
|
||||||
|
|
||||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||||
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
import NavbarLayoutFloatingOverlay from '@/components/navbar/NavbarLayoutFloatingOverlay/NavbarLayoutFloatingOverlay';
|
||||||
@@ -72,7 +72,22 @@ export default function LandingPage() {
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="about" data-section="about">
|
<div id="logo-ribbon" data-section="logo-ribbon" className="py-12 px-4 bg-background">
|
||||||
|
<div className="w-content-width mx-auto">
|
||||||
|
<div className="flex flex-col items-center justify-center gap-8">
|
||||||
|
<h3 className="text-center text-lg font-semibold text-foreground">Trusted by Leading Fitness Brands</h3>
|
||||||
|
<div className="flex flex-wrap justify-center items-center gap-8 md:gap-12">
|
||||||
|
<div className="flex items-center justify-center h-12 min-w-32 text-foreground/60 font-medium text-sm">Gold's Gym Partners</div>
|
||||||
|
<div className="flex items-center justify-center h-12 min-w-32 text-foreground/60 font-medium text-sm">Fitness Canada Certified</div>
|
||||||
|
<div className="flex items-center justify-center h-12 min-w-32 text-foreground/60 font-medium text-sm">NASM Certified</div>
|
||||||
|
<div className="flex items-center justify-center h-12 min-w-32 text-foreground/60 font-medium text-sm">ACE Certified</div>
|
||||||
|
<div className="flex items-center justify-center h-12 min-w-32 text-foreground/60 font-medium text-sm">ISSA Certified</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="about" data-section="about" className="py-8">
|
||||||
<TestimonialAboutCard
|
<TestimonialAboutCard
|
||||||
tag="Meet Your Coach"
|
tag="Meet Your Coach"
|
||||||
tagIcon={Award}
|
tagIcon={Award}
|
||||||
@@ -123,6 +138,9 @@ export default function LandingPage() {
|
|||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
useInvertedBackground="invertDefault"
|
useInvertedBackground="invertDefault"
|
||||||
animationType="slide-up"
|
animationType="slide-up"
|
||||||
|
buttons={[
|
||||||
|
{ text: "Book Your Free Consultation", href: "contact" }
|
||||||
|
]}
|
||||||
metrics={[
|
metrics={[
|
||||||
{
|
{
|
||||||
id: "1", value: "500+", title: "Clients Trained", description: "Successful transformations across Toronto", imageSrc: "https://img.b2bpic.net/free-photo/closeup-businessman-using-laptop-lunch-break_637285-8692.jpg", imageAlt: "Community of trained fitness clients"
|
id: "1", value: "500+", title: "Clients Trained", description: "Successful transformations across Toronto", imageSrc: "https://img.b2bpic.net/free-photo/closeup-businessman-using-laptop-lunch-break_637285-8692.jpg", imageAlt: "Community of trained fitness clients"
|
||||||
@@ -287,4 +305,4 @@ export default function LandingPage() {
|
|||||||
</div>
|
</div>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user