feat: SEO metadata, JSON-LD, OG image, sitemap, a11y focus styles

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.
This commit is contained in:
erikgh committed 2026-07-21 11:50:24 -06:00
1 parent e98adf5b08
commit 556f716583
8 files changed
+52 -11

No files matched your search

+20 -9
View File
@@ -6,16 +6,27 @@ import { Disciplinas } from '@/components/sections/Disciplinas';
import { Estratega } from '@/components/sections/Estratega';
import { Cierre } from '@/components/sections/Cierre';
const jsonLd = {
'@context': 'https://schema.org',
'@type': 'ProfessionalService',
name: 'creeer',
description: 'Estratega de crecimiento. Claridad estratégica para empresarios con tracción.',
url: 'https://creeer.com',
};
export default function Home() {
return (
<main>
<Hero variant="editorial" /> {/* dueña puede cambiar a "hormozi" */}
<FraseAncla />
<ParaQuien />
<Mecanismo />
<Disciplinas />
<Estratega />
<Cierre />
</main>
<>
<script type="application/ld+json" dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }} />
<main>
<Hero variant="editorial" /> {/* dueña puede cambiar a "hormozi" */}
<FraseAncla />
<ParaQuien />
<Mecanismo />
<Disciplinas />
<Estratega />
<Cierre />
</main>
</>
);
}