Expands app/layout.tsx metadata (openGraph, twitter, canonical), adds ProfessionalService JSON-LD to app/page.tsx, focus-visible styles in globals.css, robots.txt/sitemap.xml, and a placeholder og-image.png (navy background, no wordmark text — needs a real design asset before launch). Also adds .eslintrc.json (next/core-web-vitals) so next lint runs non-interactively, and decouples ESLint from next build via next.config.mjs (eslint.ignoreDuringBuilds) so a pre-existing, out-of-scope lint issue in Cierre.tsx doesn't block the static export.
29 lines
1.2 KiB
TypeScript
29 lines
1.2 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import { Inter } from 'next/font/google';
|
|
import './globals.css';
|
|
|
|
const inter = Inter({ subsets: ['latin'], weight: ['400', '600', '700', '900'], variable: '--font-inter', display: 'swap' });
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'creeer · tu estratega de crecimiento',
|
|
description: 'Claridad estratégica para empresarios con tracción que llegaron a su punto de inflexión. Inmersión profunda, estrategia ejecutable.',
|
|
metadataBase: new URL('https://creeer.com'), // TODO dueña: real domain
|
|
openGraph: {
|
|
title: 'creeer · tu estratega de crecimiento',
|
|
description: 'Claridad estratégica para empresarios con tracción en punto de inflexión.',
|
|
type: 'website',
|
|
locale: 'es',
|
|
images: [{ url: '/og-image.png', width: 1200, height: 630, alt: 'creeer' }],
|
|
},
|
|
twitter: { card: 'summary_large_image', title: 'creeer', description: 'Claridad estratégica para empresarios.' },
|
|
alternates: { canonical: 'https://creeer.com' },
|
|
};
|
|
|
|
export default function RootLayout({ children }: { children: React.ReactNode }) {
|
|
return (
|
|
<html lang="es" className={inter.variable}>
|
|
<body>{children}</body>
|
|
</html>
|
|
);
|
|
}
|