This is a dynamic personal portfolio built with Next.js, Tailwind CSS, Framer Motion, and React Icons. The contents of the portfolio are fully customizable via the /data
folder, and colors can be modified using CSS variables defined in global.css
.
- Dynamic content management via JSON files in
/data
- Smooth animations powered by Framer Motion
- Icons from React Icons
- Responsive and customizable design with Tailwind CSS
- Light/Dark mode support (via CSS variables)
- Simple and modular structure for easy customization
To get started with this portfolio, clone the repository and install the necessary dependencies:
git clone https://github.com/mohsenfaraj/portfolio.git
cd portfolio
npm install
Make sure to install pnpm if you prefer to use it:
pnpm install
To run the development server:
npm run dev
# or
pnpm run dev
Then, open http://localhost:3000 in your browser to see the website in action.
All portfolio content is dynamically managed through the /data
folder. Modify the JSON files in that folder to update sections like "About Me", "Skills", and "Experience".
For example, to update the skills section:
- Navigate to
/data/timeline.yml
- Add or edit entries in the array, using the following structure:
- date: 'the date'
title: title
body: body
Colors are managed through CSS variables defined in global.css
. You can customize primary, secondary, and background colors by editing the following variables:
:root {
--background: #ffffff;
--foreground: #353535;
--primary: #e46400;
--secondary: #e41700;
--bars: #ddd;
}
By default, the portfolio includes support for light and dark modes. you can use dark:
prefix in tailwind for defining dark mode colors. You can further adjust light and dark mode styles in global.css
:
[data-theme='dark'] {
--background: #121212;
--foreground: #ccc;
--primary: #e46400;
--secondary: #e41700;
--bars: #232323;
}
npm run dev
orpnpm run dev
: Starts the development server.npm run build
orpnpm run build
: Builds the application for production.npm start
: Runs the production build.
This portfolio can be easily deployed on platforms like Vercel or Netlify.
To deploy with Vercel:
- Push your code to GitHub.
- Go to vercel.com, import the repository, and deploy.
This project is licensed under the MIT License.