A clean, minimalist, and responsive personal portfolio website built with React, TypeScript, and Vite.
- 🎨 Modern and minimalist design
- 📱 Fully responsive for all screen sizes
- ⚡ Fast and optimized loading
- 🔤 SEO friendly with meta tags
- 🔄 Customizable content via configuration file
- ✨ Smooth animations and transitions using Framer Motion
- 📊 Section for skills, experience, and projects
- Node.js (v14 or later)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/portfolio-website.git
cd portfolio-website- Install dependencies:
npm install
# or
yarn- Start the development server:
npm run dev
# or
yarn dev- Open http://localhost:5173 to view the website in your browser.
The portfolio content is managed through a JSON configuration file located at public/portfolioConfig.json. This approach allows for easy content updates without touching the codebase. The configuration includes:
- Personal information (name, title, location, intro, etc.)
- Experience history (positions, companies, descriptions)
- Skills (categorized technical skills)
- Projects (descriptions, technologies, links)
- Social links (GitHub, LinkedIn, email, etc.)
- SEO metadata (title, description, keywords)
To modify the content:
- Edit the
public/portfolioConfig.jsonfile - The changes will be automatically reflected in the website
- No code changes required for content updates
You can also customize the location of the configuration file by setting the CONFIG_URL environment variable during build:
# Use a custom configuration file URL
CONFIG_URL=https://example.com/my-config.json npm run buildIf not specified, it will use the default /portfolioConfig.json path.
Example configuration structure:
{
"personalInfo": {
"name": "Your Name",
"title": "Your Title",
"location": "Your Location",
"intro": "Your introduction",
"jobStatus": "Current job status",
"resumeUrl": "URL to your resume",
"calendarUrl": "URL to your calendar"
},
"socialLinks": [
{
"name": "GitHub",
"url": "https://github.com/yourusername",
"icon": "github"
}
]
// ... other sections
}- Global styles are defined in
src/styles/global.scss - Variables (colors, spacing, etc.) are defined in
src/styles/variables.scss - Each component has its own SCSS file for component-specific styling
Replace the placeholder file at public/piyush_aryan_resume.pdf with your actual resume.
To create a production build:
npm run build
# or
yarn buildThe build output will be in the dist folder.
MIT © Piyush Aryan