import type { Metadata } from "next"; import type { ReactNode } from "react"; const BASE_URL = process.env.PUBLIC_DOMAIN ? `https://${process.env.PUBLIC_DOMAIN}` : "https://openmonetis.com"; const TITLE = "OpenMonetis | Finanças pessoais self-hosted e open source"; const DESCRIPTION = "Aplicativo self-hosted de finanças pessoais. Controle lançamentos, cartões, orçamentos e categorias com total privacidade. Open source e gratuito."; export const metadata: Metadata = { metadataBase: new URL(BASE_URL), title: TITLE, description: DESCRIPTION, keywords: [ "finanças pessoais", "controle financeiro", "self-hosted", "open source", "gestão financeira", "orçamento pessoal", "lançamentos financeiros", "cartão de crédito", "planejamento financeiro", ], alternates: { canonical: "/", }, openGraph: { type: "website", locale: "pt_BR", url: "/", siteName: "OpenMonetis", title: TITLE, description: DESCRIPTION, images: [ { url: "/dashboard-preview-light.webp", width: 1920, height: 1080, alt: "OpenMonetis — Dashboard de finanças pessoais", }, ], }, twitter: { card: "summary_large_image", title: TITLE, description: DESCRIPTION, images: ["/dashboard-preview-light.webp"], }, robots: { index: true, follow: true, googleBot: { index: true, follow: true, "max-image-preview": "large", "max-snippet": -1, }, }, }; export default function LandingLayout({ children }: { children: ReactNode }) { const jsonLd = { "@context": "https://schema.org", "@type": "SoftwareApplication", name: "OpenMonetis", applicationCategory: "FinanceApplication", operatingSystem: "Web", offers: { "@type": "Offer", price: "0", priceCurrency: "BRL", }, description: DESCRIPTION, url: BASE_URL, isAccessibleForFree: true, author: { "@type": "Organization", name: "OpenMonetis", url: BASE_URL, }, }; return ( <>