Complete Next.js website with Docker containerization: - Next.js 14 with TypeScript and Tailwind CSS - Responsive design with modern UI components - Hero section, features showcase, testimonials - FAQ section with comprehensive content - Contact forms and newsletter signup - Docker production build with Nginx - Health checks and monitoring support - SEO optimization and performance tuning Ready for integration as git submodule in main CHORUS project. Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
138 lines
4.4 KiB
TypeScript
138 lines
4.4 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import { ConfigProvider } from 'antd';
|
|
import { chorusTheme } from '@/theme/chorusTheme';
|
|
import './globals.css';
|
|
|
|
export const metadata: Metadata = {
|
|
title: {
|
|
default: 'CHORUS Services - Distributed AI Orchestration Platform',
|
|
template: '%s | CHORUS Services',
|
|
},
|
|
description: 'Harness the power of distributed AI with CHORUS Services. Orchestrate WHOOSH, BZZZ, SLURP, and COOEE components for scalable, intelligent automation.',
|
|
keywords: [
|
|
'AI orchestration',
|
|
'distributed AI',
|
|
'automation platform',
|
|
'CHORUS',
|
|
'WHOOSH',
|
|
'BZZZ',
|
|
'SLURP',
|
|
'COOEE',
|
|
'artificial intelligence',
|
|
'machine learning',
|
|
'workflow automation',
|
|
],
|
|
authors: [{ name: 'CHORUS Services Team' }],
|
|
creator: 'CHORUS Services',
|
|
publisher: 'CHORUS Services',
|
|
openGraph: {
|
|
type: 'website',
|
|
locale: 'en_US',
|
|
url: 'https://chorus.services',
|
|
siteName: 'CHORUS Services',
|
|
title: 'CHORUS Services - Distributed AI Orchestration Platform',
|
|
description: 'Harness the power of distributed AI with CHORUS Services. Orchestrate intelligent components for scalable automation.',
|
|
images: [
|
|
{
|
|
url: '/og-image.png',
|
|
width: 1200,
|
|
height: 630,
|
|
alt: 'CHORUS Services Platform',
|
|
},
|
|
],
|
|
},
|
|
twitter: {
|
|
card: 'summary_large_image',
|
|
title: 'CHORUS Services - Distributed AI Orchestration',
|
|
description: 'Harness the power of distributed AI with CHORUS Services.',
|
|
images: ['/og-image.png'],
|
|
},
|
|
robots: {
|
|
index: true,
|
|
follow: true,
|
|
googleBot: {
|
|
index: true,
|
|
follow: true,
|
|
'max-video-preview': -1,
|
|
'max-image-preview': 'large',
|
|
'max-snippet': -1,
|
|
},
|
|
},
|
|
verification: {
|
|
google: '', // Add Google Search Console verification code
|
|
yandex: '', // Add Yandex verification code if needed
|
|
},
|
|
icons: {
|
|
icon: '/favicon.ico',
|
|
shortcut: '/favicon-16x16.png',
|
|
apple: '/apple-touch-icon.png',
|
|
},
|
|
manifest: '/manifest.json',
|
|
viewport: {
|
|
width: 'device-width',
|
|
initialScale: 1,
|
|
maximumScale: 5,
|
|
},
|
|
themeColor: [
|
|
{ media: '(prefers-color-scheme: light)', color: '#007aff' },
|
|
{ media: '(prefers-color-scheme: dark)', color: '#1a1a1a' },
|
|
],
|
|
};
|
|
|
|
interface RootLayoutProps {
|
|
children: React.ReactNode;
|
|
}
|
|
|
|
export default function RootLayout({ children }: RootLayoutProps) {
|
|
return (
|
|
<html lang="en" className="dark" suppressHydrationWarning>
|
|
<head>
|
|
{/* Preconnect to external domains for performance */}
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossOrigin="" />
|
|
|
|
{/* DNS prefetch for better performance */}
|
|
<link rel="dns-prefetch" href="https://fonts.googleapis.com" />
|
|
|
|
{/* Viewport meta tag for proper mobile rendering */}
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
|
|
|
{/* Additional meta tags for better SEO and user experience */}
|
|
<meta name="format-detection" content="telephone=no" />
|
|
<meta name="mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
|
|
{/* Structured data for better SEO */}
|
|
<script
|
|
type="application/ld+json"
|
|
dangerouslySetInnerHTML={{
|
|
__html: JSON.stringify({
|
|
'@context': 'https://schema.org',
|
|
'@type': 'Organization',
|
|
name: 'CHORUS Services',
|
|
description: 'Distributed AI Orchestration Platform',
|
|
url: 'https://chorus.services',
|
|
logo: 'https://chorus.services/logo.png',
|
|
sameAs: [
|
|
// Add social media links when available
|
|
],
|
|
contactPoint: {
|
|
'@type': 'ContactPoint',
|
|
contactType: 'Customer Service',
|
|
url: 'https://chorus.services/contact',
|
|
},
|
|
}),
|
|
}}
|
|
/>
|
|
</head>
|
|
<body className="antialiased bg-chorus-charcoal text-white">
|
|
<ConfigProvider theme={chorusTheme}>
|
|
<div className="min-h-screen flex flex-col">
|
|
{children}
|
|
</div>
|
|
</ConfigProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
} |