In the first part of this series, I walked through the technical grit of rebuilding a musician's web platform from scratch—spending over 320 hours fixing legacy WordPress code, writing custom CLI tools with Node.js and FFmpeg, and crafting a lightweight Vanilla JS SPA router.

If Part 1 was about the engineering side, Part 2 is about the human side: scope creep, irrational client expectations, and why finishing an "abandoned" project is sometimes the ultimate test of a developer’s character.

"Appetite Comes With Eating": How a Volunteer Portfolio Case Turned Into Scope Creep

They say the road to hell is paved with good intentions.

We stepped into this project on pure enthusiasm. The agreement was simple: we help an independent artist build a sleek web presence for free, and in return, we get a real-world production case for our engineering portfolios. Win-win, right?