A modern, responsive portfolio website built with React and Vite, featuring smooth animations and an industrial/technical aesthetic.
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run build
# Preview production build
npm run preview- Push this project to a GitHub repository
- Go to vercel.com
- Click "New Project"
- Import your GitHub repository
- Vercel auto-detects Vite - just click "Deploy"
# Install Vercel CLI
npm install -g vercel
# Deploy (follow prompts)
vercel
# Deploy to production
vercel --prodThis portfolio includes several security measures:
-
Security Headers (via
vercel.json):X-Content-Type-Options: nosniffX-Frame-Options: DENY(prevents clickjacking)X-XSS-Protection: 1; mode=blockReferrer-Policy: strict-origin-when-cross-originPermissions-Policy(restricts camera, mic, location)Content-Security-Policy(restricts resource loading)
-
Form Security:
- Honeypot field to catch bots
- Input validation and sanitization
- Email regex validation
- Character limits on all fields
- No backend = no database vulnerabilities
-
General:
- No exposed API keys
- HTTPS enforced by Vercel
- Static site = minimal attack surface
portfolio/
├── public/
│ └── favicon.svg
├── src/
│ ├── App.jsx # Main React component
│ ├── App.css # All styles
│ └── main.jsx # Entry point
├── index.html # HTML template with meta tags
├── vercel.json # Vercel config with security headers
├── package.json
└── vite.config.js
Replace the placeholder in the Hero section:
// In App.jsx, find hero__image-placeholder and replace with:
<img
src="/your-photo.jpg"
alt="Raghvendra Singh"
className="hero__image"
/>Add your photo to the public folder.
All content is in App.jsx:
- Experience data in the
Experiencecomponent - Projects in the
Projectscomponent - Skills in the
Skillscomponent - Contact info in the
Contactcomponent
Edit CSS variables in App.css:
:root {
--color-accent: #00d4aa; /* Main accent color */
--color-bg-primary: #0a0f1a; /* Background */
/* ... other variables */
}- ✅ Fully responsive design
- ✅ Smooth scroll animations
- ✅ Typewriter effect
- ✅ Animated skill bars
- ✅ Timeline experience section
- ✅ Contact form (opens email client)
- ✅ SEO optimized
- ✅ Fast loading (Vite + code splitting)
- ✅ Accessible (ARIA labels, semantic HTML)
- React 18 - UI library
- Vite - Build tool
- Framer Motion - Animations
- Lucide React - Icons
- CSS3 - Styling (no frameworks)
MIT License - feel free to use this as a template for your own portfolio!
Built with ❤️ by Raghvendra Singh