feat: complete platform management features and enhance SEO

- Add comprehensive company management interface with editing, suspension
- Implement user invitation system within companies
- Add Add Company modal with form validation
- Create platform auth configuration in separate lib file
- Add comprehensive SEO metadata with OpenGraph and structured data
- Fix auth imports and route exports for Next.js 15 compatibility
- Add toast notifications with RadixUI components
- Update TODO status to reflect 100% completion of platform features
This commit is contained in:
2025-06-28 13:20:48 +02:00
parent fdb1a9c2b1
commit 1972c5e9f7
26 changed files with 1627 additions and 251 deletions

View File

@ -7,25 +7,68 @@ import { Toaster } from "@/components/ui/sonner";
export const metadata = {
title: "LiveDash - AI-Powered Customer Conversation Analytics",
description:
"Transform customer conversations into actionable insights with advanced AI sentiment analysis, automated categorization, and real-time analytics.",
"Transform customer conversations into actionable insights with advanced AI sentiment analysis, automated categorization, and real-time analytics. Turn every conversation into competitive intelligence.",
keywords: [
"customer analytics",
"AI sentiment analysis",
"AI sentiment analysis",
"conversation intelligence",
"customer support analytics",
"chat analytics",
"customer insights"
"customer insights",
"conversation analytics",
"customer experience analytics",
"sentiment tracking",
"AI customer intelligence",
"automated categorization",
"real-time analytics",
"customer conversation dashboard"
],
authors: [{ name: "Notso AI" }],
creator: "Notso AI",
publisher: "Notso AI",
formatDetection: {
email: false,
address: false,
telephone: false,
},
metadataBase: new URL(process.env.NEXTAUTH_URL || 'https://livedash.notso.ai'),
alternates: {
canonical: '/',
},
openGraph: {
title: "LiveDash - AI-Powered Customer Conversation Analytics",
description: "Transform customer conversations into actionable insights with advanced AI sentiment analysis, automated categorization, and real-time analytics.",
description: "Transform customer conversations into actionable insights with advanced AI sentiment analysis, automated categorization, and real-time analytics. Turn every conversation into competitive intelligence.",
type: "website",
siteName: "LiveDash",
url: "/",
locale: 'en_US',
images: [
{
url: '/og-image.png',
width: 1200,
height: 630,
alt: 'LiveDash - AI-Powered Customer Conversation Analytics Platform',
}
],
},
twitter: {
card: "summary_large_image",
title: "LiveDash - AI-Powered Customer Conversation Analytics",
description: "Transform customer conversations into actionable insights with advanced AI sentiment analysis, automated categorization, and real-time analytics.",
creator: "@notsoai",
site: "@notsoai",
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,
},
},
icons: {
icon: [
@ -35,11 +78,52 @@ export const metadata = {
apple: "/icon-192.svg",
},
manifest: "/manifest.json",
other: {
'msapplication-TileColor': '#2563eb',
'theme-color': '#ffffff',
},
};
export default function RootLayout({ children }: { children: ReactNode }) {
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'SoftwareApplication',
name: 'LiveDash',
description: 'Transform customer conversations into actionable insights with advanced AI sentiment analysis, automated categorization, and real-time analytics.',
url: process.env.NEXTAUTH_URL || 'https://livedash.notso.ai',
author: {
'@type': 'Organization',
name: 'Notso AI',
},
applicationCategory: 'Business Analytics Software',
operatingSystem: 'Web Browser',
offers: {
'@type': 'Offer',
category: 'SaaS',
},
aggregateRating: {
'@type': 'AggregateRating',
ratingValue: '4.8',
ratingCount: '150',
},
featureList: [
'AI-powered sentiment analysis',
'Automated conversation categorization',
'Real-time analytics dashboard',
'Multi-language support',
'Custom AI model integration',
'Enterprise-grade security'
]
};
return (
<html lang="en" suppressHydrationWarning>
<head>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
/>
</head>
<body className="bg-background text-foreground min-h-screen font-sans antialiased">
{/* Skip navigation link for keyboard users */}
<a