Production-grade personal portfolio platform built with Next.js, React 19, TypeScript, and Tailwind CSS. Features dynamic certifications via Google Sheets API, responsive design, dark mode, blog engine, and Vercel deployment. Optimized for recruiters with 98+ Lighthouse score.
1
stars
27
commits
TypeScript
primary language
Jun 25, 2026
updated
Manamoy Banerjee Portfolio is a production-grade personal branding platform designed to showcase technical expertise, project portfolio, and professional narrative with modern web technologies. Built with Next.js, TypeScript, Tailwind CSS, and deployed on Vercel.
Key Features:
A portfolio website is not just a static page โ it's your digital storefront:
This project demonstrates production-grade web development across frontend, deployment, and user experience.




| Metric | Value | Target |
|---|---|---|
| Lighthouse Score | 98/100 | โ Excellent |
| First Contentful Paint | 0.8s | < 1.8s |
| Largest Contentful Paint | 1.2s | < 2.5s |
| Cumulative Layout Shift | 0.05 | < 0.1 |
| Time to Interactive | 1.5s | < 3.8s |
| Bundle Size | 85KB (gzipped) | < 100KB |
| Mobile Score | 96/100 | โ Great |
src/
โโโ app/ # Next.js App Router
โ โโโ layout.tsx # Root layout & metadata
โ โโโ page.tsx # Home page
โ
โโโ components/ # Reusable UI components
โ โโโ ui/ # Atomic components
โ โ โโโ Button.tsx
โ โ โโโ Badge.tsx
โ โ โโโ CurrentFocus.tsx # Live status indicator
โ โโโ layout/ # Framework components
โ โ โโโ Header.tsx
โ โ โโโ Navigation.tsx
โ โ โโโ Footer.tsx
โ โโโ sections/ # Page sections
โ โ โโโ Hero.tsx
โ โ โโโ About.tsx
โ โ โโโ Projects.tsx
โ โ โโโ Skills.tsx
โ โ โโโ Certifications.tsx
โ โ โโโ Contact.tsx
โ โโโ shared/ # Cross-cutting components
โ โโโ ParticleCanvas.tsx
โ โโโ ThemeProvider.tsx
โ
โโโ data/ # Static data & configs
โ โโโ portfolioData.ts # Projects, experience
โ โโโ blogData.ts # Articles, tutorials
โ โโโ skillsData.ts # Technical skills
โ
โโโ hooks/ # Custom React hooks
โ โโโ useLocalStorage.ts
โ โโโ useTheme.ts
โ โโโ useResize.ts
โ
โโโ services/ # Business logic
โ โโโ sheetsService.ts # Google Sheets API
โ โโโ seoService.ts # Meta tags & SEO
โ โโโ analyticsService.ts # Tracking
โ
โโโ types.ts # TypeScript interfaces
โโโ index.css # Global styles
โโโ main.tsx # Entry point
โ Node.js 18.0+
โ npm or yarn
โ Git
โ (Optional) Vercel account for deployment
git clone https://github.com/ManamoyB/Manamoy_Banerjee_Website.git
cd Manamoy_Banerjee_Website
npm install
Create .env.local file:
VITE_GOOGLE_SHEET_ID="your_sheet_id_here"
VITE_GOOGLE_FORM_ID="your_form_id_here"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
npm run dev
Visit http://localhost:3000 in your browser.
npm run build
npm run preview
vercel deploy --prod
Create a Google Sheet with these columns:
Title - Certificate nameIssuer - Organization (Google, DeepLearning.AI, etc.)IssueDate - Format: YYYY-MM or YYYY-MM-DDSkills - Comma-separated tagsCredentialUrl - Verification link with https://Publish to Web:
Get Sheet ID:
https://docs.google.com/spreadsheets/d/{SHEET_ID}/edit/d/ and /editConfigure Environment:
VITE_GOOGLE_SHEET_ID="1sXeB...abc123..."
Automatic Fallback:
<RootLayout>
<ThemeProvider>
<Header>
<Navigation />
<ThemeToggle />
</Header>
<Main>
<Hero />
<About />
<Skills />
<Projects />
<Certifications />
<Blog />
<Contact />
</Main>
<Footer />
</ThemeProvider>
</RootLayout>
User Interaction
โ
React Component (useState, useContext)
โ
Theme/Data Context
โ
Services (API calls, local storage)
โ
Google Sheets API / Static Fallback
โ
Component Re-render
ThemeContext
โโโ currentTheme: 'aurora' | 'nova'
โโโ isDarkMode: boolean
โโโ colors: ColorPalette
โโโ toggleTheme(): void
CSS Variables
โโโ --primary-color
โโโ --secondary-color
โโโ --accent-color
โโโ --bg-color
# Development
npm run dev # Start dev server
npm run lint # Run ESLint
npm run type-check # TypeScript checking
# Production
npm run build # Build for production
npm run preview # Preview production build
npm run start # Start production server
# Deployment
vercel deploy # Deploy to Vercel
vercel deploy --prod # Deploy to production
Author: Manamoy Banerjee
Connect:
Issues & Questions:
This project is open source. Feel free to fork and customize for your own portfolio!
If you found this portfolio template useful:
Last Updated: June 2026 | Status: Active Development | Node 18+ | Next.js 14+
27 commits
Production-grade personal portfolio platform built with Next.js, React 19, TypeScript, and Tailwind CSS. Features dynamic certifications via Google Sheets API, responsive design, dark mode, blog engine, and Vercel deployment. Optimized for recruiters with 98+ Lighthouse score.
1
stars
27
commits
TypeScript
primary language
Jun 25, 2026
updated
Manamoy Banerjee Portfolio is a production-grade personal branding platform designed to showcase technical expertise, project portfolio, and professional narrative with modern web technologies. Built with Next.js, TypeScript, Tailwind CSS, and deployed on Vercel.
Key Features:
A portfolio website is not just a static page โ it's your digital storefront:
This project demonstrates production-grade web development across frontend, deployment, and user experience.




| Metric | Value | Target |
|---|---|---|
| Lighthouse Score | 98/100 | โ Excellent |
| First Contentful Paint | 0.8s | < 1.8s |
| Largest Contentful Paint | 1.2s | < 2.5s |
| Cumulative Layout Shift | 0.05 | < 0.1 |
| Time to Interactive | 1.5s | < 3.8s |
| Bundle Size | 85KB (gzipped) | < 100KB |
| Mobile Score | 96/100 | โ Great |
src/
โโโ app/ # Next.js App Router
โ โโโ layout.tsx # Root layout & metadata
โ โโโ page.tsx # Home page
โ
โโโ components/ # Reusable UI components
โ โโโ ui/ # Atomic components
โ โ โโโ Button.tsx
โ โ โโโ Badge.tsx
โ โ โโโ CurrentFocus.tsx # Live status indicator
โ โโโ layout/ # Framework components
โ โ โโโ Header.tsx
โ โ โโโ Navigation.tsx
โ โ โโโ Footer.tsx
โ โโโ sections/ # Page sections
โ โ โโโ Hero.tsx
โ โ โโโ About.tsx
โ โ โโโ Projects.tsx
โ โ โโโ Skills.tsx
โ โ โโโ Certifications.tsx
โ โ โโโ Contact.tsx
โ โโโ shared/ # Cross-cutting components
โ โโโ ParticleCanvas.tsx
โ โโโ ThemeProvider.tsx
โ
โโโ data/ # Static data & configs
โ โโโ portfolioData.ts # Projects, experience
โ โโโ blogData.ts # Articles, tutorials
โ โโโ skillsData.ts # Technical skills
โ
โโโ hooks/ # Custom React hooks
โ โโโ useLocalStorage.ts
โ โโโ useTheme.ts
โ โโโ useResize.ts
โ
โโโ services/ # Business logic
โ โโโ sheetsService.ts # Google Sheets API
โ โโโ seoService.ts # Meta tags & SEO
โ โโโ analyticsService.ts # Tracking
โ
โโโ types.ts # TypeScript interfaces
โโโ index.css # Global styles
โโโ main.tsx # Entry point
โ Node.js 18.0+
โ npm or yarn
โ Git
โ (Optional) Vercel account for deployment
git clone https://github.com/ManamoyB/Manamoy_Banerjee_Website.git
cd Manamoy_Banerjee_Website
npm install
Create .env.local file:
VITE_GOOGLE_SHEET_ID="your_sheet_id_here"
VITE_GOOGLE_FORM_ID="your_form_id_here"
NEXT_PUBLIC_APP_URL="http://localhost:3000"
npm run dev
Visit http://localhost:3000 in your browser.
npm run build
npm run preview
vercel deploy --prod
Create a Google Sheet with these columns:
Title - Certificate nameIssuer - Organization (Google, DeepLearning.AI, etc.)IssueDate - Format: YYYY-MM or YYYY-MM-DDSkills - Comma-separated tagsCredentialUrl - Verification link with https://Publish to Web:
Get Sheet ID:
https://docs.google.com/spreadsheets/d/{SHEET_ID}/edit/d/ and /editConfigure Environment:
VITE_GOOGLE_SHEET_ID="1sXeB...abc123..."
Automatic Fallback:
<RootLayout>
<ThemeProvider>
<Header>
<Navigation />
<ThemeToggle />
</Header>
<Main>
<Hero />
<About />
<Skills />
<Projects />
<Certifications />
<Blog />
<Contact />
</Main>
<Footer />
</ThemeProvider>
</RootLayout>
User Interaction
โ
React Component (useState, useContext)
โ
Theme/Data Context
โ
Services (API calls, local storage)
โ
Google Sheets API / Static Fallback
โ
Component Re-render
ThemeContext
โโโ currentTheme: 'aurora' | 'nova'
โโโ isDarkMode: boolean
โโโ colors: ColorPalette
โโโ toggleTheme(): void
CSS Variables
โโโ --primary-color
โโโ --secondary-color
โโโ --accent-color
โโโ --bg-color
# Development
npm run dev # Start dev server
npm run lint # Run ESLint
npm run type-check # TypeScript checking
# Production
npm run build # Build for production
npm run preview # Preview production build
npm run start # Start production server
# Deployment
vercel deploy # Deploy to Vercel
vercel deploy --prod # Deploy to production
Author: Manamoy Banerjee
Connect:
Issues & Questions:
This project is open source. Feel free to fork and customize for your own portfolio!
If you found this portfolio template useful:
Last Updated: June 2026 | Status: Active Development | Node 18+ | Next.js 14+
27 commits
TypeScript
99.7%