A modern, performant, and accessible portfolio built with Next.js 14, TypeScript, Tailwind CSS, and Three.js. This portfolio showcases interactive 3D visualizations, smooth animations, and a fully responsive design with dark mode support.
- Interactive 3D skills visualization using Three.js
- Smooth page transitions and animations with Framer Motion
- Dark/Light theme with system preference sync
- Responsive design with mobile-first approach
- Touch gestures and mobile optimizations
- Custom animations and transitions
- Server-side rendering with Next.js 14
- Image optimization with next/image and sharp
- Code splitting and lazy loading
- Bundle size optimization
- Performance monitoring and metrics
- Lighthouse score optimization
- Progressive Web App (PWA) support
- Offline functionality
- Touch gestures support
- Pull-to-refresh functionality
- Mobile navigation
- App-like experience
- SEO optimized with meta tags
- OpenGraph and Twitter cards
- Sitemap generation
- Robots.txt configuration
- WCAG 2.1 compliance
- Screen reader support
- Keyboard navigation
- TypeScript for type safety
- Tailwind CSS for styling
- Jest for unit testing
- Cypress for E2E testing
- Storybook for component documentation
- ESLint and Prettier for code quality
Node.js 18.x or later
npm or yarn
Git
- Clone the repository:
git clone https://github.com/yourusername/portfolio.git
cd portfolio
- Install dependencies:
npm install
# or
yarn install
- Set up environment variables:
# Create .env.local file
cp .env.example .env.local
# Add your environment variables
NEXT_PUBLIC_SITE_URL=http://localhost:3000
NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION=your_verification_code
- Run the development server:
npm run dev
# or
yarn dev
Visit http://localhost:3000
``` portfolio/ βββ .github/ # GitHub Actions workflows βββ .husky/ # Git hooks βββ .storybook/ # Storybook configuration βββ cypress/ # E2E tests β βββ e2e/ # Test specs βββ public/ # Static assets β βββ icons/ # PWA icons β βββ sw.js # Service Worker βββ src/ β βββ app/ # Next.js app directory β β βββ layout.tsx # Root layout β β βββ page.tsx # Home page β βββ components/ # React components β β βββ ui/ # UI components β β βββ sections/ # Page sections β βββ hooks/ # Custom React hooks β βββ lib/ # Utility functions β βββ styles/ # Global styles βββ cypress.config.ts # Cypress configuration βββ jest.config.js # Jest configuration βββ next.config.js # Next.js configuration βββ tailwind.config.ts # Tailwind configuration βββ tsconfig.json # TypeScript configuration ```
- `npm run dev`: Start development server
- `npm run build`: Build for production
- `npm run start`: Start production server
- `npm run lint`: Run ESLint
- `npm run format`: Format code with Prettier
- `npm run type-check`: Run TypeScript checks
- `npm run test`: Run Jest tests
- `npm run test:coverage`: Run tests with coverage
- `npm run cypress`: Open Cypress
- `npm run e2e`: Run E2E tests
- `npm run storybook`: Start Storybook
- `npm run validate`: Run all checks
# Run tests
npm run test
# Watch mode
npm run test:watch
# Coverage report
npm run test:coverage
# Open Cypress
npm run cypress
# Run E2E tests
npm run e2e
# Headless mode
npm run e2e:headless
# Start Storybook
npm run storybook
# Build static storybook
npm run build-storybook
- Push your code to GitHub
- Import your repository in Vercel
- Configure environment variables:
- `NEXT_PUBLIC_SITE_URL`
- `NEXT_PUBLIC_GOOGLE_SITE_VERIFICATION`
- Deploy
- Build the project:
npm run build
- Start the production server:
npm run start
- Edit `tailwind.config.ts` for theme customization
- Modify `src/app/globals.css` for global styles
- Update color schemes in components
- Update `src/app/layout.tsx` for metadata
- Modify components in `src/components/sections`
- Add new sections as needed
- Edit `src/components/SkillConstellation.tsx`
- Update skills data
- Customize animations and interactions
-
Icons:
- Replace icons in `public/icons`
- Update `manifest.json`
-
Service Worker:
- Customize caching in `public/sw.js`
- Update offline functionality
-
App Manifest:
- Edit `public/manifest.json`
- Update app information
- ESLint for linting
- Prettier for formatting
- TypeScript for type checking
- Husky for pre-commit hooks
- Jest for unit tests
- React Testing Library for component tests
- Cypress for E2E tests
- Storybook for visual testing
- Lighthouse audits
- Web Vitals monitoring
- Bundle analysis
- Performance metrics
- Fork the repository
- Create your feature branch
- Run tests and checks:
npm run validate
- Commit your changes
- Push to the branch
- Open a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js team for the framework
- Three.js for 3D graphics
- Framer Motion for animations
- Tailwind CSS for styling
- Vercel for hosting
Your Name - @yourusername
Project Link: https://github.com/yourusername/portfolio
Give a βοΈ if this project helped you!