Skip to content

sinahatami/portfolio

Repository files navigation

🌐 Sina Hatami | Software Engineer & Data Scientist

🎯 Portfolio Overview

A cutting-edge, high-performance portfolio website built with modern web technologies. This project showcases 4+ years of expertise in React, Next.js, TypeScript, and AI/ML technologies.

Portfolio Preview


πŸ”— Quick Links

✨ Key Features

🎨 Modern UI/UX

● Dark/Light Theme : Fully customizable theme system with persistent user preferences.
● Interactive 3D Elements : Tech sphere visualization and project showcases using
Three.js.
● Smooth Animations : Framer Motion-powered transitions and micro-interactions.
● Responsive Design : Flawless experience across all device sizes (mobile, tablet,
desktop).
● Custom Cursor : Interactive cursor with hover effects (optimized for desktop).

⚑ Performance Optimized

● Next.js 14 App Router : Utilizing the latest React Server Components (RSC) architecture.
● Image Optimization : Automatic compression, lazy loading, and WebP support.
● Code Splitting : Dynamic imports implemented for heavy 3D and interactive components.
● PWA Support : Fully installable as a Progressive Web App.
● Core Web Vitals : Real-time monitoring for optimal LCP, FID, and CLS scores.

πŸ”§ Technical Excellence

● TypeScript First : End-to-end type safety across the entire application.
● 3D Integration : WebGL-based tech visualization with graceful fallbacks for older
devices.
● Real-time Data : GitHub API integration for live activity and repository tracking.
● Contact Form : Server-side validation with Resend email integration.
● SEO & Accessibility : WCAG 2.1 AA compliant and optimized for search engine crawlers.

πŸ“Š Tech Stack

Category Technologies
Core Framework Next.js 14 (App Router), React 18,
TypeScript 5
Styling & UI Tailwind CSS, Shadcn/ui, Framer Motion,
Lucide React
3D & Graphics Three.js, @react-three/fiber,
@react-three/drei, WebGL
Backend & APIs Resend (Email), GitHub REST API, Next.js
Server Actions
Monitoring Vercel Analytics, Speed Insights,
Performance Observer API
Dev Tools ESLint, Prettier, Husky, Commitlint

πŸ— Project Structure

src/ β”œβ”€β”€ app/ # Next.js 14 App Router (Pages & API) β”œβ”€β”€ components/ β”‚ β”œβ”€β”€ 3d/ # Three.js / WebGL Components β”‚ β”œβ”€β”€ sections/ # Page Sections (Hero, Skills, Projects, etc.) β”‚ β”œβ”€β”€ layout/ # Navigation, Footer, Scroll components β”‚ β”œβ”€β”€ features/ # Cursor, Command Menu, Voice features β”‚ β”œβ”€β”€ ui/ # Base UI Components (Buttons, Cards, Badges) β”‚ └── pwa/ # PWA Registry & Offline indicators β”œβ”€β”€ contexts/ # Global State (Skills, Theme) β”œβ”€β”€ hooks/ # Custom React Hooks (WebGL, Performance) β”œβ”€β”€ data/ # Static Content & Resume Data β”œβ”€β”€ lib/ # Utility functions & Shared logic β”œβ”€β”€ actions/ # Next.js Server Actions (Contact form) β”œβ”€β”€ types/ # Global TypeScript Definitions └── config/ # Feature flags & Animation configs

πŸš€ Getting Started

Prerequisites

● Node.js 18.17 or later
● npm, yarn, or pnpm

Installation & Setup

  1. Clone the repository git clone https://github.com/sinahatami/portfolio.git cd portfolio
  2. Install dependencies npm install
  3. Environment Configuration Create a .env.local file in the root directory:

    Required for contact form

    RESEND_API_KEY=your_resend_api_key_here

    Optional: GitHub API for enhanced features

    GITHUB_TOKEN=your_github_personal_access_token_here

    Optional: Analytics

    NEXT_PUBLIC_GA_ID=your_google_analytics_id
  4. Run Development Server npm run dev Open http://localhost:3000 to view the result.

πŸ“¦ Available Scripts

● npm run dev: Start development server with Turbopack.
● npm run build: Build the application for production.
● npm run start: Start production server.
● npm run lint: Run ESLint to find code issues.
● npm run format: Format code with Prettier.
● npm run type-check: Validate TypeScript types.
● npm run analyze: Analyze bundle sizes for optimization.

🚒 Deployment

Vercel (Recommended)

The easiest way to deploy this portfolio is using the Vercel Platform.

  1. Push your code to a GitHub repository.
  2. Import the project into Vercel.
  3. Add your environment variables in the Vercel Dashboard.
  4. Deploy!

Manual Build

npm run build npm run start

πŸ›  Performance Optimization

This portfolio achieves 100/100 Lighthouse scores through: ● Caching : Static Site Generation (SSG) with Incremental Static Regeneration (ISR). ● Bundle Optimization : Tree-shaking and aggressive code splitting. ● Asset Strategy : Next/Image for WebP delivery and optimized font loading. ● Monitoring : Integration with Vercel Speed Insights.

🀝 Contributing

Contributions are welcome!

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ“¬ Contact

Sina Hatami - Software Engineer | Data Scientist


Made with ❀ using Next.js, TypeScript, and Tailwind CSS
⭐ Star this repository if you found it helpful!

Github
Stars

About

High-performance 3D Portfolio built with Next.js 16, TypeScript, and Three.js. Features interactive WebGL elements, PWA support, and 100/100 Lighthouse optimization.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors