A modern, responsive portfolio website built with Next.js 15, TypeScript, Tailwind CSS, shadcn/ui, and Framer Motion.
- Modern Tech Stack: Next.js 15, TypeScript, Tailwind CSS
- Beautiful UI: shadcn/ui components with custom animations
- Dark/Light Theme: System-aware theme switching
- Responsive Design: Mobile-first responsive layout
- GitHub Integration: Live repository data from GitHub API
- Performance Optimized: Skeleton loading states and optimized images
- Smooth Animations: Framer Motion powered interactions
- Framework: Next.js 15
- Language: TypeScript
- Styling: Tailwind CSS
- UI Components: shadcn/ui
- Animations: Framer Motion
- Theme: next-themes
- Icons: Lucide React
- Node.js 18+
- npm or yarn
-
Clone the repository
git clone https://github.com/armand0e/portfolio.git cd portfolio
-
Install dependencies
npm install
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
-
Build the Docker image
docker build -t arman-portfolio .
-
Run the container
docker run -p 3000:3000 arman-portfolio
-
Start with Docker Compose
docker-compose up -d
-
Stop the container
docker-compose down
For production deployment, you can:
- Deploy to any cloud provider (AWS, Google Cloud, Azure)
- Use container services (AWS ECS, Google Cloud Run, Azure Container Instances)
- Deploy to Kubernetes using the provided Docker image
- Use Docker on VPS with reverse proxy (nginx)
Visit the live portfolio: https://www.armanrafiee.com
portfolio/
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── about/ # About page
│ │ ├── contact/ # Contact page
│ │ ├── experience/ # Experience page
│ │ ├── projects/ # Projects page
│ │ ├── globals.css # Global styles
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Home page
│ └── components/ # Reusable components
│ ├── ui/ # shadcn/ui components
│ ├── navigation.tsx # Navigation component
│ └── theme-provider.tsx
├── public/ # Static assets
├── Dockerfile # Docker configuration
├── docker-compose.yml # Docker Compose setup
└── next.config.js # Next.js configuration
To customize this portfolio for your own use:
- Update personal information in
resume.md
- Replace portrait image in
public/Portrait.jpg
- Update GitHub username in
src/app/projects/page.tsx
- Modify contact information throughout the components
- Customize colors and styling in
tailwind.config.js
npm install -g vercel
vercel --prod
npm run build
# Upload `out` folder to Netlify
docker build -t portfolio .
docker run -p 3000:3000 portfolio
This project is open source and available under the MIT License.
Created by Arman Rafiee - University of Florida student studying Microbiology & Cell Science with a minor in Computer Science. Passionate full-stack developer with experience in modern web technologies.
- GitHub: @armand0e
- LinkedIn: Arman Rafiee
- Email: arman.rafiee99@gmail.com
⭐ If you found this portfolio template helpful, please give it a star!