From 9f2f9bd18d7f89001e19b6e91a12d35e07312dae Mon Sep 17 00:00:00 2001 From: Ghost69 Date: Sun, 5 Jul 2026 14:57:33 +0100 Subject: [PATCH] Update portfolio UI and content --- app/layout.tsx | 45 ++++- app/page.tsx | 11 +- components/layout/Navbar.tsx | 17 ++ components/sections/About.tsx | 27 +-- components/sections/Experience.tsx | 69 ++++++++ components/sections/Hero.tsx | 75 ++++---- components/ui/CommandPalette.tsx | 276 +++++++++++++++++++++++++++++ components/ui/GitHubStats.tsx | 117 ++++++++++++ components/ui/ProjectCard.tsx | 20 +++ components/ui/ScrollProgress.tsx | 21 +++ components/ui/Terminal.tsx | 132 ++++++++++++++ lib/data.ts | 82 ++++++++- lib/types.ts | 12 ++ 13 files changed, 843 insertions(+), 61 deletions(-) create mode 100644 components/sections/Experience.tsx create mode 100644 components/ui/CommandPalette.tsx create mode 100644 components/ui/GitHubStats.tsx create mode 100644 components/ui/ScrollProgress.tsx create mode 100644 components/ui/Terminal.tsx diff --git a/app/layout.tsx b/app/layout.tsx index b6d4ad8..710a8b9 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -25,15 +25,22 @@ const instrumentSerif = Instrument_Serif({ }); export const metadata: Metadata = { - title: "Abass Ibrahim | IT Specialist & Full-Stack Developer", + metadataBase: new URL("https://abassibrahim.xyz"), + title: "Abass Ibrahim | Full-Stack Developer & IT Specialist", description: - "Portfolio of Abass Ibrahim — IT Support Specialist, Full-Stack Developer, UI/UX Designer, and Web3 Builder based in Lagos, Nigeria.", + "Portfolio of Abass Ibrahim — Full-Stack Developer, IT Support Specialist, and Web3 builder in Lagos, Nigeria. Seven shipped production apps across fintech, e-commerce, edtech, and HR.", + applicationName: "Abass Ibrahim — Portfolio", + authors: [{ name: "Abass Ibrahim", url: "https://abassibrahim.xyz" }], + creator: "Abass Ibrahim", + alternates: { canonical: "https://abassibrahim.xyz" }, keywords: [ "Abass Ibrahim", "Lagos developer", "Nigeria web developer", "IT Support Oil Gas", "Full-Stack React Next.js", + "Next.js TypeScript developer", + "Web3 builder Nigeria", ], openGraph: { title: "Abass Ibrahim | IT Specialist & Full-Stack Developer", @@ -56,6 +63,36 @@ export const viewport: Viewport = { initialScale: 1, }; +const personJsonLd = { + "@context": "https://schema.org", + "@type": "Person", + name: "Abass Ibrahim", + jobTitle: "Full-Stack Developer & IT Support Specialist", + url: "https://abassibrahim.xyz", + email: "mailto:abassibrahim591@gmail.com", + address: { + "@type": "PostalAddress", + addressLocality: "Lagos", + addressCountry: "NG", + }, + sameAs: [ + "https://github.com/Lingz450", + "https://www.linkedin.com/in/abass-ibrahim-devv", + "https://hashnode.com/@ghost69", + "https://medium.com/@Ghost69", + ], + knowsAbout: [ + "React", + "Next.js", + "TypeScript", + "Tailwind CSS", + "Node.js", + "PostgreSQL", + "Web3", + "IT Support", + ], +}; + export default function RootLayout({ children, }: Readonly<{ children: React.ReactNode }>) { @@ -64,6 +101,10 @@ export default function RootLayout({ +