My modern, NextJS, TailwindCSS, shadcn portfolio website.
- Framework: Next.js 15 (App Router)
- Language: TypeScript
- Styling: TailwindCSS
- UI Components: shadcn/ui
- Internationalization: next-intl
- Theme Management: next-themes
- Icons: Lucide React + Simple Icons
- Font: Geist (Variable fonts)
- Deployment: Vercel
├── app/ # Next.js App Router
│ ├── globals.css # Global styles and CSS variables
│ ├── layout.tsx # Root layout with providers
│ └── page.tsx # Home page
├── components/ # Reusable UI components
│ ├── ui/ # shadcn/ui base components
│ ├── about.tsx # About section with hover cards
│ ├── experience.tsx # Work experience with tabs
│ ├── footer.tsx # Footer with rich text links
│ ├── header.tsx # Navigation with social links
│ ├── hero.tsx # Hero section with live clock
│ ├── language-switcher.tsx # i18n language toggle
│ ├── live-clock.tsx # Real-time Montreal clock
│ └── mode-toggle.tsx # Dark/light theme toggle
├── i18n/ # Internationalization config
│ └── request.ts # next-intl configuration
├── lib/ # Utility functions
│ └── utils.ts # shadcn utilities
├── messages/ # Translation files
│ ├── en.json # English translations
│ └── fr.json # French translations
└── middleware.ts # Locale detection middleware
- Node.js 18+
- npm, yarn, pnpm, or bun
- Clone the repository
git clone https://github.com/RamziBach/Portfolio.git
cd Portfolio- Install dependencies
npm install
# or
yarn install
# or
pnpm install- Run the development server
npm run dev
# or
yarn dev
# or
pnpm dev- Open your browser Navigate to http://localhost:3000
This project is licensed under the MIT License - see the LICENSE file for details.