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.