Skip to content

karankashyap/VSCodePortfolio

Repository files navigation

VSCode Portfolio

An interactive portfolio site styled as a VSCode clone — your bio, skills, and projects live as "files" in a fake file tree, syntax-highlighted and clickable, in a UI visitors already know how to use.

Built with Next.js (App Router), TypeScript, Tailwind CSS v4, and prism-react-renderer.

Live building-it-in-public write-up: Let's Build a VSCode-Style Interactive Portfolio (4-part series, linked from each part below) — read it if you want the why behind each file, not just the what.

See it Live

Live Demo Live Demo of VSCode Portfolio

Quick start

git clone git@github.com:karankashyap/VSCodePortfolio.git
cd vscode-portfolio
npm install
npm run dev

Open http://localhost:3000.

Make it yours

Everything you need to change lives in two files:

  • lib/data.ts — the file tree. Swap the content strings for your own README, skills, and project write-ups. Add or remove nodes freely; nothing else in the app needs to know about them.
  • lib/config.ts — your name and the social links in the activity bar.

Nothing else needs to change to reskin this into your own portfolio.

How it's built

File Responsibility
lib/data.ts The FileNode tree — your content, typed.
lib/config.ts Name + social links shown in the sidebar.
components/vscode-portfolio/VSCodeWorkspace.tsx Owns open-tabs/active-file state, wires Sidebar + Editor together.
components/vscode-portfolio/Sidebar.tsx Activity bar + accordion file explorer.
components/vscode-portfolio/FileIcon.tsx Per-language icon, via lucide-react — no image assets needed.
components/vscode-portfolio/Editor.tsx Tabs, Prism syntax highlighting, and the markdown-link fix.

Blog series

  1. Part 1 — The data model and project setup
  2. Part 2 — The file explorer sidebar
  3. Part 3 — The code editor and syntax highlighting
  4. Part 4 — Clickable markdown links, and shipping it

License

MIT — see LICENSE. Use it, fork it, ship your own.