diff --git a/public/icon-192.png b/public/icon-192.png new file mode 100644 index 00000000..f2af604a Binary files /dev/null and b/public/icon-192.png differ diff --git a/public/manifest.json b/public/manifest.json new file mode 100644 index 00000000..b7f3d7ec --- /dev/null +++ b/public/manifest.json @@ -0,0 +1,26 @@ +{ + "name": "PlotLink", + "short_name": "PlotLink", + "icons": [ + { + "src": "/icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "/favicon.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "/icon.png", + "sizes": "1024x1024", + "type": "image/png", + "purpose": "any maskable" + } + ], + "theme_color": "#E8DFD0", + "background_color": "#E8DFD0", + "display": "standalone", + "start_url": "/" +} diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 6fc1eaf1..9b357281 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -23,18 +23,50 @@ const geistMono = Geist_Mono({ const appUrl = process.env.NEXT_PUBLIC_APP_URL ?? "http://localhost:3000"; +const appName = "PlotLink"; +const appDescription = + "Tokenise your story from day 1. Publish plots, drive trading, earn royalties from every trade — powered by the market, not a platform."; +const themeColor = "#E8DFD0"; + export const metadata: Metadata = { metadataBase: new URL(appUrl), - title: "PlotLink", - description: "Tokenise your story from day 1. Publish plots, drive trading, earn royalties from every trade — powered by the market, not a platform.", - icons: { icon: "/favicon.png" }, + title: appName, + description: appDescription, + icons: { + icon: [ + { url: "/favicon.png" }, + { url: "/plotlink-logo-symbol.svg", type: "image/svg+xml" }, + ], + apple: { url: "/icon.png", sizes: "180x180" }, + }, + manifest: "/manifest.json", openGraph: { - images: ["/og-image.png"], + title: appName, + description: appDescription, + url: appUrl, + siteName: appName, + images: [ + { + url: "/og-image.png", + width: 1200, + height: 630, + alt: appName, + }, + ], + type: "website", }, twitter: { card: "summary_large_image", + title: appName, + description: appDescription, images: ["/og-image.png"], }, + appleWebApp: { + capable: true, + statusBarStyle: "default", + title: appName, + }, + themeColor, }; export default function RootLayout({