A modern, performant portfolio website showcasing 8+ years of full-stack engineering expertise
Live at: danieljoffe.com
This is the personal portfolio website of Daniel Joffe, a Senior Software Engineer specializing in full-stack development, technical leadership, and performance optimization. The site showcases professional experience, achievements, methodologies, and project work through an accessible, fast, and modern web experience.
- π± Fully Responsive Design - Optimized for all devices and screen sizes
- β‘ Performance Optimized - Built with Next.js 15 and advanced optimization techniques
- βΏ Accessibility First - WCAG compliant with proper semantic markup
- π¨ Modern UI/UX - Beautiful, clean design with smooth animations using GSAP
- π Analytics & Monitoring - Integrated with Google Analytics, Vercel Analytics, and Sentry
- π SEO Optimized - Comprehensive meta tags, structured data, and OpenGraph support
- π§ Contact Form - Secure contact form with hCaptcha protection
- π± PWA Ready - Service worker implementation for offline capabilities
- Framework: Next.js 15.5.2 (App Router)
- UI Library: React 19.1.1
- Language: TypeScript 5.9.2
- Styling: Tailwind CSS 4.1.13
- Animations: GSAP 3.13.0
- Icons: Lucide React
- Monorepo: Nx 21.4.1
- Package Manager: Yarn
- Linting: ESLint 9 with custom configuration
- Testing: Jest + React Testing Library
- E2E Testing: Playwright
- Component Development: Storybook 9.1.4
- Analytics: Google Analytics, Vercel Analytics
- Performance: Vercel Speed Insights
- Error Tracking: Sentry
- Form Protection: hCaptcha
- Image Optimization: Next.js Image + Unsplash integration
apps/root/src/
βββ app/ # Next.js App Router pages
β βββ home/ # Homepage components (Hero, Achievements, etc.)
β βββ about/ # About page with professional timeline
β βββ projects/ # Project showcase pages
β βββ api/ # API routes (contact form, etc.)
β βββ thank-you/ # Thank you pages
βββ components/
β βββ assembled/ # Complex, reusable components
β βββ units/ # Basic UI components (Button, Input, etc.)
βββ content/ # MDX content files
βββ lib/ # Utility libraries and configurations
βββ state/ # Global state management
βββ types/ # TypeScript type definitions
βββ utils/ # Helper functions and constants
- API_DOCUMENTATION.md - Complete API reference with examples in each api route
- Testing Guide - Comprehensive testing and QA documentation
- Component Documentation - Available via Storybook (
yarn storybook)
- Node.js 18+
- Yarn package manager
- Git
-
Clone the repository
git clone https://github.com/danieljoffe/danieljoffe.com.git cd danieljoffe.com -
Install dependencies
yarn install
-
Set up environment variables
cp apps/root/.env.example apps/root/.env.local # Edit the .env.local file with your configuration -
Start the development server
npx nx dev root
The application will be available at
http://localhost:3000
# Start development server
npx nx dev root
# Build for production
npx nx build root
# Start production server
npx nx start root
# Run linting
npx nx lint root
# Run tests
npx nx test root
# Run E2E tests
npx nx e2e root-e2e# Start Storybook
npx nx storybook root
# Run bundle analyzer
yarn analyze
# Generate project graph
npx nx graphThe project includes comprehensive testing setup:
- Unit Tests: Jest + React Testing Library
- E2E Tests: Playwright with multiple browser support
- Component Testing: Storybook for visual component development
- Linting: ESLint with custom rules for code quality
# Run all tests
npx nx test root
# Run E2E tests
npx nx e2e root-e2e
# Run tests in watch mode
npx nx test root --watchThe application includes several performance and monitoring features:
- Core Web Vitals Tracking: Automated performance monitoring
- Error Boundary: React error boundaries with Sentry integration
- Service Worker: Caching and offline functionality
- Image Optimization: Next.js Image component with Unsplash integration
- Bundle Analysis: Webpack bundle analyzer for optimization
The application is optimized for deployment on Vercel:
- Connect your repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy - automatic deployments on push to main branch
Key environment variables needed for production:
NEXT_PUBLIC_GOOGLE_ANALYTICS_ID=your_ga_id
SENTRY_DSN=your_sentry_dsn
HCAPTCHA_SITE_KEY=your_hcaptcha_site_key
HCAPTCHA_SECRET_KEY=your_hcaptcha_secret_keyThis is a personal portfolio project, but if you'd like to suggest improvements:
- Fork the repository
- Create a feature branch (
git checkout -b feature/improvement) - Commit your changes (
git commit -am 'Add some improvement') - Push to the branch (
git push origin feature/improvement) - Create a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Daniel Joffe
Senior Software Engineer
- π Website: danieljoffe.com
- πΌ LinkedIn: linkedin.com/in/danieljoffe
- π GitHub: github.com/danieljoffe
- π§ Email: hello@danieljoffe.com