PROJECT · 2024

Neo-Brutalist Portfolio.

The previous portfolio: neo-brutalist, and it edits itself.

Neo-Brutalist Portfolio: screenshot
ROLE
Solo · design + code
STACK
React · TypeScript · Tailwind · Vite
TIME
4 days
STATUS
Live · superseded by this site
overview

A personal portfolio built in a neo-brutalist idiom, hard black borders, zero border-radius, bold offset shadows, with the home page laid out as a bento grid. Content lives as typed arrays in the repo, and an admin panel writes to them directly. Built fast and largely vibe-coded with bolt.new and Cursor — four days from idea to deployed.

the problem

Most portfolios need a redeploy or a CMS subscription to change a sentence. I wanted to edit content from the browser without either, and without a database.

approach
  1. Kept all content as typed arrays in the repo: content as code, no database.
  2. Built a gated admin panel that serialises edits back to the data file.
  3. In production, saves commit to GitHub via the Contents API; Vercel redeploys on the commit.
  4. In dev, a Vite middleware writes the same file locally.
what it does
  • ✓ Neo-brutalist design: hard black borders, no radius, bold offset shadows
  • ✓ Bento-grid home page composed from section components
  • ✓ Built-in admin panel that rewrites site content
  • ✓ Content commits to GitHub via the Contents API, triggering a redeploy
  • ✓ Fully responsive
process shots
v.1
v.2
v.3
v.4
outcome

Ran as the live portfolio at ashwinkv.vercel.app. Superseded by this notebook-style site, which moved content into Astro collections and TinaCMS.