Merge version_2 into main #2
@@ -1,48 +1,22 @@
|
||||
import type { Metadata } from "next";
|
||||
import { Montserrat } from "next/font/google";
|
||||
import { Inter } from "next/font/google";
|
||||
import "./globals.css";
|
||||
import { ServiceWrapper } from "@/components/ServiceWrapper";
|
||||
import Tag from "@/tag/Tag";
|
||||
|
||||
const montserrat = Montserrat({
|
||||
variable: "--font-montserrat", subsets: ["latin"],
|
||||
});
|
||||
|
||||
const inter = Inter({
|
||||
variable: "--font-inter", subsets: ["latin"],
|
||||
});
|
||||
import type { Metadata } from 'next';
|
||||
import { Analytics } from '@vercel/analytics/react';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Full-Stack Developer Portfolio | Creative Problem Solver", description: "Explore my portfolio of web applications and digital products. Full-stack developer with 5+ years of experience in React, Node.js, and modern web technologies.", keywords: "developer, portfolio, web development, React, Node.js, full-stack, frontend, backend", robots: {
|
||||
index: true,
|
||||
follow: true,
|
||||
},
|
||||
openGraph: {
|
||||
title: "Full-Stack Developer Portfolio", description: "Discover my work building beautiful, responsive digital experiences with clean code and thoughtful design.", type: "website", siteName: "Portfolio", images: [
|
||||
{
|
||||
url: "http://img.b2bpic.net/free-photo/pretty-young-spanish-woman-posing-studia-looking-camera-smiling-wearing-grey-owersized-sweater_633478-2978.jpg", alt: "professional headshot studio lighting clean"},
|
||||
],
|
||||
},
|
||||
twitter: {
|
||||
card: "summary_large_image", title: "Full-Stack Developer Portfolio", description: "Explore projects in web development, design, and digital innovation.", images: ["http://img.b2bpic.net/free-photo/pretty-young-spanish-woman-posing-studia-looking-camera-smiling-wearing-grey-owersized-sweater_633478-2978.jpg"],
|
||||
},
|
||||
title: 'Portfolio',
|
||||
description: 'Full-Stack Developer & Creative Problem Solver',
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
}) {
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<ServiceWrapper>
|
||||
<body
|
||||
className={`${montserrat.variable} ${inter.variable} antialiased`}
|
||||
>
|
||||
<Tag />
|
||||
{children}
|
||||
|
||||
<html lang="en">
|
||||
<body>
|
||||
{children}
|
||||
<Analytics />
|
||||
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: `
|
||||
@@ -1410,7 +1384,6 @@ export default function RootLayout({
|
||||
}}
|
||||
/>
|
||||
</body>
|
||||
</ServiceWrapper>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -66,7 +66,8 @@ export default function LandingPage() {
|
||||
title="I'm a passionate developer with 5+ years of experience building web applications and digital products. My journey spans full-stack development, UI/UX design, and leading cross-functional teams. I believe in writing clean, maintainable code and creating intuitive user experiences that make a real impact."
|
||||
useInvertedBackground={true}
|
||||
buttons={[
|
||||
{ text: "Download Resume", href: "#" }
|
||||
{ text: "Get My Full Resume", href: "#" },
|
||||
{ text: "Chat About Opportunities", href: "#contact" }
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user