Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
55 lines
1.5 KiB
TypeScript
55 lines
1.5 KiB
TypeScript
import { businessConfig, socialProfiles } from "@/lib/seo-config"
|
|
|
|
/**
|
|
* Organization Schema Component
|
|
* Implements comprehensive Organization schema for SEO
|
|
* Helps establish business authority and trustworthiness (E-E-A-T)
|
|
*/
|
|
export function OrganizationSchema() {
|
|
const structuredData = {
|
|
"@context": "https://schema.org",
|
|
"@type": "Organization",
|
|
name: businessConfig.name,
|
|
legalName: businessConfig.legalName,
|
|
url: businessConfig.website,
|
|
logo: {
|
|
"@type": "ImageObject",
|
|
url: `${businessConfig.website}/rmv-logo.png`,
|
|
},
|
|
image: {
|
|
"@type": "ImageObject",
|
|
url: `${businessConfig.website}/images/rocky-mountain-vending-service-area-926x1024.webp`,
|
|
},
|
|
description: businessConfig.description,
|
|
foundingDate: businessConfig.openingDate,
|
|
contactPoint: {
|
|
"@type": "ContactPoint",
|
|
telephone: businessConfig.phoneFormatted,
|
|
contactType: "Customer Service",
|
|
areaServed: "US",
|
|
availableLanguage: ["English", "Spanish"],
|
|
},
|
|
sameAs: [
|
|
socialProfiles.linkedin,
|
|
socialProfiles.facebook,
|
|
socialProfiles.youtube,
|
|
socialProfiles.twitter,
|
|
],
|
|
address: {
|
|
"@type": "PostalAddress",
|
|
addressCountry: "US",
|
|
addressRegion: "UT",
|
|
// Service business - no specific street address
|
|
},
|
|
}
|
|
|
|
return (
|
|
<script
|
|
type="application/ld+json"
|
|
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
|
|
/>
|
|
)
|
|
}
|
|
|
|
|
|
|