Refonte du portfolio : profil GitHub, CV, SEO, export statique
- Accueil façon profil GitHub (bio, homelab, projets épinglés, parcours)
avec fond dégradé et panneaux liquid glass
- /cv : consultable en ligne (thème sombre), imprimable en PDF propre
(thème clair, 1 page) ; numéro de téléphone non scrapable
- Pages d'erreur 404 / 500 / global-error animées (GSAP)
- Métadonnées : Open Graph, Twitter, JSON-LD Person, sitemap, robots
(allowlist Google + bots d'aperçu, reste bloqué)
- Images OG et favicon en PNG statiques
- Contenu du CV : Saint-Paul, langues, expériences détaillées
- Export statique (output: export) + DEPLOY.md
- Retrait de l'indicateur de dev Next.js et des fichiers du starter
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3hzMzvei419MwkKFZkvMX
2026-09-08 19:33:47 +04:00
|
|
|
import type { Metadata, Viewport } from "next";
|
2026-09-08 08:34:42 +04:00
|
|
|
import "./globals.css";
|
Refonte du portfolio : profil GitHub, CV, SEO, export statique
- Accueil façon profil GitHub (bio, homelab, projets épinglés, parcours)
avec fond dégradé et panneaux liquid glass
- /cv : consultable en ligne (thème sombre), imprimable en PDF propre
(thème clair, 1 page) ; numéro de téléphone non scrapable
- Pages d'erreur 404 / 500 / global-error animées (GSAP)
- Métadonnées : Open Graph, Twitter, JSON-LD Person, sitemap, robots
(allowlist Google + bots d'aperçu, reste bloqué)
- Images OG et favicon en PNG statiques
- Contenu du CV : Saint-Paul, langues, expériences détaillées
- Export statique (output: export) + DEPLOY.md
- Retrait de l'indicateur de dev Next.js et des fichiers du starter
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3hzMzvei419MwkKFZkvMX
2026-09-08 19:33:47 +04:00
|
|
|
import Intro from "./intro";
|
2026-09-08 08:34:42 +04:00
|
|
|
|
Refonte du portfolio : profil GitHub, CV, SEO, export statique
- Accueil façon profil GitHub (bio, homelab, projets épinglés, parcours)
avec fond dégradé et panneaux liquid glass
- /cv : consultable en ligne (thème sombre), imprimable en PDF propre
(thème clair, 1 page) ; numéro de téléphone non scrapable
- Pages d'erreur 404 / 500 / global-error animées (GSAP)
- Métadonnées : Open Graph, Twitter, JSON-LD Person, sitemap, robots
(allowlist Google + bots d'aperçu, reste bloqué)
- Images OG et favicon en PNG statiques
- Contenu du CV : Saint-Paul, langues, expériences détaillées
- Export statique (output: export) + DEPLOY.md
- Retrait de l'indicateur de dev Next.js et des fichiers du starter
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3hzMzvei419MwkKFZkvMX
2026-09-08 19:33:47 +04:00
|
|
|
const SITE = "https://francktwl.fr";
|
|
|
|
|
const NAME = "Franck Thiaw-Woaye-Lapierre";
|
|
|
|
|
const TAGLINE = "Développeur web & DevOps à La Réunion";
|
|
|
|
|
const DESCRIPTION =
|
|
|
|
|
"Franck Thiaw-Woaye-Lapierre — étudiant en L3 informatique à La Réunion. " +
|
|
|
|
|
"Développement web (Laravel, React) et DevOps : serveurs Linux, Docker, auto-hébergement.";
|
2026-09-08 08:34:42 +04:00
|
|
|
|
|
|
|
|
export const metadata: Metadata = {
|
Refonte du portfolio : profil GitHub, CV, SEO, export statique
- Accueil façon profil GitHub (bio, homelab, projets épinglés, parcours)
avec fond dégradé et panneaux liquid glass
- /cv : consultable en ligne (thème sombre), imprimable en PDF propre
(thème clair, 1 page) ; numéro de téléphone non scrapable
- Pages d'erreur 404 / 500 / global-error animées (GSAP)
- Métadonnées : Open Graph, Twitter, JSON-LD Person, sitemap, robots
(allowlist Google + bots d'aperçu, reste bloqué)
- Images OG et favicon en PNG statiques
- Contenu du CV : Saint-Paul, langues, expériences détaillées
- Export statique (output: export) + DEPLOY.md
- Retrait de l'indicateur de dev Next.js et des fichiers du starter
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3hzMzvei419MwkKFZkvMX
2026-09-08 19:33:47 +04:00
|
|
|
metadataBase: new URL(SITE),
|
|
|
|
|
title: {
|
|
|
|
|
default: `${NAME} — ${TAGLINE}`,
|
|
|
|
|
template: `%s · ${NAME}`,
|
|
|
|
|
},
|
|
|
|
|
description: DESCRIPTION,
|
|
|
|
|
applicationName: `${NAME} · Portfolio`,
|
|
|
|
|
authors: [{ name: NAME, url: SITE }],
|
|
|
|
|
creator: NAME,
|
|
|
|
|
publisher: NAME,
|
|
|
|
|
keywords: [
|
|
|
|
|
NAME,
|
|
|
|
|
"Franck Thiaw Woaye Lapierre",
|
|
|
|
|
"francktwl",
|
|
|
|
|
"développeur La Réunion",
|
|
|
|
|
"développeur web Réunion",
|
|
|
|
|
"DevOps La Réunion",
|
|
|
|
|
"DevOps Réunion 974",
|
|
|
|
|
"administrateur système Réunion",
|
|
|
|
|
"développeur Laravel Réunion",
|
|
|
|
|
"auto-hébergement",
|
|
|
|
|
"Linux",
|
|
|
|
|
"Docker",
|
|
|
|
|
"portfolio développeur Réunion",
|
|
|
|
|
],
|
|
|
|
|
category: "technology",
|
|
|
|
|
alternates: { canonical: "/" },
|
|
|
|
|
openGraph: {
|
|
|
|
|
type: "profile",
|
|
|
|
|
firstName: "Franck",
|
|
|
|
|
lastName: "Thiaw-Woaye-Lapierre",
|
|
|
|
|
username: "francktwl",
|
|
|
|
|
url: SITE,
|
|
|
|
|
siteName: `${NAME} — Portfolio`,
|
|
|
|
|
title: `${NAME} — ${TAGLINE}`,
|
|
|
|
|
description: DESCRIPTION,
|
|
|
|
|
locale: "fr_FR",
|
|
|
|
|
},
|
|
|
|
|
twitter: {
|
|
|
|
|
card: "summary_large_image",
|
|
|
|
|
title: `${NAME} — ${TAGLINE}`,
|
|
|
|
|
description: DESCRIPTION,
|
|
|
|
|
},
|
|
|
|
|
robots: {
|
|
|
|
|
index: true,
|
|
|
|
|
follow: true,
|
|
|
|
|
googleBot: {
|
|
|
|
|
index: true,
|
|
|
|
|
follow: true,
|
|
|
|
|
"max-image-preview": "large",
|
|
|
|
|
"max-snippet": -1,
|
|
|
|
|
"max-video-preview": -1,
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const viewport: Viewport = {
|
|
|
|
|
themeColor: "#0d1117",
|
2026-09-08 08:34:42 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default function RootLayout({ children }: LayoutProps<"/">) {
|
|
|
|
|
return (
|
Refonte du portfolio : profil GitHub, CV, SEO, export statique
- Accueil façon profil GitHub (bio, homelab, projets épinglés, parcours)
avec fond dégradé et panneaux liquid glass
- /cv : consultable en ligne (thème sombre), imprimable en PDF propre
(thème clair, 1 page) ; numéro de téléphone non scrapable
- Pages d'erreur 404 / 500 / global-error animées (GSAP)
- Métadonnées : Open Graph, Twitter, JSON-LD Person, sitemap, robots
(allowlist Google + bots d'aperçu, reste bloqué)
- Images OG et favicon en PNG statiques
- Contenu du CV : Saint-Paul, langues, expériences détaillées
- Export statique (output: export) + DEPLOY.md
- Retrait de l'indicateur de dev Next.js et des fichiers du starter
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T3hzMzvei419MwkKFZkvMX
2026-09-08 19:33:47 +04:00
|
|
|
<html lang="fr" className="h-full">
|
|
|
|
|
<body className="min-h-full antialiased">
|
|
|
|
|
{children}
|
|
|
|
|
<Intro />
|
|
|
|
|
<noscript>
|
|
|
|
|
<style>{`[data-intro-overlay]{display:none!important}`}</style>
|
|
|
|
|
</noscript>
|
|
|
|
|
</body>
|
2026-09-08 08:34:42 +04:00
|
|
|
</html>
|
|
|
|
|
);
|
|
|
|
|
}
|