Back to Notes

vectorbuilds.dev — Personal Portfolio Project

Project Overview

URL: vectorbuilds.dev GitHub: https://github.com/vatsal30/my-portfolio Local path: /Users/vector/Documents/Github/my-portfolio/ Purpose: Personal developer portfolio — digital workspace + thought leadership platform Status: 🟡 Live — core features done | Blog articles deferred until after offer (May 2026 kill list)


Tech Stack

Framework:    Next.js 16.1.6 (App Router, React 19)
Language:     TypeScript
Styling:      Tailwind CSS v4
Animations:   Framer Motion + Aceternity UI
Icons:        Lucide React, React Icons, Tabler Icons, Simple Icons CDN
Content:      Local TypeScript files (career.ts, projects.ts, skills.ts) + Markdown/MDX
Blog:         next-mdx-remote + rehype-pretty-code + shiki (syntax highlighting)
APIs:         Spotify, GitHub (react-github-calendar), TMDB, AniList GraphQL
Analytics:    @vercel/analytics + @vercel/speed-insights
Deployment:   Vercel (ISR — revalidate: 3600)
Thumbnails:   Puppeteer — pre-generated PNG project cards (npm run gen:projects)

App Structure

app/
├── page.tsx              ← Homepage (hero, featured projects, career, tech stack)
├── layout.tsx            ← Root layout
├── globals.css
├── about/                ← About page
├── articles/[slug]/      ← Blog articles
├── notes/[slug]/         ← Digital Garden (Obsidian vault via GitHub)
├── projects/page.tsx     ← All projects
├── interests/            ← Anime, movies via AniList + TMDB
├── toolkit/              ← Tech stack showcase
├── api/
│   ├── spotify/          ← Now Playing widget
│   └── abacus/           ← Global click counter

content/
├── career.ts             ← Work history (HCLTech, Crest, CSPIT)
├── projects.ts           ← Pinned projects (featuredProjects array)
├── skills.ts             ← Tech stack
├── testimonials.ts       ← Testimonials
└── data/
    ├── abacus.json       ← Persistent click counter data
    └── games.md

components/               ← All UI components (flat, no subdirs except /ui)

Key Features

FeatureStatusNotes
Spotify Now Playing widget✅ DoneReal-time via /api/spotify
Aura Mode (ripple + starry bg)✅ DoneClick profile photo
Pomodoro Timer✅ DoneBuilt-in widget
Ambient Noise Generator✅ DoneRain, White Noise etc
Digital Garden (Notes)✅ DoneSynced from Obsidian via GitHub token
GitHub Calendar + Commits✅ Donereact-github-calendar
AniList anime tracking✅ DoneLive GraphQL
TMDB movies✅ DoneLive API
LLM-friendly mode toggle✅ DoneStrips UI to raw Markdown
Dark / Light theme✅ Donenext-themes, system-preference aware
Abacus click counter✅ DoneLocal + global via API
Framer Motion animations✅ DoneScroll, hover, micro-interactions
ISR (auto data refresh)✅ Donerevalidate: 3600
Vercel Analytics✅ Done
Blog / Articles⚠️ No articles published yetMDX pipeline ready
SEO — sitemap, robots✅ Donesitemap.ts + robots.ts

Current Projects (content/projects.ts)

TitleTechLink
My PortfolioNext.js, Tailwind, Framer Motiongithub/vatsal30/my-portfolio
Melanoma DetectionPython, TensorFlow, Keras, OpenCVgithub/vatsal30/Melanoma-Detection
LeetCode SolutionsPython, JavaScriptgithub/vatsal30/LeetCode
Advent of CodePythongithub/vatsal30/Advent-of-Code

⚠️ Missing: Real work projects (can't open source). Add AI/Go side projects as they're built.


Career Data (content/career.ts)

CompanyRolePeriod
HCLTechSenior DeveloperApril 2025 – Present
Crest Data SystemsSenior Software EngineerMay 2021 – April 2025
CSPITB.Tech Computer EngineeringGraduated May 2021 (CGPA 9.49)

Blog Articles — DEFERRED (post-offer, Nov 2026+)

Kill list item as of May 11, 2026. Blog competes with interview prep window. Resume after offer accepted.

#TitleNotes
1AskTGE — LLM Performance EngineeringBest candidate — Bedrock, streaming, DynamoDB
2Splunk 90% Performance WinConf24 talk basis
3WebSocket 250-Driver SystemReal-time + reconciliation pattern
4ML Thresholding Engine — System DesignAsync job pattern + ML integration
5DynamoDB Single-Table Design Deep DiveAtomic Bump Pattern, Zero GSIs

Open Tasks (post-offer only)

Post-offer

  • Write + publish article #1: AskTGE LLM perf engineering
  • Update content/career.ts with war story metrics
  • Add testimonials to content/testimonials.ts

Dev Commands

npm run dev          # Start dev server at localhost:3000
npm run build        # Production build
npm run lint         # ESLint
npm run gen:projects # Regenerate project card PNG thumbnails (Puppeteer)

Env Variables Needed

GITHUB_TOKEN=          # Contents: Read-only — for Digital Garden (Obsidian notes)
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
SPOTIFY_REFRESH_TOKEN=
TMDB_API_KEY=
TMDB_READ_TOKEN=

Notes for Claude Code

  • Content lives in /content/*.ts — update career, projects, skills, testimonials there
  • Blog articles → app/articles/[slug]/ with MDX
  • HCLTech code is private — abstract architecture, never publish implementation
  • Production quality only — this is the public face for job applications
  • Positioning: "AI-Native Python Engineer" — Python/FastAPI/RAG + distributed systems + full-stack
  • Inspirations: adityapatil.dev, jasoncameron.dev, prasoon.dev, Aceternity UI