Welcome to the official repository of Imamul Hoque Ishmam's Portfolio, a high-end, immersive personal website designed to showcase a professional filmmaker, editor, and photographer's visual journey.
This project is built using a modern full-stack architecture featuring Next.js (App Router), TypeScript, and Tailwind CSS v4, combined with powerful creative libraries like Three.js for background graphics, GSAP and Framer Motion for state-of-the-art animations, and Lenis for custom smooth scrolling.
Check out the live website: Imamul Hoque Ishmam Portfolio (Deployed on Vercel)
- 🌌 3D Interactive Background: Powered by Three.js, featuring a dynamic particle/star field that realistically responds to mouse movements, creating an atmospheric, cinematic depth.
- ✨ Silky-Smooth Scrolling: Utilizes Lenis Smooth Scroll to ensure consistent, inertia-based scroll experiences across all modern web browsers.
- 🎬 Premium Micro-Animations: Features complex timeline-based entry animations via GSAP and interactive, fluid micro-interactions using Framer Motion.
- 📧 Serverless Contact Form: Integrated with the Resend API and Next.js Route Handlers (
app/api/contact/route.ts) to validate and send message submissions directly to the inbox without managing external mail servers. - 📱 Fully Responsive & Adaptive UI: Mobile-first grid-based design, featuring a smooth, sliding navigation overlay optimized for all devices.
- 🎨 Curated Aesthetics & Typography: Employs premium dark mode color schemes paired with Google Fonts (Outfit & Geist) to convey high-end, professional branding.
This project leverages some of the most powerful modern tools for front-end developers:
- Next.js 16 (App Router): Framework for React 19 apps providing server-side rendering, static generation, and API routes.
- React 19: For component lifecycle, state, and UI.
- TypeScript: Type-safety and enterprise-grade architecture.
- Three.js: Renders WebGL-based interactive backgrounds.
- GSAP (GreenSock Animation Platform): Timeline-based orchestration for entrance animations.
- Framer Motion: Handles react-native-like declarative animations and transitions.
- Lenis & @studio-freight/lenis: Lightweight smooth scroll library for uniform scroll dynamics.
- Tailwind CSS v4: Next-generation utility-first CSS framework.
- Tailwind Merge (
twMerge): Safely resolves class naming conflicts dynamically. - Lucide React & React Icons: Modern, lightweight SVG icon libraries.
- Resend: Email delivery platform for Node.js.
Below is an overview of the directory structure and the core files making up the codebase:
imamul-hoque/
├── app/ # Next.js App Router root
│ ├── api/
│ │ └── contact/
│ │ └── route.ts # Resend API email submission endpoint
│ ├── favicon.ico
│ ├── globals.css # Main styling entry file with Tailwind & design tokens
│ ├── layout.tsx # Application shell (integrates Three.js, Lenis, & Fonts)
│ └── page.tsx # Home page (stitches sections together)
├── components/ # Reusable UI component layer
│ ├── About.tsx # Filmmaker bio & visual storyteller narrative
│ ├── Contact.tsx # Responsive form with API integration & status alerts
│ ├── Footer.tsx # Copyright notice & social links
│ ├── Hero.tsx # Entrance section introducing Ishmam
│ ├── Navbar.tsx # Interactive sticky header with mobile menu drawer
│ ├── Services.tsx # Showcases skillsets (Direction, Editing, Color Grading, Foley)
│ ├── SmoothScroll.tsx # Lenis wrapper initializing the scroll hook
│ └── ThreeBackground.tsx # WebGL canvas displaying the star field particles
├── public/ # Static assets (images, vectors, etc.)
│ ├── imamul_Hoque_Ishmam.jpeg
│ └── window.svg
├── .env.example # Template for required environment variables
├── eslint.config.mjs # ESLint setup for code style
├── next.config.ts # Next.js compiler & server config
├── package.json # Project dependencies and script runner configurations
└── tsconfig.json # TypeScript path mapping & compiler rulesThe contact form functionality requires connection details for the Resend API.
To configure these variables:
- Create a copy of the
.env.examplefile and rename it to.env:cp .env.example .env
- Open
.envand configure the following variable:# Obtain your API key at https://resend.com RESEND_API_KEY=your_resend_api_key_here
To run this project on your local machine, follow these steps:
Make sure you have Node.js (v20+ recommended) and npm installed.
git clone https://github.com/Islamul-Hoque/Client-Portfolio.git
cd Client-Portfolionpm installCreate your .env file as described in the Environment Variables section.
npm run devOpen your browser and navigate to http://localhost:3000 to view the application in action.
To build and test the production-ready optimized build locally:
npm run build
npm run startThis project is fully optimized to run on Vercel with Next.js zero-configuration hosting.
- Push your code repository to GitHub, GitLab, or Bitbucket.
- Log in to the Vercel Dashboard.
- Click New Project and import your repository.
- In the Environment Variables section of the configuration screen, add:
- Key:
RESEND_API_KEY - Value:
[Your Resend API Key]
- Key:
- Click Deploy. Vercel will automatically run
npm run buildand provision your SSL-secured live site!
Linting and code formatting rules are checked via ESLint. Before committing changes, make sure to test your code:
npm run lintMERN Stack Developer | Backend Enthusiast | Problem Solver
Get in touch or check out my profiles:
This project is licensed under the MIT License - see the license file for details.