Skip to content

Subhadeep-Dhar/portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

59 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ§ͺ Subhadeep Dhar - Portfolio

A futuristic, modular personal portfolio β€” built for developers who think like researchers.

Next.js React Tailwind CSS Framer Motion License


Dark futuristic UI Β· Neon accents Β· Glassmorphism Β· Fully responsive Live demo : https://portfolio-subhadeep-dhar.vercel.app/


Features

  • Fully data-driven β€” add a project by editing one file. Zero UI changes needed.
  • Modular sections β€” reorder or hide any section by editing a single line in page.jsx
  • Lightweight animations β€” CSS-only background effects, Framer Motion only where it adds value
  • Mobile-first β€” responsive across all screen sizes
  • Clean codebase β€” well-commented, beginner-friendly to modify
  • SEO ready β€” Open Graph, Twitter cards, and metadata via Next.js

Tech Stack

Layer Technology
Framework Next.js 14 (App Router)
UI Library React 18
Styling Tailwind CSS 3
Animation Framer Motion 11
Fonts Syne Β· Space Grotesk Β· JetBrains Mono
Deployment Vercel

Project Structure

my-portfolio/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ layout.jsx          # Root layout, metadata, SEO
β”‚   β”‚   └── page.jsx            # ← Compose / reorder sections here
β”‚   β”‚
β”‚   β”œβ”€β”€ components/             # Reusable UI building blocks
β”‚   β”‚   β”œβ”€β”€ Navbar.jsx
β”‚   β”‚   β”œβ”€β”€ ProjectCard.jsx     # Expandable experiment card
β”‚   β”‚   β”œβ”€β”€ TimelineItem.jsx    # Single timeline entry
β”‚   β”‚   β”œβ”€β”€ SkillBadge.jsx      # Skill pill with level indicator
β”‚   β”‚   └── SectionHeader.jsx   # Consistent section titles
β”‚   β”‚
β”‚   β”œβ”€β”€ sections/               # Full-page sections
β”‚   β”‚   β”œβ”€β”€ Hero.jsx            # Landing + CTA
β”‚   β”‚   β”œβ”€β”€ About.jsx           # Researcher profile
β”‚   β”‚   β”œβ”€β”€ Skills.jsx          # Tech Arsenal
β”‚   β”‚   β”œβ”€β”€ Projects.jsx        # Experiments (filtered grid)
β”‚   β”‚   β”œβ”€β”€ CaseStudy.jsx       # Featured project deep-dives
β”‚   β”‚   β”œβ”€β”€ Timeline.jsx        # Evolution Log
β”‚   β”‚   β”œβ”€β”€ ConceptVault.jsx    # Ideas & future plans
β”‚   β”‚   └── Contact.jsx         # Links + footer
β”‚   β”‚
β”‚   β”œβ”€β”€ data/                   # ✦ Edit these for all content
β”‚   β”‚   β”œβ”€β”€ projects.js         # All projects live here
β”‚   β”‚   β”œβ”€β”€ skills.js           # Grouped skill categories
β”‚   β”‚   β”œβ”€β”€ timeline.js         # Career milestones
β”‚   β”‚   β”œβ”€β”€ concepts.js         # Idea vault entries
β”‚   β”‚   └── siteConfig.js       # Name, bio, links, SEO
β”‚   β”‚
β”‚   └── styles/
β”‚       └── globals.css         # Base styles + design tokens
β”‚
β”œβ”€β”€ public/                     # Static assets (resume, OG image)
β”œβ”€β”€ tailwind.config.js          # Design tokens + theme
β”œβ”€β”€ next.config.js
└── jsconfig.json               # Path aliases (@/...)

Getting Started

Prerequisites

  • Node.js 18+
  • npm or yarn

Installation

# Clone the repo
git clone https://github.com/Subhadeep-Dhar/portfolio
cd my-portfolio

# Install dependencies
npm install

# Start the development server
npm run dev

Open http://localhost:3000 in your browser.


Personalising the Portfolio

1. Update your identity

Edit src/data/siteConfig.js:

export const siteConfig = {
  name: 'Your Name',
  handle: '@yourhandle',
  headline: 'Building Solutions Through Code & Curiosity',
  bio: [
    'First paragraph about you.',
    'Second paragraph about your approach.',
  ],
  links: {
    email:    'you@email.com',
    github:   'https://github.com/yourusername',
    linkedin: 'https://linkedin.com/in/yourprofile',
    resume:   '/resume.pdf',   // place file in public/
  },
};

2. Add a project

Open src/data/projects.js and add a new entry to the projects array:

{
  id: 'my-new-project',
  title: 'My New Project',
  tagline: 'One-line hook',
  problem: 'What problem did this solve?',
  hypothesis: 'What did you think would work?',
  approach: 'How did you build it?',
  result: 'What happened β€” metrics, outcomes.',
  future: 'What would you improve next?',
  tech: ['React', 'Python', 'PostgreSQL'],
  tags: ['Fullstack', 'ML'],
  featured: false,              // true = appears in Case Studies
  status: 'completed',          // 'completed' | 'in-progress' | 'archived'
  year: '2024',
  links: {
    demo: 'https://...',        // or null
    github: 'https://...',      // or null
  },
},

The card renders automatically. No other file needs to change.

3. Add a skill

Open src/data/skills.js and add to an existing category:

{ name: 'Redis', level: 'proficient' }
// level options: 'core' | 'proficient' | 'learning'

4. Hide a section

In src/app/page.jsx, comment out any section:

{/* <ConceptVault /> */}

5. Reorder sections

In src/app/page.jsx, move the component lines into any order.


Customisation

Change accent colors

Edit the CSS variables in src/styles/globals.css:

:root {
  --lab-cyan:   #00e5ff;   /* primary neon */
  --lab-purple: #a855f7;   /* secondary accent */
  --lab-bg:     #050810;   /* background */
}

Change fonts

  1. Update the @import in globals.css with your Google Fonts URL
  2. Update tailwind.config.js under theme.extend.fontFamily

Deployment

Vercel (recommended)

npx vercel

Or connect the GitHub repo directly in the Vercel dashboard β€” it auto-detects Next.js and deploys with zero configuration.

Manual build

npm run build    # creates optimised production build
npm run start    # serves production build locally

Performance

  • Background effect is pure CSS (@keyframes) β€” no canvas, no JS
  • Glow effects use CSS box-shadow β€” no SVG filters
  • Framer Motion only runs whileInView scroll reveals and layout transitions
  • Fonts loaded with display=swap to prevent layout shift
  • Images served via Next.js <Image /> with AVIF/WebP optimisation

License

Subhadeep Dhar β€” use it, modify it, ship it. Attribution appreciated but not required.


Acknowledgements

Built with Next.js, Tailwind CSS, and Framer Motion.


Made with β˜• and too many terminal windows open hehehh :))

About

High-performance static portfolio built with Next.js 14, React 18, Tailwind CSS, and Framer Motion.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages