A futuristic, modular personal portfolio β built for developers who think like researchers.
Dark futuristic UI Β· Neon accents Β· Glassmorphism Β· Fully responsive Live demo : https://portfolio-subhadeep-dhar.vercel.app/
- 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
| 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 |
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 (@/...)
- Node.js 18+
- npm or yarn
# Clone the repo
git clone https://github.com/Subhadeep-Dhar/portfolio
cd my-portfolio
# Install dependencies
npm install
# Start the development server
npm run devOpen http://localhost:3000 in your browser.
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/
},
};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.
Open src/data/skills.js and add to an existing category:
{ name: 'Redis', level: 'proficient' }
// level options: 'core' | 'proficient' | 'learning'In src/app/page.jsx, comment out any section:
{/* <ConceptVault /> */}In src/app/page.jsx, move the component lines into any order.
Edit the CSS variables in src/styles/globals.css:
:root {
--lab-cyan: #00e5ff; /* primary neon */
--lab-purple: #a855f7; /* secondary accent */
--lab-bg: #050810; /* background */
}- Update the
@importinglobals.csswith your Google Fonts URL - Update
tailwind.config.jsundertheme.extend.fontFamily
npx vercelOr connect the GitHub repo directly in the Vercel dashboard β it auto-detects Next.js and deploys with zero configuration.
npm run build # creates optimised production build
npm run start # serves production build locally- Background effect is pure CSS (
@keyframes) β no canvas, no JS - Glow effects use CSS
box-shadowβ no SVG filters - Framer Motion only runs
whileInViewscroll reveals and layout transitions - Fonts loaded with
display=swapto prevent layout shift - Images served via Next.js
<Image />with AVIF/WebP optimisation
Subhadeep Dhar β use it, modify it, ship it. Attribution appreciated but not required.
Built with Next.js, Tailwind CSS, and Framer Motion.
Made with β and too many terminal windows open hehehh :))