The Cost
Before anything else, here is what this actually costs to run:
| Item | What It Does | Cost |
|---|---|---|
| Domain name | Your address on the internet (e.g., yourname.com) | ~$12/yr |
| GitHub Pro | Hosts your site for free via GitHub Pages | $4/mo |
| Claude Pro | Builds the site, writes the code, creates mockups | $20/mo |
| Total monthly cost | ~$25/mo | |
No hosting fees. No web framework to learn. No design tools to subscribe to. The site you are reading right now runs on this exact stack.
What You Need (and What You Do Not)
You do not need to know HTML, CSS, or JavaScript. You do not need design skills. You do not need a portfolio template from some marketplace. You need three things: a resume or career history to start from, an idea of what you want to showcase, and the willingness to describe what you want in plain English.
Claude handles the rest. It generates the HTML, the styling, the responsive layout, and the interactive elements. When you want something changed, you describe the change. When you want a project page added, you describe the project. The entire workflow is conversational.
Step 1: Buy a Domain
Go to GoDaddy, Namecheap, or Cloudflare Registrar and search for your name. A .com is ideal, but .dev, .io, or .me all work. Most names run $10 to $15 per year. Buy it and move on. Do not spend a week picking the perfect domain. Your name is fine.
Step 2: Set Up GitHub Pages
Create a GitHub repository. The name matters: if your GitHub username is janedoe, name the repository janedoe.github.io. GitHub will automatically serve anything in this repository as a website at that URL.
Go to the repository settings, find the Pages section, and confirm it is set to deploy from the main branch. That is the entire hosting setup. Every time you push code to this repository, your site updates automatically within a minute or two.
Step 3: Point Your Domain
Back in your domain registrar, add a CNAME record that points your domain to yourusername.github.io. In your GitHub repository, go to Settings, then Pages, and enter your custom domain. GitHub will issue a free SSL certificate automatically. Give it a few minutes to propagate and your domain is live.
If DNS feels unfamiliar, tell Claude what registrar you are using and it will give you the exact records to add. The process is the same regardless of the registrar and takes about five minutes.
Step 4: Build Your Site
This is where it gets interesting. Open Claude (Cowork mode or Claude Code) and start with your resume. Tell it something like: "I want to build a personal portfolio site. Here is my resume. Create a single-page site with a hero section, an about section, a career timeline, and a projects section. Dark theme, clean and minimal."
Claude will generate a complete index.html file with embedded CSS. No build step, no framework, no dependencies. A single file that you drop into your GitHub repository. Push it and your site is live.
From there, iterate. The first version will not be perfect. That is the point. You refine it through conversation: "Make the hero section more prominent." "Add a stat showing years of experience." "Change the accent color to blue." Each change takes seconds. You are directing, not coding.
Step 5: Add Project Pages
A portfolio with no projects is a resume with extra steps. The real value comes from showcasing work you have done. Create a projects folder in your repository and start adding case study pages.
For each project, describe it to Claude the way you would explain it to a colleague: what problem it solved, how you approached it, what the outcome was. Claude will generate a dedicated page with sections for the problem, the solution, the architecture, and the results. If the project involves internal tools or proprietary work, Claude can create anonymized SVG mockups of the UI so you can showcase the product without exposing real data.
This is where domain expertise matters more than design skill. You know your work better than any template ever could. Describing it clearly produces a more compelling page than a generic portfolio builder.
Step 6: Make It Yours
The baseline Claude generates is clean and functional. If you want to go further, you have options. Tell Claude to adjust color schemes, typography, spacing, or layout. Reference sites you like and ask it to incorporate elements from them. Add a blog section for writing. Add a contact section with your LinkedIn and email.
If you want a more polished visual design, tools like Lovable can generate styled components that you then integrate into your site. But a well-structured page with strong content will outperform a flashy page with weak content every time. Focus on the substance first.
Step 7: Push and Iterate
When your files are ready, Claude will give you the exact terminal commands to push your code to GitHub. The sequence is always the same: git add, git commit, git push. If you have never used Git, Claude will walk you through authentication and initial setup. Once that is done, deploying changes to your live site takes less than 30 seconds.
The site is never finished. You will come back to it, add projects, refine copy, update your experience as your career progresses. The cost of iteration is effectively zero because every change is a conversation.
Why This Matters
A portfolio is not a vanity project. It is a forcing function. Writing about your work requires you to articulate what you actually did, what impact it had, and why it mattered. That exercise alone is valuable regardless of whether anyone visits the site.
For GRC practitioners, a portfolio addresses a specific gap. The work we do is often invisible: policies written, audits passed, programs built, risks mitigated. None of that shows up on a resume in a way that conveys depth. A portfolio with project pages, case studies, and mockups makes that work tangible.
The barrier to building one used to be real. It required web development skills or money for a designer or settling for a cookie-cutter template. That barrier does not exist anymore. The tools are here, the cost is minimal, and the only prerequisite is knowing your own work well enough to describe it.
One more thing: if you get stuck at any point, confused by a step, or unsure how something works, just ask Claude. Describe what you are trying to do and where you are stuck. It will guide you through it. That is the whole point.
Start this weekend. Ship something. Iterate from there.