← back to projects
Case Study.
ashwin.kv ashwin.kv / portfolio.2026
PROJECT · 2024
Neo-Brutalist Portfolio.
The previous portfolio: neo-brutalist, and it edits itself.
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
- Kept all content as typed arrays in the repo: content as code, no database.
- Built a gated admin panel that serialises edits back to the data file.
- In production, saves commit to GitHub via the Contents API; Vercel redeploys on the commit.
- 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.