amberharriger.com.
I invested heavily in setting up the system upfront. Once that foundation was in place, every task after it was faster AND higher quality, because the system held itself accountable.
Why I built it
I needed a portfolio that carried my voice, my experience, and my personality, not a generic PM site. The market is already full of AI slop, so I wanted to prove that with the right upfront investment, I could move at AI-speed while raising the bar on quality.
How I thought about it before I built it
Foundation first, build second. The output of an LLM is only as good as the system around it. Before any code or design, I built the project context: a portfolio plan, an about-me file, a voice guide with rules and anti-patterns, an architecture plan, a roadmap.
My voice, my words. The intention of this site was personal. I wrote every piece of copy myself and Claude served as the editor and coach, never the author of the content.
Quality gate before scale. Since Claude was going to be making edits, it needed to be in tune with me, so together we built a scoring system to evaluate every piece of writing against my voice before I see it. If the LLM was going to touch anything, the bar had to be high and be measurable.
How I built it
The stack was intentionally simple. There was no need to pay more or bloat the project if the portfolio was going to stay fairly static with changes only being made here and there. The site is HTML, CSS, and JavaScript, deployed via Netlify.
Before I went anywhere near Claude Design, I did the upfront work on my own: I evaluated examples I liked and didn't across the internet, chose a color palette, and plugged in a scoping file created with my cowork project. I brought all of that to Claude Design, and together we shaped the look and the design system. Next, I took the design files and project artifacts into Claude Code and stood up a phased build. The bones of the entire site were live within a few hours.
From there, the project shifted into content. Section by section, I wrote my perspective, sent it to Claude for proofing and editing, then worked with code to post it up.
Iterations and lessons
Voice was the first thing to break, and it was not something I planned for at the start. I started the project with a voice guide I had trained and created with Claude via interviews and writing samples. Early prompts for asking Claude to edit the content for my portfolio produced output that wasn't right. I immediately registered that I was sinking time into back and forth versus building up the system first so it could scale out for subsequent pieces. I stopped iterating on prompts and built a system instead: writing methodology, voice scoring rubric, eval prompts, benchmark corpus of my raw writing. The system catches gaps, proposes its own updates, and continues learning over time. That investment future-proofed every piece of writing the system has helped produce since.
Heavy upfront work pays off. The hours I spent on context, voice rules, and project files compounded across every task that came after. Content built itself in a quarter of the time it would have taken otherwise, because the system already knew what I was trying to do.
Working with Claude in a management style to define scope, ask questions until aligned, then verify the work, kept the output quality high and the work mine.
Recognizing a setup problem fast is the most important skill of working with AI. When something is off, the question is rarely capability. It is almost always the system around the LLM, and tuning prompts on a broken setup is the most expensive way to spend cycles. The faster I caught a setup problem and rebuilt the system, the less time I wasted on fixes that were never going to hold.
Where it's headed
The site is live, and the system I built around it continues to learn from every new piece of writing I produce. The patterns I built here are now the working method I bring to every new AI project.