How kab5der4/portfolio-website works
Purpose and runtime
A single-page personal portfolio built with Next.js, React, and TypeScript. It presents professional profile content, skills, experience, projects, contact details, and a downloadable resume. It runs as a Next.js application locally and is deployed to Vercel per the README.
Primary application entry points:
• src/app/layout.tsx defines the shared document/application shell.
• src/app/page.tsx assembles the portfolio page.
• src/app/globals.css provides global visual styling.
App composition and navigation
The root page is a vertically composed landing page rather than a multi-route product application. src/app/page.tsx coordinates the major content sections and shared chrome:
• src/components/layout/Navbar.tsx provides top-level in-page navigation.
• src/components/layout/Footer.tsx closes the page and likely contains secondary links/contact information.
• Section anchors and navigation create the primary control flow: visitor selects a navbar link, then moves within the same document.
Content sections
Portfolio content is separated into independently maintainable React section components:
• src/components/sections/HeroSection.tsx
• src/components/sections/AboutSection.tsx
• src/components/sections/ExperienceSection.tsx
• src/components/sections/ProjectsSection.tsx
• src/components/sections/SkillsSection.tsx
• src/components/sections/ContactSection.tsx
These components are the core presentation boundary: portfolio data and markup remain localized by page domain while page.tsx controls section ordering.
Design-system primitives
Reusable UI components centralize the glassmorphism visual language and decorative elements:
• src/components/ui/GlassCard.tsx is the likely shared frosted-glass content container.
• src/components/ui/GeometricSeparator.tsx supplies repeated visual separation between page areas.
• src/components/ui/Grainient.tsx and src/components/ui/Grainient.css implement the textured/gradient background effect.
This boundary prevents repeated styling structures across content sections and supports consistent responsive rendering.
Animation flow
Framer Motion is the declared animation runtime. Reveal and micro-interaction behavior is encapsulated rather than embedded across every section:
• src/components/ui/ScrollReveal.tsx provides viewport/scroll-triggered entrance behavior.
• src/components/ui/Grainient.tsx likely owns animated background rendering.
• Section components under src/components/sections/ consume these presentational capabilities.
The main performance-sensitive boundary is client-side animation and viewport interaction versus static portfolio content rendered through Next.js.
Assets and external boundaries
The only explicit downloadable asset is:
• public/resume.pdf
Next.js serves this file directly from the public asset path for the “Download Resume” action. No backend, database, authentication system, API integration, or third-party business service is represented in the repository tree. Deployment infrastructure is Vercel, while local development uses the Node.js/npm and Next.js toolchain defined by package.json.
Main entry points: page.tsx Portfolio page · Navbar.tsx In-page navigation · HeroSection.tsx Hero · ProjectsSection.tsx Projects
Components 20
Next.js app
- Next.js runtime · Serves the single-page portfolio.
package.json - Application shell
src/app/layout.tsx - Portfolio page · Controls shared chrome and section order.
src/app/page.tsx - Global styles
src/app/globals.css - In-page navigation · Navigates to section anchors in the same document.
src/components/layout/Navbar.tsx - Page footer
src/components/layout/Footer.tsx
Portfolio sections
Visual primitives
- Glass card · Shared frosted-glass content container.
src/components/ui/GlassCard.tsx - Geometric separator
src/components/ui/GeometricSeparator.tsx - Scroll reveal · Encapsulates viewport-triggered entrance effects.
src/components/ui/ScrollReveal.tsx - Animated background · Textured gradient background rendering.
src/components/ui/Grainient.tsx - Background effect styles
src/components/ui/Grainient.css
Other components
- Portfolio visitor
- Vercel · Deploys the Next.js application.
- Downloadable resume · Served directly by Next.js from the public path.
public/resume.pdf
Connections 27
- Portfolio visitor → Vercel: visits
- Vercel → Next.js runtime: hosts
- Next.js runtime → Application shell: renders
- Application shell → Global styles: loads
- Application shell → Portfolio page: wraps
- Portfolio page → In-page navigation: composes
- Portfolio page → Page footer: composes
- Portfolio page → Hero: orders
- Portfolio page → About: orders
- Portfolio page → Experience: orders
- Portfolio page → Projects: orders
- Portfolio page → Skills: orders
- Portfolio page → Contact: orders
- In-page navigation → Hero: anchor navigation
- In-page navigation → About: anchor navigation
- In-page navigation → Experience: anchor navigation
- In-page navigation → Projects: anchor navigation
- In-page navigation → Skills: anchor navigation
- In-page navigation → Contact: anchor navigation
- Hero → Downloadable resume: downloads
- Experience → Glass card: uses
- Projects → Glass card: uses
- Hero → Scroll reveal: reveals with
- Projects → Scroll reveal: reveals with
- Portfolio page → Animated background: renders background
- Animated background → Background effect styles: styles
- Portfolio page → Geometric separator: separates areas