- Interactive Experience Timeline: Custom-built with React Flow, featuring smooth animations and dynamic data visualization
- Modern Tech Stack: React.js with Hooks, Custom CSS Modules, and Performance Optimizations
- Responsive Design: Mobile-first approach with fluid layouts and breakpoints
- Performance Focused: Optimized bundle size, lazy loading, and efficient state management
- Accessibility: WCAG compliant with ARIA labels and keyboard navigation
- CI/CD: Automated deployment pipeline with GitHub Actions
graph TD
A[React Frontend] --> B[Component Layer]
B --> C[Custom Hooks]
B --> D[State Management]
B --> E[UI Components]
E --> F[Timeline]
E --> G[Project Cards]
E --> H[Interactive Elements]
I[Performance Layer] --> J[Code Splitting]
I --> K[Asset Optimization]
I --> L[Cache Strategy]
| Category | Technologies |
|---|---|
| Frontend | |
| Styling | |
| Performance | |
| Deployment |
# Clone repository
git clone https://github.com/rsaim/rsaim.github.io.git
# Install dependencies with exact versions
npm ci
# Start development server with hot reload
npm start
# Run test suite
npm test
# Build optimized production bundle
npm run buildThis project uses EmailJS for contact form functionality. Environment variables are required:
REACT_APP_EMAILJS_SERVICE_IDREACT_APP_EMAILJS_TEMPLATE_IDREACT_APP_EMAILJS_PUBLIC_KEY
- Local: Create
.envfile in root directory - Production: Add as GitHub Secrets in repository settings
The contact form will show an error if these variables are not configured.
- Dark Theme: Modern dark theme with carefully chosen purple accents
- Interactive Elements: Hover states, transitions, and micro-interactions
- Custom Animations: Smooth page transitions and component animations
- Responsive Images: Optimized loading with WebP format and srcset
- Performance Metrics:
- Lighthouse Score: 95+ on all metrics
- First Contentful Paint: < 1s
- Time to Interactive: < 2s
- Static Analysis: ESLint with custom rule set
- Type Safety: TypeScript with strict mode
- Unit Tests: Jest with React Testing Library
- E2E Tests: Cypress for critical user paths
- Code Coverage: >90% on core components
// Example of optimized React component with code splitting
const Timeline = React.lazy(() => import('./components/Timeline'));
const TimelineWrapper = () => (
<Suspense fallback={<LoadingSpinner />}>
<Timeline />
</Suspense>
);| Breakpoint | Target Devices | Layout Changes |
|---|---|---|
| < 480px | Mobile | Single column, condensed nav |
| 480-768px | Tablet | Two columns, expanded cards |
| 768-1024px | Small Desktop | Grid layout, hover effects |
| > 1024px | Large Desktop | Full experience, animations |
- Add WebGL-powered 3D background animations
- Implement server-side rendering for better SEO
- Add blog section with MDX support
- Integrate with Notion API for dynamic content
- Add interactive project demos
- Performance Monitoring: Google Analytics 4
- Error Tracking: Sentry integration
- User Behavior: Hotjar heatmaps
- API Monitoring: Custom dashboard
This project uses GitHub Actions for automated deployment to GitHub Pages. The deployment process:
- Automatic Triggers: Deploys on every push to the
mainbranch - Environment Variables: Automatically injects secrets during build
- Build Process: Creates optimized production bundle
- Deployment: Publishes to GitHub Pages with custom domain
You can also trigger deployment manually:
- Go to repository β Actions
- Select "Deploy to GitHub Pages" workflow
- Click "Run workflow" β "Run workflow"
After making any changes to the repository, verify the following:
- Verify CNAME file exists in the root directory
- Confirm CNAME contains exactly:
www.rsaim.info(no http/https prefix) - Check if recent changes accidentally modified/deleted the CNAME file
- Go to repository β Settings β Pages
- Verify custom domain is configured as
www.rsaim.info - Confirm "Enforce HTTPS" is enabled
- Wait for GitHub Pages to finish deployment
- Test the live site at https://www.rsaim.info
Contributions are welcome! Please read the contributing guidelines first.
# Development workflow
git checkout -b feature/new-feature
npm test
git commit -m "feat: add new feature"
git push origin feature/new-featureI'm always interested in new opportunities and collaborations. Feel free to reach out!
Built with π by Saim Raza | Β© 2024 All Rights Reserved
