xpeditis2.0/apps/frontend/app/layout.tsx
David e1aeb9ccd7 feat: add Xpeditis logo as favicon and improve metadata
Add site favicon and enhance metadata for better SEO and social sharing:
- Added app/icon.svg from existing logo for browser tab icon
- Enhanced metadata with Open Graph and Twitter card support
- Created manifest.json for PWA support
- Added metadataBase for proper social image resolution
- Updated .env.example with NEXT_PUBLIC_APP_URL

The Xpeditis logo (blue background with cyan X) now appears in:
- Browser tabs (favicon)
- Bookmarks
- Mobile home screen (PWA)
- Social media shares (Open Graph)

Configuration for different environments:
- Dev: NEXT_PUBLIC_APP_URL=http://localhost:3000
- Preprod: NEXT_PUBLIC_APP_URL=https://app.preprod.xpeditis.com
- Prod: NEXT_PUBLIC_APP_URL=https://xpeditis.com

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-23 13:29:45 +01:00

52 lines
1.5 KiB
TypeScript

import type { Metadata } from 'next';
import './globals.css';
import { manrope, montserrat } from '@/lib/fonts';
import { Providers } from '@/components/providers';
export const metadata: Metadata = {
metadataBase: new URL(process.env.NEXT_PUBLIC_APP_URL || 'https://xpeditis.com'),
title: {
default: 'Xpeditis - Maritime Freight Booking Platform',
template: '%s | Xpeditis',
},
description: 'Search, compare, and book maritime freight in real-time. Get instant LCL shipping quotes and manage your shipments with Xpeditis.',
icons: {
icon: '/icon.svg',
shortcut: '/icon.svg',
apple: '/icon.svg',
},
manifest: '/manifest.json',
openGraph: {
type: 'website',
locale: 'fr_FR',
url: 'https://xpeditis.com',
siteName: 'Xpeditis',
title: 'Xpeditis - Maritime Freight Booking Platform',
description: 'Search, compare, and book maritime freight in real-time',
images: [
{
url: '/assets/logos/xpeditis-icon.svg',
width: 48,
height: 48,
alt: 'Xpeditis Logo',
},
],
},
twitter: {
card: 'summary',
title: 'Xpeditis - Maritime Freight Booking Platform',
description: 'Search, compare, and book maritime freight in real-time',
images: ['/assets/logos/xpeditis-icon.svg'],
},
};
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="fr" className={`${manrope.variable} ${montserrat.variable}`}>
<body className="font-body">
<Providers>{children}</Providers>
</body>
</html>
);
}