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 --prodnpm run build
# Upload `out` folder to Netlifydocker build -t portfolio .
docker run -p 3000:3000 portfolioThis 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!