Product

Building My Portfolio Like a Product

Updated 4 min read
  • portfolio
  • product-thinking
  • next.js
  • iteration
  • case-study
On this page, 6 sections

I run this site like a product: every version exists because the one before it failed at something specific.

First written on 22 Apr 2026. Updated on 2 Oct 2026 to match the release history in the changelog: v5 merged on 22 Aug 2026, v6 shipped in September 2026, and the Lighthouse figure below comes from a run on 29 Aug 2026.

Version 1: The 2-Hour HTML Page

My first portfolio was a single index.html with inline CSS. No JavaScript, no animations, no case studies. Just my name, a link to my resume, and three bullet points about what I do.

It shipped in 2 hours. And it did its job: the first interview that came through the site came through that page (self-reported).

But it taught me nothing about how to present work in a way that builds trust. A resume link is not a product. It's a file download.

Why I Kept Iterating

Each version solved a specific failure mode of the previous one. Release names and months follow the changelog; build times are my own estimates.

VersionProblem SolvedStackTime
v1 (Jan 2026)"I don't have a site"HTML/CSS2 hours
v2 (Feb 2026)"Nobody understands my work"Static HTML, GSAP, CDN libs3 weeks
v3 (Mar 2026)"Can't maintain 14 HTML files"Next.js 14, TypeScript2 weeks
v4 (Apr 2026, phases to Aug)"Performance + SEO + accessibility gaps"Next.js 16, React 191 week
v5 (Aug 2026)"The work is buried under decoration"Same stack, working-paper redesign3 days
v6 (Sept 2026)"Case studies read like reports, not products"Same stack, MDX block librarynot logged

The key insight: each version answered a specific failure of the one before, not a tech upgrade for its own sake. v2 happened because reviewers told me they could not tell what I actually do. v3 happened because I kept forgetting to update all 14 HTML files. v4 happened because Lighthouse scores mattered for SEO. v6 happened because the case studies read like reports, when what a reviewer needs is the product, the decision and the evidence.

Product Thinking Applied

1. Define Success Before Building

For v5, I defined exactly what "launch-ready" means:

  • Lighthouse > 90 across all categories (a target; the v5 home page measured 65 for performance on 29 Aug 2026)
  • Real testimonials with verifiable context
  • Case studies with measurable outcomes
  • Zero broken links, zero console errors

Without this definition, "improvements" would never end.

2. Scope Ruthlessly

My initial v5 improvement list had 32 items. I ranked them by effort × impact and cut 40% as "nice-to-have." The portfolio didn't need a CMS, analytics dashboards, or AI chatbot features. It needed trust signals and clear copy.

3. Ship Incremental Value

I didn't rebuild from scratch. Each change was atomic and independently valuable:

  • Better tagline → immediate clarity improvement
  • Security headers → immediate trust improvement
  • Headshot → immediate personal connection

No change depended on another. If I stopped after 10 items, the site was still better.

Technical Decisions Worth Noting

Why Next.js? Static HTML worked but didn't scale. At the time of the move (v3), with 4 case studies, 4 blog articles, and 14 pages, any content change meant touching multiple files. Next.js gives me component reuse, MDX for content, and SSG for performance.

Why not a CMS? I write in VS Code. Adding Sanity or Contentful would add a build step, a dependency, and a failure mode — all for content I update monthly. MDX files in /content/ work perfectly.

Why CSS Modules over Tailwind? Personal preference. I think in components and want co-located styles. Tailwind's utility classes make diffs harder to review and increase cognitive load for style debugging.

Lessons for Other Builders

  1. Ship v1 in a day. A live URL beats a perfect Figma. Get feedback on real content, not mockups.
  2. Version based on failure modes. Don't rebuild because a new framework dropped. Rebuild because users told you something doesn't work.
  3. Measure what matters. For a portfolio, the metric is "did I get the interview." Everything else is vanity.
  4. Content > Code. A beautifully-engineered site with generic copy loses to an ugly site with compelling case studies.

What's Next

v5, merged on 22 Aug 2026, was the first version I'd have called "complete" at the time. Not perfect, but sufficient for its job: earning interviews through demonstrated competence. The launch audit that followed is in Seventeen Checks Before You Call a Site Done.

The next failure mode arrived quickly: the case studies read like reports. v6, in September 2026, rebuilt them as product pages, and the build is written up in the portfolio case study. The next iteration will be driven by the next failure mode I discover.

And if that failure mode is "nobody found my site" — then the next version will be about distribution, not design.

About the author

Dhruv Singhal

Dhruv Singhal has about a year of product experience across internships, most recently as a product intern on the growth team at The Sleep Company (Jul–Oct 2026). He builds small, tested products and writes about AI evaluation, retention analytics and product judgment.