← All posts

Building a Bento Portfolio with Next.js

Next.jsReactPortfolioDesign

The bento grid layout has become one of the most popular design patterns for modern portfolios. It's playful, information-dense, and inherently responsive.

Why Bento?

Traditional portfolios follow a linear scroll pattern. Bento grids let you show multiple facets of your identity simultaneously — your work, your music taste, your tech stack, and your personality all at once.

The Tech Stack

  • Next.js 16 with App Router for SSR and API routes
  • Motion (Framer Motion) for spring animations
  • Tailwind CSS for glassmorphism styling
  • ISR for live Spotify and GitHub data

Key Features

Eye-Tracking Avatar

The avatar's eyes follow your cursor using useMotionValue and useSpring, computed with Math.atan2 — all without causing React re-renders.

Live Spotify Widget

A Next.js API route refreshes the Spotify token and returns the currently playing track, cached with ISR for 30 seconds.

Data-Driven Grid

The entire grid layout is driven by a data.json file, making it trivially easy to rearrange, add, or remove boxes without touching component code.

What I Learned

Building this portfolio reinforced that the best portfolio is one that demonstrates skill through its own construction. Every animation, every API integration, every design decision is itself a showcase.