Merge version_3 into main #4

Merged
bender merged 2 commits from version_3 into main 2026-03-05 16:45:44 +00:00
2 changed files with 20 additions and 20 deletions

View File

@@ -27,12 +27,12 @@ export const metadata: Metadata = {
openGraph: {
title: "Professional Landscaping in Exeter, NH | Yeti Landcare", description: "Trusted local landscaping company. Free estimates. Punctual, professional, fairly priced.", url: "https://yetilandcare.com", siteName: "Yeti Landcare", type: "website", images: [
{
url: "https://instagram.com/yetilandcare", alt: "Yeti Landcare - Professional Landscaping"
url: "https://yetilandcare.com/images/og-image.jpg", alt: "Yeti Landcare - Professional Landscaping"
},
],
},
twitter: {
card: "summary_large_image", title: "Professional Landscaping in Exeter, NH | Yeti Landcare", description: "Reliable, professional landscaping services. Fair pricing. Free estimates.", images: ["https://instagram.com/yetilandcare"],
card: "summary_large_image", title: "Professional Landscaping in Exeter, NH | Yeti Landcare", description: "Reliable, professional landscaping services. Fair pricing. Free estimates.", images: ["https://yetilandcare.com/images/twitter-image.jpg"],
},
};
@@ -1420,4 +1420,4 @@ export default function RootLayout({
</ServiceWrapper>
</html>
);
}
}

View File

@@ -52,19 +52,19 @@ export default function LandingPage() {
background={{ variant: "plain" }}
mediaItems={[
{
imageSrc: "https://instagram.com/yetilandcare?_wi=1", imageAlt: "Beautiful landscaped property"
imageSrc: "/images/landscaping-portfolio-1.jpg", imageAlt: "Beautiful landscaped property"
},
{
imageSrc: "https://instagram.com/yetilandcare?_wi=2", imageAlt: "Professional lawn maintenance"
imageSrc: "/images/landscaping-portfolio-2.jpg", imageAlt: "Professional lawn maintenance"
},
{
imageSrc: "https://instagram.com/yetilandcare?_wi=3", imageAlt: "Landscape design expertise"
imageSrc: "/images/landscaping-portfolio-3.jpg", imageAlt: "Landscape design expertise"
},
{
imageSrc: "https://instagram.com/yetilandcare?_wi=4", imageAlt: "Complete property transformation"
imageSrc: "/images/landscaping-portfolio-4.jpg", imageAlt: "Complete property transformation"
},
{
imageSrc: "https://instagram.com/yetilandcare?_wi=5", imageAlt: "Precision hedge and shrub work"
imageSrc: "/images/landscaping-portfolio-5.jpg", imageAlt: "Precision hedge and shrub work"
},
]}
mediaAnimation="blur-reveal"
@@ -139,16 +139,16 @@ export default function LandingPage() {
animationType="slide-up"
products={[
{
id: "1", name: "Lawn Maintenance", price: "Starting at $150/month", imageSrc: "https://instagram.com/yetilandcare?_wi=6", imageAlt: "Regular lawn maintenance service"
id: "1", name: "Lawn Maintenance", price: "Starting at $150/month", imageSrc: "/images/service-lawn-maintenance.jpg", imageAlt: "Regular lawn maintenance service"
},
{
id: "2", name: "Landscape Design & Installation", price: "Custom Quote", imageSrc: "https://instagram.com/yetilandcare?_wi=7", imageAlt: "Professional landscape design service"
id: "2", name: "Landscape Design & Installation", price: "Custom Quote", imageSrc: "/images/service-landscape-design.jpg", imageAlt: "Professional landscape design service"
},
{
id: "3", name: "Property Cleanup & Overgrowth Removal", price: "Custom Quote", imageSrc: "https://instagram.com/yetilandcare?_wi=8", imageAlt: "Property cleanup and restoration service"
id: "3", name: "Property Cleanup & Overgrowth Removal", price: "Custom Quote", imageSrc: "/images/service-property-cleanup.jpg", imageAlt: "Property cleanup and restoration service"
},
{
id: "4", name: "Hedge & Shrub Trimming", price: "Starting at $200/visit", imageSrc: "https://instagram.com/yetilandcare?_wi=9", imageAlt: "Professional hedge and shrub trimming"
id: "4", name: "Hedge & Shrub Trimming", price: "Starting at $200/visit", imageSrc: "/images/service-hedge-trimming.jpg", imageAlt: "Professional hedge and shrub trimming"
},
]}
gridVariant="two-columns-alternating-heights"
@@ -164,13 +164,13 @@ export default function LandingPage() {
animationType="slide-up"
metrics={[
{
id: "1", value: "Complete", title: "Property Transformation", description: "58-unit condominium complex fully landscaped and maintained", imageSrc: "https://instagram.com/yetilandcare?_wi=10", imageAlt: "Condominium landscape project"
id: "1", value: "Complete", title: "Property Transformation", description: "58-unit condominium complex fully landscaped and maintained", imageSrc: "/images/project-transformation-1.jpg", imageAlt: "Condominium landscape project"
},
{
id: "2", value: "Overgrown", title: "Property Restoration", description: "Overgrown yard cleared and transformed into usable space", imageSrc: "https://instagram.com/yetilandcare?_wi=11", imageAlt: "Overgrowth removal project"
id: "2", value: "Overgrown", title: "Property Restoration", description: "Overgrown yard cleared and transformed into usable space", imageSrc: "/images/project-restoration-1.jpg", imageAlt: "Overgrowth removal project"
},
{
id: "3", value: "Design", title: "Residential Landscape", description: "Expert plant placement and comprehensive yard redesign", imageSrc: "https://instagram.com/yetilandcare?_wi=12", imageAlt: "Residential landscape design project"
id: "3", value: "Design", title: "Residential Landscape", description: "Expert plant placement and comprehensive yard redesign", imageSrc: "/images/project-residential-design-1.jpg", imageAlt: "Residential landscape design project"
},
]}
/>
@@ -183,16 +183,16 @@ export default function LandingPage() {
author="Sarah M., Homeowner & Condo Association Manager"
avatars={[
{
src: "https://instagram.com/yetilandcare", alt: "Sarah M."
src: "/images/avatar-sarah-m.jpg", alt: "Sarah M."
},
{
src: "https://instagram.com/yetilandcare", alt: "John P."
src: "/images/avatar-john-p.jpg", alt: "John P."
},
{
src: "https://instagram.com/yetilandcare", alt: "Emily R."
src: "/images/avatar-emily-r.jpg", alt: "Emily R."
},
{
src: "https://instagram.com/yetilandcare", alt: "Michael D."
src: "/images/avatar-michael-d.jpg", alt: "Michael D."
},
]}
ratingAnimation="slide-up"
@@ -259,4 +259,4 @@ export default function LandingPage() {
</div>
</ThemeProvider>
);
}
}