This is a comprehensive portfolio website for Regan Maharjan, showcasing work across accessibility, education technology, AI systems, and data engineering. The site is built as a modern single-page application using React, TypeScript, and Vite, with a focus on accessibility, performance, and user experience.
- Framework: React 18.3.1 with TypeScript
- Build Tool: Vite 6.3.5
- Routing: React Router DOM (HashRouter)
- Styling: Tailwind CSS with custom design system
- UI Components: Radix UI primitives with custom styling
- Animations: Motion (Framer Motion)
- Content Management: Centralized content data structure in
src/data/content.ts
- Accessibility-First Design: WCAG 2.1 AA compliant with semantic HTML and ARIA labels
- Responsive Layout: Mobile-first design that works across all device sizes
- Performance Optimized: Fast loading times with optimized assets and code splitting
- Content-Driven: Centralized content management for easy updates
- Interactive Storytelling: Rich narrative experiences for impact stories and adventures
Stories of Impact is a dedicated section of the portfolio that tells the human story behind Regan's technical work, particularly focusing on projects that created meaningful change in Nepal and beyond. Unlike the "Projects" page which focuses on technical details, problem-solving approaches, and metrics, "Stories of Impact" emphasizes the human narrative, community outcomes, and lasting change.
The "Stories of Impact" section exists to:
- Connect Technology to People: Show how technical work translates into real-world impact for students, teachers, and communities
- Tell the Full Story: Go beyond code and metrics to share the context, challenges, and human experiences
- Demonstrate Values: Illustrate commitment to digital equity, accessibility, and community-centered design
- Show Long-Term Impact: Highlight how systems built years ago continue to serve communities today
| Aspect | Projects Page | Stories of Impact |
|---|---|---|
| Focus | Technical implementation, problem-solving, metrics | Human stories, community outcomes, lasting change |
| Tone | Professional, technical, achievement-oriented | Narrative, reflective, community-centered |
| Structure | Problem → Approach → Solution → Result | Personal reflection → What was built → Impact today |
| Metrics | Technical metrics (users, performance, adoption) | Community impact (students reached, schools served, years of service) |
| Content Style | Case study format | Storytelling format |
Each story in "Stories of Impact" includes:
- Title & Excerpt: A compelling headline and brief teaser
- Date: When the work took place
- Icon & Theme: Visual categorization (Globe, BookOpen, Heart, Laptop, Users, Zap)
- Description: Personal narrative about the work and its context
- What I Built: Bulleted list of key technical contributions
- Impact Today: Reflection on how the work continues to create value
- Impact by Numbers (for featured stories): Quantifiable community outcomes
The section currently includes 8 stories:
-
Building Technology for Learning and Equity in Nepal (Featured)
- Main story with comprehensive stats
- Covers 7 years of work with OLE Nepal
- 300,000+ students reached, 700+ modules converted
-
Community Leadership and Accessible Learning through Rotaract and Rotary
- Early community work and volunteer coordination
- 100+ audiobooks produced for accessible learning
-
E-Pustakalaya: National Digital Library
- Modernization of Nepal's digital library
- Still active today with offline mirrors across the country
-
Offline Learning During COVID-19
- Critical response to school closures
- 700+ modules converted to offline packages
- Deployed to 200+ schools during lockdown
-
OCR + TTS for Visually Impaired Students
- Nepal's first OCR and text-to-speech system
- Expanded into larger accessible content pipeline
-
E-Paath Interactive Learning
- Nepal's first digital learning platform for grades 1-8
- Still widely used in public schools
-
Technical Infrastructure for Rural Schools
- Building systems that work in real conditions
- Many school servers still running years later
-
Teacher Training & Human-Centered Design
- Supporting educators across districts
- Ensuring technology actually gets used
The "Stories of Impact" section is implemented in src/components/pages/Impact.tsx:
- Component:
Impactfunctional component using React hooks - State Management:
useStatefor selected story navigation - Animations: Framer Motion for smooth transitions and entrance animations
- Layout: Responsive grid that adapts from 1 column (mobile) to 3 columns (desktop)
- Content Source: Centralized data from
src/data/content.tsundercontentData.impact
- Story Grid View: Displays all stories as clickable cards with thumbnails
- Story Detail View: Full narrative experience when a story is selected
- Theme-Based Styling: Each story has a color theme (blue, green, purple, indigo, teal, orange)
- Image Support: Stories can include images to illustrate the work
- Stats Display: Featured stories show impact metrics in a grid layout
- Call-to-Action: Connect section at the bottom for engagement
The design emphasizes:
- Readability: Large, clear typography optimized for reading long-form content
- Visual Hierarchy: Clear distinction between story cards and detail views
- Emotional Connection: Use of imagery, gradients, and thoughtful spacing
- Accessibility: Semantic HTML, proper ARIA labels, keyboard navigation
- Performance: Lazy loading, optimized images, smooth animations
All content is managed in src/data/content.ts under the impact key:
"impact": {
"hero": {
"title": "Stories of Impact",
"subtitle": "A collection of stories "
},
"stories": [
// Array of story objects
],
"labels": {
// UI labels for internationalization
}
}This centralized approach allows for:
- Easy content updates without touching component code
- Potential future internationalization
- Consistent content structure
- Version control for content changes
- Landing: User arrives at
/impactroute - Overview: Sees hero section with title and subtitle
- Browse: Scrolls through grid of story cards
- Explore: Clicks a story card to read full narrative
- Engage: Reads detailed story with images, work items, and impact reflection
- Connect: Sees call-to-action to reach out or learn more
- Return: Can navigate back to browse other stories
src/
├── components/
│ ├── pages/
│ │ ├── Impact.tsx # Stories of Impact page
│ │ ├── StoriesOfAdventure.tsx
│ │ ├── Projects.tsx
│ │ └── ...
│ ├── ui/ # Reusable UI components
│ └── ...
├── data/
│ └── content.ts # Centralized content data
├── utils/
│ └── imageUtils.ts # Image handling utilities
└── App.tsx # Main app with routing
The site uses HashRouter for GitHub Pages compatibility:
/- Home page/impact- Stories of Impact (this section)/projects- Technical projects showcase/storiesofadventure- Personal adventure stories/about- About page/experience- Professional experience/accessibility- Accessibility work details/photography- Photography portfolio/contact- Contact form
The portfolio uses a two-pronged approach:
- Projects Page: Technical showcase for recruiters, clients, and technical audiences
- Stories of Impact: Narrative showcase for understanding values, community impact, and long-term outcomes
This dual approach allows the portfolio to serve different audiences while maintaining authenticity and depth.
npm install
npm run devnpm run build- React & React DOM for UI
- React Router DOM for navigation
- Motion (Framer Motion) for animations
- Radix UI for accessible component primitives
- Tailwind CSS for styling
- Lucide React for icons
Potential improvements for the Stories of Impact section:
- Search/Filter: Allow filtering stories by theme, date, or impact area
- Video Content: Support for embedded videos showing the work in action
- Testimonials: Quotes from teachers, students, or community members
- Timeline View: Visual timeline showing the progression of impact over time
- Related Stories: Cross-linking between related stories
- Share Functionality: Social sharing for individual stories
- Multilingual Support: Translations for Nepali and other languages
"Stories of Impact" represents a commitment to telling the full story of technical work—not just what was built, but why it matters, who it serves, and how it continues to create value. It bridges the gap between technical achievement and human outcomes, demonstrating that the most meaningful work happens at the intersection of technology, empathy, and community.
This section serves as a reminder that behind every line of code, every system architecture decision, and every technical solution, there are real people whose lives are improved, whose access is expanded, and whose opportunities are created. It's this human-centered perspective that makes "Stories of Impact" a unique and valuable part of the portfolio.