A modern, responsive portfolio website built with React and optimized for performance and SEO.
- Clean, minimalist design inspired by xprilion.com
- Fully responsive layout for all devices
- Custom CSS with smooth animations and transitions
- Professional typography and color scheme
- Interactive hover effects and visual feedback
- Optimized Vite build configuration
- Code splitting and lazy loading
- Image optimization and caching
- Minified CSS and JavaScript
- GPU-accelerated animations
- Efficient bundle sizes
- Comprehensive meta tags and Open Graph data
- Structured data (JSON-LD) for search engines
- XML sitemap and robots.txt
- Semantic HTML with proper ARIA labels
- Fast loading times for better search rankings
- Web app manifest for mobile installation
- Responsive design principles
- Offline-ready architecture
- App-like experience on mobile devices
- Frontend: React 18, React Router DOM
- Build Tool: Vite
- Styling: Custom CSS with performance optimizations
- Deployment: Netlify/Vercel ready
- SEO: Meta tags, structured data, sitemap
- Node.js 18+
- npm or yarn
# Clone the repository
git clone https://github.com/ashupal86/portfolio.git
cd portfolio
# Install dependencies
npm install
# Start development server
npm run dev# Run development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview- Fork this repository
- Connect your GitHub account to Netlify
- Import your repository
- Deploy automatically with the included
netlify.tomlconfiguration
- Install Vercel CLI:
npm i -g vercel - Run
vercelin the project directory - Follow the prompts
- Uses the included
vercel.jsonconfiguration
# Build the project
npm run build
# Upload the 'dist' folder to your hosting providerportfolio/
βββ public/
β βββ robots.txt # SEO crawler instructions
β βββ sitemap.xml # Site structure for search engines
β βββ site.webmanifest # PWA manifest
β βββ _redirects # Netlify routing configuration
β βββ [favicon files] # Various favicon sizes
βββ src/
β βββ components/ # React components
β β βββ About.jsx
β β βββ Contact.jsx
β β βββ Experience.jsx
β β βββ Hero.jsx
β β βββ Navbar.jsx
β β βββ Projects.jsx
β β βββ Skills.jsx
β βββ App.jsx # Main application component
β βββ main.jsx # Application entry point
β βββ index.css # Custom CSS styles
βββ netlify.toml # Netlify deployment configuration
βββ vercel.json # Vercel deployment configuration
βββ vite.config.js # Vite build configuration
βββ package.json
- Add your profile photo as
profile-photo.jpgin thepublicfolder - The image will automatically appear in the hero section
- Recommended size: 400x400px or larger, square aspect ratio
- Personal Info: Edit the content in each component file
- Projects: Update the projects array in
Projects.jsx - Skills: Modify the skills categories in
Skills.jsx - Experience: Edit the experience data in
Experience.jsx
- Update the domain in
index.html,sitemap.xml, and deployment configs - Modify meta descriptions and titles as needed
- Add your social media handles to the structured data
- Tree Shaking: Removes unused code
- Code Splitting: Separates vendor and app bundles
- Minification: Reduces file sizes
- Asset Optimization: Optimizes images and fonts
- Static Assets: 1-year cache for images, CSS, JS
- HTML: No cache for immediate updates
- Manifest: 1-day cache for PWA updates
- Preconnect: DNS prefetch for external domains
- Resource Hints: Prefetch critical assets
- Font Loading: Optimized font display strategy
- Build optimizations and code splitting
- Terser configuration for minification
- Asset organization and naming
- Deployment configurations
- Header security settings
- Caching policies
- Redirect rules for SPA routing
- Title, description, keywords
- Open Graph for social media
- Twitter Card data
- Mobile viewport settings
- Person schema with contact info
- Education and work experience
- Skills and technologies
- Social media profiles
- XML sitemap with proper priorities
- Robots.txt for search engine guidance
- Semantic HTML structure
- ARIA labels for accessibility
- Images: Optimize all images before adding them
- Content: Keep content concise and relevant
- Dependencies: Regularly update packages
- Monitoring: Use tools like Lighthouse for performance audits
For questions or issues:
- Email: palbro86@gmail.com
- GitHub: ashupal86
- LinkedIn: ashish-pal-5725a6257
This project is open source and available under the MIT License.