From e1aeb9ccd7cd5cfb424b171e6d0e5e5f76398988 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 23 Dec 2025 13:29:45 +0100 Subject: [PATCH] feat: add Xpeditis logo as favicon and improve metadata MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- apps/frontend/.env.example | 3 +++ apps/frontend/app/icon.svg | 5 +++++ apps/frontend/app/layout.tsx | 36 ++++++++++++++++++++++++++++-- apps/frontend/public/manifest.json | 17 ++++++++++++++ 4 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 apps/frontend/app/icon.svg create mode 100644 apps/frontend/public/manifest.json diff --git a/apps/frontend/.env.example b/apps/frontend/.env.example index de0295e..c820058 100644 --- a/apps/frontend/.env.example +++ b/apps/frontend/.env.example @@ -2,6 +2,9 @@ NEXT_PUBLIC_API_URL=http://localhost:4000 NEXT_PUBLIC_API_PREFIX=api/v1 +# App Configuration +NEXT_PUBLIC_APP_URL=http://localhost:3000 + # Authentication NEXTAUTH_URL=http://localhost:3000 NEXTAUTH_SECRET=your-nextauth-secret-change-this-in-production diff --git a/apps/frontend/app/icon.svg b/apps/frontend/app/icon.svg new file mode 100644 index 0000000..0b97ef9 --- /dev/null +++ b/apps/frontend/app/icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/apps/frontend/app/layout.tsx b/apps/frontend/app/layout.tsx index 9fde1ea..20f8a86 100644 --- a/apps/frontend/app/layout.tsx +++ b/apps/frontend/app/layout.tsx @@ -4,8 +4,40 @@ import { manrope, montserrat } from '@/lib/fonts'; import { Providers } from '@/components/providers'; export const metadata: Metadata = { - title: 'Xpeditis - Maritime Freight Booking Platform', - description: 'Search, compare, and book maritime freight in real-time', + 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 }) { diff --git a/apps/frontend/public/manifest.json b/apps/frontend/public/manifest.json new file mode 100644 index 0000000..62fe932 --- /dev/null +++ b/apps/frontend/public/manifest.json @@ -0,0 +1,17 @@ +{ + "name": "Xpeditis - Maritime Freight Booking", + "short_name": "Xpeditis", + "description": "Search, compare, and book maritime freight in real-time", + "start_url": "/", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#10183A", + "icons": [ + { + "src": "/assets/logos/xpeditis-icon.svg", + "sizes": "any", + "type": "image/svg+xml", + "purpose": "any maskable" + } + ] +}