Skip to main content
All writing

6 min read

How I built my portfolio website with AI: the actual workflow

The real workflow I used with Google Antigravity and Claude to build adityagangwani.me — prompting strategy, iteration loop, what the AI got wrong, and what I had to fix by hand.

Why I am writing this

Most "I built my site with AI" posts are either a three-sentence tweet or a sponsored feature. This one is neither. adityagangwani.me is a real production site running Next.js App Router, TypeScript, and Tailwind, deployed on Vercel. I want to be honest about what the AI workflow actually looked like — including where it fell short.

The tools and the starting point

I used Google Antigravity as the primary AI coding environment and Claude for design and copy review. Both are agentic: they can read files, run commands, and iterate without me stepping through every line. That matters more than the model quality for a project like this, because the bottleneck is coordination, not raw generation.

The starting point was a clear brief: who the site is for, what pages it needs, and what the visual direction should be. I wrote that brief before touching any tool. The brief is the most important artifact you produce in a project like this. A vague brief produces a generic site.

The prompting strategy that worked

I prompted in phases, not as one big request. Phase one: generate the structure and the homepage. Phase two: iterate on each section with specific feedback. Phase three: add SEO infrastructure (structured data, sitemap, robots.txt, llms.txt). Phase four: fix what broke.

The key discipline was specificity. "Make it look better" produces noise. "The hero heading is too small on mobile — the computed size at 375px is around 32px, I want at least 40px" produces a fix. The more precisely I described the problem, the faster the AI resolved it.

I also learned to separate design prompts from code prompts. When I wanted a layout change, I described the layout. When I wanted a bug fixed, I described the bug and pointed to the file. Mixing them produced responses that addressed one and ignored the other.

What the AI got wrong

Three things stood out. First, JSON-LD. The AI generated valid schema at first pass, but it missed dateModified in the Article schema and used bare JSON.stringify in the script tag instead of escaping < characters. Both are real issues for Google rich results. I caught them by reading the generated output, not by trusting it.

Second, mobile spacing. The AI consistently produced layouts that looked correct in a 1440px preview and broke at 375px. I ended up reviewing every section at mobile width as a separate pass.

Third, the content. The AI drafted copy that was technically correct but tonally wrong — too corporate for a freelance portfolio, not specific enough about the actual projects. I rewrote every piece of copy by hand. The code is mostly AI-generated; the words are mostly mine.

The iteration loop

The loop was: prompt → review in browser → identify the most important issue → prompt again. Not "prompt → accept everything → move on." That second version produces a site that looks AI-generated because it is AI-accepted, not AI-assisted.

The distinction matters. AI assistance means the human is still making the aesthetic and strategic calls. The AI executes. When you invert that, you get something that works but does not feel considered.

What I would do differently

Start the brief earlier and go deeper on it. The brief I wrote was good; a better one would have cut two or three revision rounds. I also would have set up the design tokens — the colour palette, spacing scale, and typography — as a separate first step before generating any components.

If you want to follow the same workflow, the [step-by-step portfolio guide](/portfolio-guide) walks through every phase from choosing an AI tool to going live on a custom domain. If you need a portfolio site built for you rather than building it yourself, [see how I work](/hire/website-development).

  • Portfolio
  • AI
  • Next.js
  • GitHub
  • Career