Skip to content

abdelazizBi/portfolio

Repository files navigation

Abdelaziz Biad — Portfolio

Personal portfolio site for Abdelaziz Biad, Senior Full-Stack Engineer.

Built with Next.js 16, TypeScript, Tailwind CSS v4, Framer Motion, and shadcn/ui (base-nova style).

Live Demo

View the live portfolio

Preview

Portfolio preview


Stack

Layer Tech
Framework Next.js 16.2.6 (App Router, Turbopack) — pinned exact
Language TypeScript ^5 (strict)
Styling Tailwind CSS ^4
Components shadcn (base-nova style) on top of @base-ui/react ^1.5.0
Animations Framer Motion ^12
Theme next-themes ^0.4 (dark-first)
Contact Email-first mailto: flow, plus Cal.com and LinkedIn
Fonts Inter (body), Sora (headings)
Icons lucide-react, react-icons/si, react-icons/fa
Deployment Vercel

Next.js is pinned to exact 16.2.6 (no caret). Pinned to avoid canary breakage — bump intentionally. The @base-ui/react primitives that ship inside shadcn components are sensitive to minor Next/ React version shifts, so we only upgrade after a manual smoke test.


Local Setup

# Install dependencies
npm install

# Start dev server
npm run dev
# → http://localhost:3000

# Type check
npx tsc --noEmit

# Production build
npm run build

Project Structure

src/
├── app/
│   ├── layout.tsx        # Root layout: fonts, ThemeProvider, metadata
│   ├── page.tsx          # Home — assembles all sections
│   ├── globals.css       # Tailwind v4 theme: amber/gold accent, dark base
│   ├── sitemap.ts        # Dynamic sitemap
│   └── robots.ts         # robots.txt
├── components/
│   ├── ui/               # shadcn primitives (Button, Badge, Input, etc.)
│   ├── Navbar.tsx        # Sticky nav with mobile sheet drawer
│   ├── Footer.tsx        # Footer with social links
│   ├── ThemeToggle.tsx   # Dark/light toggle
│   ├── ThemeProvider.tsx # next-themes wrapper
│   ├── AnimatedSection.tsx # Reusable scroll-triggered fade-up
│   └── sections/
│       ├── Hero.tsx       # Full-viewport hero with animated orbs
│       ├── About.tsx      # Bio + animated stats
│       ├── Experience.tsx # Expandable timeline
│       ├── Projects.tsx   # Bento grid
│       ├── Skills.tsx     # Staggered skill cards
│       └── Contact.tsx    # Email-first contact, calendar, and social links
└── data/
    ├── experience.ts     # Role[], bullets, tech tags
    ├── projects.ts       # Project[], descriptions, links
    └── skills.ts         # SkillGroup[], icons, skill chips

Customisation

Content — All copy lives in src/data/. Edit experience.ts, projects.ts, and skills.ts — components read from these directly, no hardcoded strings in JSX.

Accent color — Change --amber in src/app/globals.css (both :root and .dark blocks). The value is oklch; use a converter like https://oklch.com to find your colour.

Résumé download — The current file is public/Abdelaziz_BIAD_Resume.pdf.

Contact — The email channel opens the visitor's mail client with a direct mailto: link. The section also offers Cal.com and LinkedIn as alternate channels, so it always has a working user-facing state without runtime configuration.

Availability togglesrc/data/status.ts exposes OPEN_TO_WORK and the labels used by both Hero badge and Footer. Flip the flag to hide both at once.


Environment Variables

No environment variables are required to build or deploy the portfolio.


Deploy to Vercel

  1. Push the repo to GitHub
  2. Import at https://vercel.com/new — framework preset auto-detected as Next.js
  3. No build configuration needed
  4. Deploy

All pages are statically pre-rendered (/, /sitemap.xml, /robots.txt) and deploy to the edge instantly.

Selected work

AI-powered real-estate analysis product for evaluating listings, pricing context, comparable properties and potential risks.

Live demo

AI document intelligence workspace for structured analysis, risk detection, document comparison and document Q&A.

Live demo

Luxury Arabic fragrance experience focused on visual storytelling, interaction design and frontend craftsmanship.

Live demo

About

Personal portfolio showcasing selected full-stack, SaaS and AI-enabled product work built with Next.js and TypeScript.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors