π Website Modernization Guide
This document outlines the comprehensive modernization of Majid Nisarβs personal website, including new features, design improvements, and LinkedIn integration.
π Table of Contents
- Overview
- New Features
- Design System
- LinkedIn Integration
- Setup Instructions
- File Structure
- Configuration
- Usage
- Troubleshooting
π― Overview
The website has been completely modernized with:
- Modern Design System: Tech-Creative-Humble theme with dark mode
- Enhanced Functionality: Search, reading progress, newsletter subscription
- LinkedIn Integration: Automated content sync from LinkedIn
- Professional Features: Skills showcase, project portfolio, testimonials
- Performance Optimizations: Lazy loading, image optimization, caching
- SEO Enhancements: Structured data, Open Graph, Twitter Cards
β¨ New Features
π Dark Mode Toggle
- Automatic system preference detection
- Manual toggle with localStorage persistence
- Smooth transitions between themes
- Mobile-optimized theme-color updates
π Reading Progress Bar
- Fixed progress indicator at top of page
- Real-time scroll progress tracking
- Smooth gradient animation
- Respects user preferences
π Advanced Search
- Modern search overlay with blur effects
- Client-side search using Lunr.js
- Search suggestions and highlighting
- Keyboard navigation support
π§ Newsletter Subscription
- Email validation and submission
- Animated form interactions
- Privacy-focused messaging
- Integration-ready for services like Buttondown
π± Enhanced Navigation
- Modern mega-menu for desktop
- Hamburger menu for mobile
- Smooth scroll to sections
- Active state indicators
πΌ Professional Features
- Skills showcase with categories
- Project portfolio grid
- Testimonials carousel
- Resume integration
π¨ Visual Improvements
- Modern typography (Inter, Source Serif Pro, JetBrains Mono)
- Card-based layouts with shadows
- Smooth animations and transitions
- Responsive design for all devices
π¨ Design System
Color Palette
:root {
--primary-color: #1a1a2e; /* Deep Navy - Professional */
--secondary-color: #6c757d; /* Warm Gray - Humble */
--accent-color: #00d4aa; /* Teal - Creative */
--background-color: #f8f9fa; /* Soft White */
--text-color: #2d3436; /* Dark Charcoal */
}
Typography
- Headings: Inter (modern, clean sans-serif)
- Body: Source Serif Pro (readable, professional)
- Code: JetBrains Mono (developer-friendly)
Spacing & Layout
- CSS variables for consistent spacing
- Border radius system (sm, md, lg, xl, full)
- Shadow system (sm, md, lg, xl)
- Z-index management for modals and overlays
π LinkedIn Integration
Automated Content Sync
- Posts: Fetches and syncs LinkedIn posts
- Articles: Syncs LinkedIn articles/newsletters
- Scheduling: Daily sync at 6 AM UTC
- Manual Triggers: On-demand sync via GitHub Actions
Setup Requirements
- LinkedIn API Access Token
- LinkedIn Person ID
- GitHub Secrets Configuration
Content Processing
- Automatic front matter generation
- Tag extraction from hashtags
- Image optimization
- Filename sanitization
π οΈ Setup Instructions
Prerequisites
- Ruby 3.0+ (for Jekyll)
- Node.js 18+ (for scripts)
- Git
Installation
- Clone the repository
git clone https://github.com/MAJIDNISAR/MAJIDNISAR.github.io.git cd MAJIDNISAR.github.io - Install Ruby dependencies
bundle install - Install Node.js dependencies
npm install - Configure LinkedIn API (Optional)
# Set up GitHub secrets: # LINKEDIN_ACCESS_TOKEN # LINKEDIN_PERSON_ID - Start development server
npm run dev # or bundle exec jekyll serve --livereload
Production Build
npm run build:prod
π File Structure
βββ _includes/
β βββ theme-toggle.html # Dark mode toggle
β βββ reading-progress.html # Reading progress bar
β βββ search-overlay.html # Search functionality
β βββ toc-sidebar.html # Table of contents
β βββ newsletter.html # Newsletter subscription
β βββ skills.html # Skills showcase
βββ _layouts/
β βββ base.html # Updated base layout
βββ assets/
β βββ css/
β β βββ modern-design.css # Modern design system
β βββ js/
β βββ modern-features.js # Modern JavaScript features
βββ scripts/
β βββ sync-linkedin.js # LinkedIn sync script
βββ .github/
β βββ workflows/
β βββ linkedin-sync.yml # GitHub Actions workflow
βββ package.json # Node.js configuration
βοΈ Configuration
Site Configuration (_config.yml)
Add these new settings to your _config.yml:
# Modern features
modern_features:
dark_mode: true
reading_progress: true
search: true
newsletter: true
skills: true
# LinkedIn integration
linkedin:
enabled: true
auto_sync: true
sync_schedule: "0 6 * * *" # Daily at 6 AM UTC
# Newsletter
newsletter:
enabled: true
provider: "buttondown" # or "mailchimp", "convertkit"
# Skills showcase
skills:
enabled: true
categories:
- software_development
- data_engineering
- cybersecurity
- cloud_devops
- ai_ml
- leadership
GitHub Secrets
Configure these secrets in your GitHub repository:
LINKEDIN_ACCESS_TOKEN=your_linkedin_access_token
LINKEDIN_PERSON_ID=your_linkedin_person_id
π Usage
Manual LinkedIn Sync
# Sync all content
npm run sync:linkedin
# Sync only posts
npm run sync:linkedin:posts
# Sync only newsletters
npm run sync:linkedin:newsletters
Development
# Start development server
npm run dev
# Build for production
npm run build:prod
# Lint JavaScript
npm run lint
Adding New Features
- Add new include files in
_includes/ - Update base layout in
_layouts/base.html - Add CSS styles in
assets/css/modern-design.css - Add JavaScript in
assets/js/modern-features.js
π§ Troubleshooting
Common Issues
1. Dark Mode Not Working
- Check if JavaScript is enabled
- Verify localStorage is accessible
- Clear browser cache
2. LinkedIn Sync Failing
- Verify LinkedIn API credentials
- Check API rate limits
- Review GitHub Actions logs
3. Search Not Working
- Ensure JavaScript is loaded
- Check browser console for errors
- Verify search index is generated
4. Newsletter Form Issues
- Validate email format
- Check form submission endpoint
- Verify CORS settings
Debug Mode
Enable debug mode in _config.yml:
debug: true
Browser Support
- Modern browsers: Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
- Mobile: iOS Safari 14+, Chrome Mobile 90+
- Fallbacks: Graceful degradation for older browsers
π Performance Metrics
Target Scores
- Lighthouse Performance: 95+
- First Contentful Paint: < 1.5s
- Largest Contentful Paint: < 2.5s
- Cumulative Layout Shift: < 0.1
Optimization Features
- Lazy loading for images
- Critical CSS extraction
- JavaScript minification
- Browser caching headers
- CDN integration ready
π― Future Enhancements
Planned Features
- Blog post series feature
- Interactive code playground
- Advanced analytics dashboard
- Multi-language support
- PWA capabilities
- Accessibility audit
- Performance monitoring
- A/B testing framework
Content Strategy
- Regular LinkedIn content sync
- Automated newsletter generation
- Social media integration
- SEO optimization
- Content categorization
π Support
For issues or questions:
- GitHub Issues: Create an issue in the repository
- Email: MAJIDNISAR@MAJIDNISAR.com
- LinkedIn: Majid Nisar
π License
This project is licensed under the MIT License - see the LICENSE file for details.
Built with β€οΈ using Jekyll, Modern CSS, and JavaScript