supermemory/apps/web/app/layout.tsx
MaheshtheDev 5258cb74c8 chore(web): reduce the app to a redirect shell, drop the browser extension (#1651)
chore(web): reduce the app to a redirect shell, drop the browser extension

app.supermemory.ai now forwards everything to the console: plugin, OAuth and invite paths get an immediate 308 with the query intact, everything else shows a short notice first. Removes the browser extension workspace.

chore(web): give the moved notice a proper design

Hostnames become the headline, one primary action, a draining line for the countdown, DM Sans and the dot-grid backdrop from the brand.

chore(docs): point docs and README at the console, drop stale sections

Docs and both READMEs now link to console.supermemory.ai for API keys. Removed the company-brain docs tab with a redirect, and trimmed the README app section.

chore(web): give the redirect five seconds
2026-09-07 19:56:46 +00:00

50 lines
1.3 KiB
TypeScript

import type { Metadata, Viewport } from "next"
import { DM_Sans } from "next/font/google"
import "./globals.css"
const font = DM_Sans({
subsets: ["latin"],
variable: "--font-sans",
weight: ["400", "500", "600"],
})
export const metadata: Metadata = {
metadataBase: new URL("https://app.supermemory.ai"),
title: "Supermemory has moved",
description: "Supermemory now lives at console.supermemory.ai",
icons: {
icon: [
{ url: "/favicon.ico", sizes: "any" },
{ url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" },
{ url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" },
],
apple: [
{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" },
],
},
manifest: "/site.webmanifest",
openGraph: {
title: "Supermemory has moved",
description: "Supermemory now lives at console.supermemory.ai",
images: [{ url: "/OG.png", width: 1800, height: 945, alt: "Supermemory" }],
siteName: "Supermemory",
type: "website",
},
robots: { index: false, follow: true },
}
export const viewport: Viewport = {
width: "device-width",
initialScale: 1,
themeColor: "#05080d",
}
export default function RootLayout({
children,
}: Readonly<{ children: React.ReactNode }>) {
return (
<html className={font.variable} lang="en">
<body>{children}</body>
</html>
)
}