In my long career as a web developer, I have built countless WordPress themes from scratch, or on top of various developer “barebones” frameworks. A basic brochure site theme build would normally take a couple of weeks. A more complex build involving custom business business logic could take anywhere from 3-6 months, especially if there were complex compliance or accessibility requirements.

The first time I made a good faith effort to build a robust theme using Claude took a week. The second time, using what I learned the first time, took one day, including design, layout, coding, implementation, and testing. This, more than anything else, is what convinced me of the potential of Claude to add clear, measurable value to every day businesses.

I followed that process when creating the theme for this site, and it’s documented in this post.

Most sessions in this blog involve corrections. Something gets misinterpreted, I clarify, we iterate. That’s normal and productive—it’s how collaboration with Claude actually works.

This session was different. Claude asked nine clarifying questions, I answered them all, and the complete WordPress theme was generated correctly on the first attempt. No corrections needed.

The contrast is instructive.

The Setup

I had an HTML template for the blog homepage—the result of an earlier session where we’d established the warm gray palette, typography (Crimson Pro and DM Sans), and red/gold accent system. Now I needed a full WordPress theme: multiple templates, dynamic menus, widget areas, Customizer options, and proper WordPress patterns.

My opening prompt was detailed—about 200 words covering:

  • The homepage should match the HTML design exactly
  • Required templates: homepage, single post, archive, search, 404
  • Menu locations matching the HTML navigation
  • Mobile hamburger menu behavior
  • Post support for authors, featured images, excerpts
  • Custom image sizes in functions.php
  • Theme metadata (name, author, URLs)
Let me know if there are any questions I should answer before you begin.
Technique

Explicitly inviting clarifying questions before Claude starts building signals that you’d rather answer questions now than make corrections later. It shifts the dynamic from “generate and fix” to “understand and build.”

The Nine Questions

Claude came back with nine questions:

  1. Hero post selection: Always most recent, or configurable?
  2. Post grid count: Fixed or tied to WordPress “posts per page” setting?
  3. Subscribe button: Standalone element or styled nav item?
  4. Footer menu: Same as header, or separate location?
  5. Single post features: Author bio? Related posts? Comments? Sharing? Previous/next?
  6. Archive layout: Grid like homepage, or full-width rows?
  7. Sidebar needs: Any templates need a sidebar?
  8. Search functionality: Functional WordPress search, or placeholder?
  9. Logo customization: How should it be editable in the Customizer?

These aren’t generic questions—they’re specific to the gaps in my prompt. I’d said “menu locations to match the menus shown” but hadn’t specified whether header and footer should be the same location. I’d mentioned a subscribe button but hadn’t said how it should be implemented. I’d described the homepage but not the archive pages.

Boundary

Claude can identify ambiguities in requirements before building. When invited to ask questions, it will surface the decisions you haven’t made yet. This is more efficient than discovering those gaps through broken output.

The Answers

I answered all nine in a single numbered response:

1. Yes, always the most recent post.
2. Customizable with the "posts per page" setting.
3. The style should be applied to the last entry in the main nav, regardless of what it is. It should not be a standalone element.
4. This is a separate menu location called "Footer Info".
5. No author bio section, that will be detailed on an "About" page. Yes, add related posts section. Disable comments and hide them entirely. There should be no comments section at all in the template files. Yes, add social sharing buttons. Yes, add previous/next post. Also, add a widget area to the bottom of the post content section so universal information can be dropped there. Call it "Article Footer".
6. Archive, taxonomy, and search templates should all use full .main container width rows, not a grid display. The title should display first, followed by a meta row that shows "Published on: " and the published date.
7. All templates are full width like the homepage, no sidebar needed. I am considering adding a universal full width footer widget area above the copyright and footer nav row.
8. Search in header should be a fully functional wordpress search.
9. The logo should be editable via Customizer, in two separate fields: icon and name. The icon field will be an image, and the name will be a simple text field. It should default to showing the current icon, and the text "The Claudefather".

Specific, unambiguous, decision-complete. Every question got a direct answer with enough detail to implement.

Technique

Match the format of your answers to the format of the questions. Claude asked numbered questions; I gave numbered answers. This creates clear mapping and reduces the chance of misalignment.

The Output

Claude generated the complete theme in a single response: 13 files, approximately 1,500 lines of code.

  • style.css — All styles plus WordPress theme header
  • functions.php — Theme setup, menus, widgets, Customizer, comments disabled
  • header.php — Logo, search, primary nav with hamburger
  • footer.php — Footer widgets and Footer Info menu
  • front-page.php — Homepage with hero and grid
  • single.php — Post template with related posts, sharing, navigation, widget area
  • archive.php — Full-width row layout
  • search.php — Search results matching archive style
  • 404.php — Error page with search
  • index.php — Fallback template
  • page.php — Static page template
  • author.php — Author archive template
  • js/navigation.js — Mobile hamburger functionality
  • readme.txt — Theme documentation

The theme worked. I installed it, activated it, and published the first post. The only changes I made were minor CSS tweaks—logo sizing adjustments that were preference rather than error.

Insight

The correlation is clear: clarifying questions upfront led to a clean build. Compare this to sessions where we skipped Q&A and iterated through corrections. Both approaches work, but the Q&A approach concentrates the effort in understanding rather than fixing.

What Made This Work

Several factors contributed to the clean outcome:

The initial prompt was detailed but incomplete. 200 words of requirements still left gaps. The difference was inviting questions rather than assuming completeness.

The questions were specific to the gaps. Claude didn’t ask generic questions—it identified exactly where decisions were missing.

The answers were complete and unambiguous. Each answer gave Claude enough information to implement without guessing.

WordPress themes are well-defined. Unlike open-ended creative tasks, theme development has clear patterns. Claude knows what a functions.php file should contain, what hooks to use, how Customizer options work.

Boundary

Claude performs well on tasks with established patterns and clear success criteria. WordPress theme development fits this profile—there are right ways to register menus, create widget areas, and disable comments. The ambiguity is in what to build, not how to build it.

The Minor Tweaks

After seeing the theme live, I made small CSS adjustments:

  • Logo mark size: 36px → 72px
  • Logo text size: 1.5rem → 2.5rem
  • Removed a gold gradient background from the logo mark (artifact of placeholder styling)
  • Added slight margin to logo text

These weren’t corrections—the original values matched the HTML template. But seeing something live reveals preferences you didn’t know you had. That’s normal and doesn’t indicate failure.

The Numbers

  • Prompts to complete theme: 2 (requirements + answers to clarifying questions)
  • Files generated: 13
  • Lines of code: ~1,500
  • Corrections required: 0
  • Post-deployment preference tweaks: 4 minor CSS changes

Not every session can be this clean. Complex creative tasks, ambiguous requirements, and capability boundaries will always require iteration. But when the task has clear patterns and you’re willing to answer questions upfront, Claude can deliver complete, working output on the first pass.