ppt-tool/frontend/app/layout.tsx
Vadym Samoilenko 1293826226 Rebrand Presenton to Oliver DeckForge, pre-configure models, use NanoBanana Pro
- Replace all Presenton branding with Oliver DeckForge (metadata, headers, titles, logos)
- Pass CAN_CHANGE_KEYS=false to web container so setup page redirects to /upload
- Switch image provider from gemini_flash to nanobanana_pro
- Update default fallback paths from /tmp/presenton to /tmp/deckforge
- Rename packages: presenton → oliver-deckforge, presenton-backend → oliver-deckforge-backend
- Remove external presenton.ai URLs from metadata (canonical, OG, Twitter)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 18:17:11 +00:00

74 lines
1.8 KiB
TypeScript

import type { Metadata } from "next";
import localFont from "next/font/local";
import { Roboto, Instrument_Sans } from "next/font/google";
import "./globals.css";
import { Providers } from "./providers";
import { I18nProvider } from "@/i18n/I18nProvider";
import { Toaster } from "@/components/ui/sonner";
const inter = localFont({
src: [
{
path: "./fonts/Inter.ttf",
weight: "400",
style: "normal",
},
],
variable: "--font-inter",
});
const instrument_sans = Instrument_Sans({
subsets: ["latin"],
weight: ["400"],
variable: "--font-instrument-sans",
});
const roboto = Roboto({
subsets: ["latin"],
weight: ["400"],
variable: "--font-roboto",
});
export const metadata: Metadata = {
title: "Oliver DeckForge — AI Presentation Generator",
description:
"Enterprise AI presentation generator with brand enforcement, multi-model support, and PPTX export.",
keywords: [
"AI presentation generator",
"enterprise presentations",
"brand enforcement",
"data visualization",
"presentation automation",
"professional slides",
],
openGraph: {
title: "Oliver DeckForge — AI Presentation Generator",
description:
"Enterprise AI presentation generator with brand enforcement, multi-model support, and PPTX export.",
siteName: "Oliver DeckForge",
type: "website",
locale: "en_US",
},
};
export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body
className={`${inter.variable} ${roboto.variable} ${instrument_sans.variable} antialiased`}
>
<Providers>
<I18nProvider>
{children}
</I18nProvider>
</Providers>
<Toaster position="top-center" />
</body>
</html>
);
}