# Technical Context

## Technology Stack

### Frontend Technologies
| Technology | Version | Purpose |
|------------|---------|---------|
| React | 19.0.0 | Core UI Framework |
| TypeScript | 5.7.2 | Type Safety |
| React Router | 7.0.2 | Routing |
| Tailwind CSS | 3.4.16 | Styling |
| Framer Motion | 11.13.5 | Animations |
| React Simple Maps | 4.0.0-beta.6 | Geographic Visualization |
| Next.js | 14.1.0 | Framework Features |
| React Icons | 5.4.0 | Icon Library |
| React Intersection Observer | 9.13.1 | Scroll Detection |

### Backend Technologies
| Technology | Version | Purpose |
|------------|---------|---------|
| Express | 4.21.2 | API Server |
| Node.js | Latest LTS | Runtime Environment |
| Nodemailer | 6.9.9 | Email Service |
| Upstash Redis | 1.28.4 | Caching/Rate Limiting |
| TypeScript | 5.7.2 | Type Safety |
| dotenv | 16.4.7 | Environment Management |

### Development Tools
| Tool | Version | Purpose |
|------|---------|---------|
| Vite | 6.0.3 | Build System |
| pnpm | 9.14.2 | Package Manager |
| ESLint | 9.15.0 | Code Linting |
| Docker | Latest | Containerization |
| PostCSS | 8.4.49 | CSS Processing |
| Autoprefixer | 10.4.20 | CSS Compatibility |
| Concurrently | 8.2.2 | Process Management |

## Development Setup

### Prerequisites
- Node.js LTS version
- pnpm 9.14.2
- Docker and Docker Compose
- Git

### Local Development
```bash
# Install dependencies
pnpm install

# Start development servers
pnpm dev    # Runs frontend (3000) and backend (4000)

# Build for production
pnpm build

# Preview production build
pnpm preview
```

### Environment Variables
Required variables:
- `GMAIL_USER`: Email service username
- `GMAIL_PASS`: Email service password
- `REDIS_URL`: Upstash Redis connection URL
- `REDIS_TOKEN`: Upstash Redis auth token
- `API_URL`: Backend API URL
- `NODE_ENV`: Environment (development/production)

### Docker Development
```bash
# Development environment
docker-compose -f docker-compose.dev.yml up

# Production build
docker-compose up --build
```

## Technical Constraints

### Performance Requirements
- First Contentful Paint < 1.5s
- Time to Interactive < 3.5s
- Lighthouse Performance Score > 90
- Mobile-responsive breakpoints

### Browser Support
- Modern browsers (last 2 versions)
- Chrome, Firefox, Safari, Edge
- Mobile browsers (iOS Safari, Chrome Android)

### Accessibility Requirements
- WCAG 2.1 Level AA compliance
- Screen reader compatibility
- Keyboard navigation support
- Color contrast ratios
- Subtitle and transcript support

### Security Requirements
- Rate limiting on API endpoints
- CORS policy configuration
- Secure email handling
- Environment variable protection
- Input validation and sanitization

### Infrastructure Requirements
- Docker container deployment
- Nginx reverse proxy
- Redis caching layer
- Email service integration
- Static file serving
- API server configuration
