diff --git a/public/images/logo.png b/public/images/logo.png new file mode 100644 index 0000000..f377900 Binary files /dev/null and b/public/images/logo.png differ diff --git a/src/app/layout.tsx b/src/app/layout.tsx index f3620ff..d099534 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -7,13 +7,35 @@ export const metadata: Metadata = { default: "Nocturne - Your Car Thing's Second Chapter", }, description: "When Spotify ended support, we created a new beginning. Join our growing community of users giving their Car Thing a second life with our free, open source solution.", + metadataBase: new URL('https://usenocturne.com/'), + alternates: { + canonical: '/', + }, + keywords: ['Nocturne', 'Car Thing', 'Car Thing Mod', 'Car Thing Hack', 'Spotify Car Thing', 'Spotify Car Thing Mod', 'Spotify Car Thing Hack'], + authors: [{ name: 'Nocturne Team' }], + creator: 'Nocturne Team', + publisher: 'Nocturne', + robots: { + index: true, + follow: true, + googleBot: { + index: true, + follow: true, + 'max-video-preview': -1, + 'max-image-preview': 'large', + 'max-snippet': -1, + }, + }, openGraph: { type: 'website', siteName: 'Nocturne', - url: 'https://nocturne-site.vercel.app/', + url: 'https://usenocturne.com/', + title: "Nocturne - Your Car Thing's Second Chapter", + description: "When Spotify ended support, we created a new beginning. Join our growing community of users giving their Car Thing a second life with our free, open source solution.", + locale: 'en_US', images: [ { - url: 'https://nocturne-site.vercel.app/images/og-image.png', + url: 'https://usenocturne.com/images/og-image.png', width: 1280, height: 640, alt: "Nocturne - Your Car Thing's Second Chapter", @@ -22,8 +44,98 @@ export const metadata: Metadata = { }, twitter: { card: 'summary_large_image', - images: ['https://nocturne-site.vercel.app/images/og-image.png'], + title: "Nocturne - Your Car Thing's Second Chapter", + description: "When Spotify ended support, we created a new beginning. Join our growing community of users giving their Car Thing a second life with our free, open source solution.", + images: ['https://usenocturne.com/images/og-image.png'], }, + other: { + 'wikidata': 'Q131441227', + 'wikipedia': 'https://wikipedia.org/wiki/Nocturne_(software)', + } +} + +const jsonLdSoftware = { + '@context': 'https://schema.org', + '@type': 'SoftwareApplication', + name: 'Nocturne', + description: "When Spotify ended support, we created a new beginning. Join our growing community of users giving their Car Thing a second life with our free, open source solution.", + applicationCategory: 'Multimedia', + operatingSystem: 'Cross-platform', + softwareVersion: '2.1.2', + downloadUrl: 'https://github.com/usenocturne/nocturne-image/releases/latest', + isAccessibleForFree: true, + installUrl: 'https://usenocturne.com/installation', + softwareRequirements: 'Spotify Car Thing, Raspberry Pi, Spotify Premium account', + sameAs: [ + 'https://wikipedia.org/wiki/Nocturne_(software)', + 'https://www.wikidata.org/wiki/Q131441227', + 'https://github.com/usenocturne', + ], + author: { + '@type': 'Organization', + name: 'Nocturne Team', + url: 'https://usenocturne.com/', + }, + license: 'https://opensource.org/licenses/MIT', +} + +const jsonLdOrganization = { + '@context': 'https://schema.org', + '@type': 'Organization', + name: 'Nocturne', + url: 'https://usenocturne.com', + logo: 'https://usenocturne.com/images/logo.png', + sameAs: [ + 'https://wikipedia.org/wiki/Nocturne_(software)', + 'https://www.wikidata.org/wiki/Q131441227', + 'https://github.com/usenocturne', + 'https://discord.gg/GTP9AawHPt' + ], + contactPoint: { + '@type': 'ContactPoint', + contactType: 'support', + url: 'https://discord.gg/GTP9AawHPt' + } +} + +const jsonLdWebSite = { + '@context': 'https://schema.org', + '@type': 'WebSite', + name: 'Nocturne', + url: 'https://usenocturne.com', + potentialAction: { + '@type': 'SearchAction', + target: { + '@type': 'EntryPoint', + urlTemplate: 'https://usenocturne.com/search?q={search_term_string}' + }, + 'query-input': 'required name=search_term_string' + } +} + +const jsonLdBreadcrumbList = { + '@context': 'https://schema.org', + '@type': 'BreadcrumbList', + itemListElement: [ + { + '@type': 'ListItem', + position: 1, + name: 'Home', + item: 'https://usenocturne.com' + }, + { + '@type': 'ListItem', + position: 2, + name: 'Installation', + item: 'https://usenocturne.com/installation' + }, + { + '@type': 'ListItem', + position: 3, + name: 'Support', + item: 'https://usenocturne.com/support' + } + ] } export default function RootLayout({ @@ -38,8 +150,24 @@ export default function RootLayout({ rel="stylesheet" href="https://api.fontshare.com/css?f%5B%5D=switzer@400,500,600,700&display=swap" /> +