Live Demo: MohsenFaraj.ir
This is a dynamic personal portfolio blog built with Next.js, Tailwind CSS and Framer Motion. The contents of the portfolio is fully customizable via the /data folder or you could use DecapCMS at /admin route.
this project is configured to work with cloudflare workers.
colors can be modified using CSS variables defined in global.css.
- Dynamic content management via Decap CMS
/adminroute or/datafolder - Free hosting with deploying to cloudflare workers
- Smooth animations powered by Framer Motion
- Dynamic icon loading from Lucide React and SimpleIcons
- Responsive and customizable design with Tailwind CSS
- Light/Dark mode support (via CSS variables)
- sending comments using github issues thanks to utterances
- Simple and modular structure for easy customization
- proper typography and code highlighting for blog pages
To get started with this portfolio, clone the repository and install the necessary dependencies:
git clone https://github.com/mohsenfaraj/portfolio.git
cd portfolio
pnpm installI use pnpm package manager (faster, better handling of dependencies). for installing pnpm:
npm install -g pnpmTo run the development server:
pnpm run devThen, 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 yaml 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: bodyColors are managed through CSS variables defined in /app/css/global.css. You can customize primary, secondary, and background colors by editing the following variables:
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;
}pnpm run dev: Starts the development server.pnpm run build: Builds the application for production.npm start: Runs the production build.pnpm format: Formats the package with prettier
This portfolio can be easily deployed on Cloudflare. you can deploy to other services like Netlify or Vercel but you should configure DecapCMS.
This project is licensed under the MIT License.