A stunning, interactive portfolio website with a dark theme, smooth animations, and professional email integration using Mailjet.
- Modern Dark Theme with gradient accents and glass morphism effects
- Responsive Design optimized for all devices (desktop, tablet, mobile)
- Smooth Scroll Animations with intersection observers
- Interactive Contact Form with Mailjet API integration
- Particle Animation System for dynamic background effects
- Professional Email Templates with HTML formatting
- Accessibility Features including screen reader support
- Performance Optimized with lazy loading and efficient animations
Visit the live portfolio: [Your Portfolio URL]
- Node.js (v16 or higher)
- npm or yarn package manager
- Mailjet account (free tier available)
git clone https://github.com/yourusername/portfolio.git
cd portfolionpm install-
Create a Mailjet Account
- Visit Mailjet.com
- Sign up for a free account
- Verify your email address
-
Get API Credentials
- Go to Mailjet Account Settings
- Copy your
API KeyandSecret Key
-
Set Up Environment Variables
- Create a
.envfile in the root directory:
# Mailjet API Configuration MAILJET_API_KEY=your_mailjet_api_key_here MAILJET_SECRET_KEY=your_mailjet_secret_key_here # Email Configuration [email protected] [email protected] # Server Configuration PORT=3000
- Create a
-
Domain Authentication (Recommended)
- For production, add your domain to Mailjet
- Verify domain ownership for better deliverability
-
Update Personal Information in
index.html:- Replace name, bio, and contact details
- Update social media links
- Modify project descriptions and links
-
Replace Images:
- Add your photos to the
images/folder - Update image references in HTML
- Optimize images for web (WebP format recommended)
- Add your photos to the
-
Update Projects:
- Edit project descriptions and technologies used
- Update project links and repositories
- Add new project cards as needed
For development:
npm run devFor production:
npm startVisit http://localhost:3000 to view your portfolio.
The portfolio includes extensive mobile optimizations:
- Enhanced Text Sizing for better readability on small screens
- Optimized Touch Targets (minimum 44px for all interactive elements)
- Improved Card Heights to eliminate empty space on mobile
- Progressive Text Display with appropriate line clamping
- Touch-Friendly Navigation with smooth animations
- Professional Email Templates with portfolio branding
- Automatic Fallback to mailto if API is unavailable
- Real-time Validation with visual feedback
- Loading States and success/error notifications
- Spam Protection with rate limiting
- Mobile-Optimized form experience
- Responsive HTML Design that works across all email clients
- Professional Branding with gradient headers
- Contact Information Display in structured format
- Reply-To Configuration for easy responses
- Plain Text Fallback for accessibility
Update CSS variables in css/style.css:
:root {
--accent-primary: #6366f1; /* Primary accent color */
--accent-secondary: #8b5cf6; /* Secondary accent color */
--accent-tertiary: #06b6d4; /* Tertiary accent color */
}The portfolio uses Inter font family. To change:
@import url("https://fonts.googleapis.com/css2?family=YourFont:wght@300;400;500;600;700;800;900&display=swap");
body {
font-family: "YourFont", sans-serif;
}Customize animation timing in CSS variables:
:root {
--ease-smooth: cubic-bezier(0.25, 0.46, 0.45, 0.94);
--ease-spring: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}- Build the project:
npm run build - Deploy to Netlify:
- Connect your GitHub repository
- Set build command:
npm run build - Set publish directory:
. - Add environment variables in Netlify dashboard
- Install Vercel CLI:
npm i -g vercel - Deploy:
vercel - Configure Environment Variables in Vercel dashboard
- Create Heroku app:
heroku create your-portfolio - Set environment variables:
heroku config:set MAILJET_API_KEY=your_key - Deploy:
git push heroku main
Ensure these are set in your deployment platform:
MAILJET_API_KEYMAILJET_SECRET_KEYSENDER_EMAILRECEIVER_EMAIL
- HTML5 with semantic elements and accessibility features
- CSS3 with custom properties, grid, flexbox, and animations
- Vanilla JavaScript with modern ES6+ features
- Intersection Observer API for scroll animations
- CSS Grid & Flexbox for responsive layouts
- Node.js with Express.js framework
- Mailjet SDK for email sending
- CORS for cross-origin requests
- Body Parser for form data handling
- Environment Variables for secure configuration
- Lazy Loading for images and animations
- Debounced Scroll Events for smooth performance
- Optimized Animation with GPU acceleration
- Efficient DOM Queries with caching
- Compression Ready for production deployment
Add analytics tracking:
- Google Analytics - Add GA4 tracking code
- Performance Monitoring - Add Web Vitals tracking
- Error Tracking - Consider Sentry for error monitoring
- Environment Variables for sensitive data
- Input Validation on both client and server
- Rate Limiting for contact form submissions
- CORS Configuration for API security
- Content Security Policy headers recommended
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
For support and questions:
- Email: [email protected]
- LinkedIn: Ashwani Kumar Singh
- GitHub: Ashwani2529
This project is licensed under the MIT License - see the LICENSE file for details.
- Mailjet for reliable email delivery service
- Boxicons for beautiful icon library
- Inter Font for clean typography
- Modern CSS techniques and animations
Built with β€οΈ by Ashwani Kumar Singh