- Initialize beads (.beads/ directory) - Add Claude Code hooks for SessionStart/PreCompact - Update CLAUDE.md to clarify all build artifacts are committed - Update .gitignore to allow node_modules and dist
23 KiB
Executable File
HomeProz WordPress - Step-by-Step Implementation Guide
This document provides atomic, testable steps for implementing the HomeProz WordPress site. Each step should be completed, tested, and committed before moving to the next.
Reference: See CLAUDE.md in webroot for coding mandates and technical specifications.
Pre-Development Setup
Step 0.1: Initialize Git Repository
Task: Create git repo in the WordPress installation directory.
cd /var/www/html
git init
echo "# HomeProz WordPress Site" > README.md
Test: Run git status - should show untracked files.
Commit:
git add README.md CLAUDE.md
git commit -m "Initial commit: project documentation"
Step 0.2: Database Snapshot - Baseline
Task: Create initial database snapshot before any theme work.
mysqldump -u [user] -p homeproz > /var/www/html/db-snapshots/db-baseline.sql
mkdir -p /var/www/html/db-snapshots
Test: File exists and has reasonable size (should be small, just WP defaults).
Commit:
git add db-snapshots/
git commit -m "Baseline database snapshot"
Phase 1: Foundation
Step 1.1: Create Theme Directory Structure
Task: Create the homeproz theme folder with required files.
Create:
wp-content/themes/homeproz/
├── style.css (with theme header comment)
├── functions.php (empty, will populate)
├── index.php (minimal template)
├── screenshot.png (placeholder or actual)
└── src/
├── main.js
├── main.scss
└── tailwind.css
Test:
- Go to WordPress Admin → Appearance → Themes
- "HomeProz" theme should appear (may show broken thumbnail)
- Theme can be activated without fatal errors
Commit:
git add wp-content/themes/homeproz/
git commit -m "Phase 1.1: Theme directory structure"
Step 1.2: Initialize Vite + Tailwind
Task: Set up build tooling in theme directory.
Create in themes/homeproz/:
package.jsonvite.config.jstailwind.config.jspostcss.config.js
Install dependencies:
cd wp-content/themes/homeproz
npm install
Test:
- Run
npm run dev- Vite dev server starts without errors - Run
npm run build- Createsdist/folder with compiled assets
Commit:
git add wp-content/themes/homeproz/package*.json
git add wp-content/themes/homeproz/*.config.js
git add wp-content/themes/homeproz/dist/
git commit -m "Phase 1.2: Vite and Tailwind configuration"
Step 1.3: Configure theme.json
Task: Create WordPress block editor configuration with HomeProz brand colors.
Create theme.json with:
- Color palette (dark theme colors)
- Typography settings (Abril Fatface, Inter)
- Spacing scale
- Layout widths
Test:
- Activate theme
- Create new page in WordPress
- Block editor should show HomeProz colors in color picker
- Font options should be available
Commit:
git add wp-content/themes/homeproz/theme.json
git commit -m "Phase 1.3: Block editor theme.json configuration"
Step 1.4: Create functions.php with Includes Structure
Task: Set up functions.php to load modular includes.
Create:
functions.php(loads includes)inc/theme-setup.php(theme supports, menus)inc/enqueue.php(scripts and styles)
Test:
- Theme activates without errors
- Check browser dev tools - Vite assets load
- jQuery is available: open console, type
jQuery.fn.jquery- shows version
Commit:
git add wp-content/themes/homeproz/functions.php
git add wp-content/themes/homeproz/inc/
git commit -m "Phase 1.4: functions.php and includes structure"
Step 1.5: Build Header Template
Task: Create header.php with navigation.
Create:
header.phptemplate-parts/header/site-header.phptemplate-parts/header/site-header.scsstemplate-parts/header/navigation.js
Requirements:
- Logo area (left)
- Primary navigation menu (center/right)
- Mobile hamburger menu
- Body class must include page-specific class (e.g.,
Home_Page)
Test:
- View any page on frontend
- Header displays with logo area and nav
- Inspect
<body>tag - has appropriate class - Mobile view shows hamburger menu
- Menu opens/closes on click
Commit:
git add wp-content/themes/homeproz/header.php
git add wp-content/themes/homeproz/template-parts/header/
git commit -m "Phase 1.5: Header template with navigation"
Step 1.6: Build Footer Template
Task: Create footer.php with widget areas.
Create:
footer.phptemplate-parts/footer/site-footer.phptemplate-parts/footer/site-footer.scss
Requirements:
- Logo
- Quick links
- Contact info
- Social media icons
- Copyright/legal text
- Widget areas registered in theme-setup.php
Test:
- View any page on frontend
- Footer displays at bottom
- WordPress Admin → Appearance → Widgets shows footer widget areas
- Footer content is styled correctly (dark theme)
Commit:
git add wp-content/themes/homeproz/footer.php
git add wp-content/themes/homeproz/template-parts/footer/
git commit -m "Phase 1.6: Footer template"
Step 1.7: Create Base Page Template
Task: Build page.php as the default page template.
Create:
page.php- Add
Default_Pagebody class logic
Requirements:
- Includes header and footer
- Content area with appropriate width constraints
- Supports WordPress block editor content
Test:
- Create a new Page in WordPress admin
- Add some content (headings, paragraphs, images)
- View page on frontend
- Content displays correctly with proper styling
- Body has class
Default_Page
Commit:
git add wp-content/themes/homeproz/page.php
git commit -m "Phase 1.7: Default page template"
Step 1.8: Phase 1 Database Snapshot
Task: Snapshot database after foundation phase.
mysqldump -u [user] -p homeproz > db-snapshots/db-phase-1-foundation.sql
Commit:
git add -A
git commit -m "Phase 1 Complete: Foundation - theme scaffold, Vite, Tailwind, header, footer, base page"
Phase 2: Property System
Step 2.1: Register Property Custom Post Type
Task: Create the Property CPT.
Create:
inc/custom-post-types.php- Register
propertypost type with labels, supports, archive
Test:
- WordPress Admin shows "Properties" in sidebar
- Can create a new Property
- Property has title, editor, featured image
- Visit
/properties/- archive page exists (may be unstyled)
Commit:
git add wp-content/themes/homeproz/inc/custom-post-types.php
git commit -m "Phase 2.1: Property custom post type"
Step 2.2: Register Property Taxonomies
Task: Create taxonomies for filtering.
Add to custom-post-types.php:
property_type(Residential, Commercial, Land, Multi-Family)property_status(Active, Pending, Sold)property_location(Cities)
Test:
- Edit a Property - taxonomy meta boxes appear
- Can add terms to each taxonomy
- Terms save correctly
Commit:
git add wp-content/themes/homeproz/inc/custom-post-types.php
git commit -m "Phase 2.2: Property taxonomies"
Step 2.3: Install and Configure ACF Pro
Task: Install ACF Pro and create Property field group.
- Install ACF Pro plugin
- Create field group "Property Details"
Create:
inc/acf-fields.php(programmatic field registration or export JSON)
Fields needed:
- property_status (if not using taxonomy)
- price (number)
- mls_number (text)
- street_address, city, state, zip (text fields)
- bedrooms, bathrooms, square_feet (numbers)
- lot_size, year_built, garage (text/number/select)
- gallery (gallery field)
- short_description (textarea)
- features (checkbox or repeater)
- listing_agent (post object or user)
Test:
- Edit a Property
- All ACF fields appear below editor
- Can enter data in all fields
- Data saves and persists on reload
Commit:
git add wp-content/themes/homeproz/inc/acf-fields.php
git add wp-content/plugins/advanced-custom-fields-pro/ # if committing plugin
git commit -m "Phase 2.3: ACF Pro with Property fields"
Step 2.4: Build Property Card Component
Task: Create reusable property card template part.
Create:
template-parts/property/property-card.phptemplate-parts/property/property-card.scss
Requirements:
- Featured image (16:10 aspect ratio)
- Status badge (colored by status)
- Price
- Address
- Bed/bath/sqft icons
- "View Details" link
Test:
- Create a test property with all fields filled
- Include property-card.php in index.php temporarily
- Card displays correctly with all data
- Status badge shows correct color
- Responsive on mobile
Commit:
git add wp-content/themes/homeproz/template-parts/property/
git commit -m "Phase 2.4: Property card component"
Step 2.5: Build Property Archive Template
Task: Create the properties listing page.
Create:
archive-property.phptemplate-parts/property/property-filters.phptemplate-parts/property/property-filters.scsstemplate-parts/property/property-filters.js
Requirements:
- Hero section with title
- Filter bar (Type, Price, Beds, Status dropdowns)
- Results count
- Property cards in grid (3 col desktop, 2 tablet, 1 mobile)
- Pagination
- Body class:
Properties_Archive
Test:
- Create 6+ test properties with varying data
- Visit
/properties/ - All properties display in grid
- Filters appear (functionality in next step)
- Pagination works if enough posts
- Responsive layout works
Commit:
git add wp-content/themes/homeproz/archive-property.php
git commit -m "Phase 2.5: Property archive template"
Step 2.6: Implement AJAX Property Filtering
Task: Make filters functional with AJAX.
Update:
property-filters.js- jQuery AJAX on filter changeinc/ajax-handlers.php- WordPress AJAX endpointfunctions.php- register AJAX actions
Requirements:
- Filters update results without page reload
- Show spinner on FIRST load only
- Subsequent filter changes show old results until new arrive
- Results count updates
- URL updates with filter state (for shareability)
Test:
- Visit
/properties/ - Change a filter dropdown
- Results update without page reload
- Spinner shows briefly on first interaction
- Changing filters again does NOT show spinner (old data visible)
- URL reflects filter state
- Direct link to filtered URL works
Commit:
git add wp-content/themes/homeproz/inc/ajax-handlers.php
git add wp-content/themes/homeproz/template-parts/property/property-filters.js
git commit -m "Phase 2.6: AJAX property filtering"
Step 2.7: Build Single Property Template
Task: Create the property detail page.
Create:
single-property.phptemplate-parts/property/property-gallery.phptemplate-parts/property/property-gallery.scsstemplate-parts/property/property-gallery.jstemplate-parts/property/property-details.phptemplate-parts/property/property-agent.php
Requirements:
- Breadcrumb navigation
- Photo gallery with lightbox
- Property details sidebar (sticky on desktop)
- Full description
- Features list
- Location/map section
- Agent contact card
- Body class:
Single_Property
Test:
- View a property with all fields filled
- Gallery displays and lightbox works
- All property data displays correctly
- Agent card shows with contact info
- Sidebar sticks on scroll (desktop)
- Mobile layout is single column
Commit:
git add wp-content/themes/homeproz/single-property.php
git add wp-content/themes/homeproz/template-parts/property/
git commit -m "Phase 2.7: Single property template"
Step 2.8: Phase 2 Database Snapshot
Task: Snapshot database after property system phase.
mysqldump -u [user] -p homeproz > db-snapshots/db-phase-2-property-system.sql
Commit:
git add -A
git commit -m "Phase 2 Complete: Property system - CPT, ACF, archive, single, AJAX filters"
Phase 3: Page Templates
Step 3.1: Build Homepage Template
Task: Create the homepage with modular sections.
Create:
front-page.phptemplate-parts/components/hero-section.phptemplate-parts/components/hero-section.scsstemplate-parts/components/featured-properties.phptemplate-parts/components/value-props.phptemplate-parts/components/team-preview.phptemplate-parts/components/testimonial.phptemplate-parts/components/cta-section.php
Requirements:
- Hero with headline, subheadline, CTAs
- Featured properties (3 most recent active)
- Value proposition grid (3 columns)
- Team preview section
- Testimonials
- Contact CTA section
- Body class:
Home_Page
Test:
- Set a static front page in Settings → Reading
- Visit homepage
- All sections display in order
- Featured properties show real data
- Responsive on all breakpoints
- CTAs link to correct pages
Commit:
git add wp-content/themes/homeproz/front-page.php
git add wp-content/themes/homeproz/template-parts/components/
git commit -m "Phase 3.1: Homepage template with sections"
Step 3.2: Build About Page Template
Task: Create the About/Team page.
Create:
page-about.phptemplate-parts/components/agent-card.phptemplate-parts/components/agent-card.scss
Requirements:
- Page hero
- Company story content area
- Mission/values section
- Team grid (4 agents)
- Broker information
- Contact CTA
- Body class:
About_Page
Test:
- Create page with slug "about"
- Add company content in editor
- View page - custom template loads
- Team members display (from ACF options or CPT)
- All sections styled correctly
Commit:
git add wp-content/themes/homeproz/page-about.php
git commit -m "Phase 3.2: About page template"
Step 3.3: Build Contact Page Template
Task: Create the Contact page with form.
Create:
page-contact.phptemplate-parts/components/contact-form.phptemplate-parts/components/contact-info.php
Requirements:
- Page hero
- Two-column layout: form left, info right
- Contact Form 7 integration
- Address, phone, email display
- Google Maps embed
- Body class:
Contact_Page
Test:
- Install Contact Form 7 plugin
- Create contact form
- Create page with slug "contact"
- Add form shortcode to page or template
- View page - form displays
- Submit form - email received
- Map displays correctly
Commit:
git add wp-content/themes/homeproz/page-contact.php
git add wp-content/themes/homeproz/template-parts/components/contact-*.php
git commit -m "Phase 3.3: Contact page template"
Step 3.4: Build Blog Archive Template
Task: Create the blog listing page.
Create:
archive.phptemplate-parts/content/post-card.phptemplate-parts/content/post-card.scsssidebar.phptemplate-parts/sidebar/sidebar-blog.php
Requirements:
- Page hero
- Two-column layout: posts left, sidebar right
- Post cards with featured image, title, excerpt, date
- Pagination
- Sidebar with search, categories, recent posts
- Body class:
Blog_Archive
Test:
- Create 4+ blog posts with featured images
- Set Posts page in Settings → Reading
- Visit blog page
- Posts display in grid/list
- Sidebar widgets work
- Pagination works
- Responsive layout
Commit:
git add wp-content/themes/homeproz/archive.php
git add wp-content/themes/homeproz/sidebar.php
git add wp-content/themes/homeproz/template-parts/content/
git add wp-content/themes/homeproz/template-parts/sidebar/
git commit -m "Phase 3.4: Blog archive template"
Step 3.5: Build Single Post Template
Task: Create the blog post template.
Create:
single.phptemplate-parts/content/content-single.phptemplate-parts/content/author-bio.phptemplate-parts/content/related-posts.php
Requirements:
- Featured image header
- Post title, date, author, category
- Content area
- Sidebar
- Author bio box
- Related posts (3)
- Body class:
Single_Post
Test:
- View a blog post
- All elements display correctly
- Author bio shows
- Related posts appear
- Sidebar displays
- Content styling matches design
Commit:
git add wp-content/themes/homeproz/single.php
git commit -m "Phase 3.5: Single post template"
Step 3.6: Build Additional Templates
Task: Create remaining page templates.
Create:
template-full-width.phptemplate-landing.phpsearch.php404.php
Requirements:
- Full width: no max-width constraint
- Landing: minimal header/footer
- Search: results display, property cards for properties, list for posts
- 404: friendly message, search, quick links
- Appropriate body classes for each
Test:
- Create page, select "Full Width" template - no sidebar, full width
- Create page, select "Landing Page" - minimal header/footer
- Use site search - results page works
- Visit invalid URL - 404 page displays
Commit:
git add wp-content/themes/homeproz/template-*.php
git add wp-content/themes/homeproz/search.php
git add wp-content/themes/homeproz/404.php
git commit -m "Phase 3.6: Additional page templates"
Step 3.7: Phase 3 Database Snapshot
Task: Snapshot database after page templates phase.
mysqldump -u [user] -p homeproz > db-snapshots/db-phase-3-page-templates.sql
Commit:
git add -A
git commit -m "Phase 3 Complete: Page templates - homepage, about, contact, blog, 404, search"
Phase 4: Block Patterns
Step 4.1: Create Block Patterns
Task: Build reusable Gutenberg patterns.
Create:
patterns/hero-cta.phppatterns/feature-grid.phppatterns/team-grid.phppatterns/testimonial.phppatterns/split-content.phppatterns/cta-banner.phpinc/block-patterns.php
Test:
- Edit any page in WordPress
- Open block inserter → Patterns
- HomeProz patterns appear
- Insert each pattern - displays correctly
- Patterns are editable
Commit:
git add wp-content/themes/homeproz/patterns/
git add wp-content/themes/homeproz/inc/block-patterns.php
git commit -m "Phase 4.1: Block patterns"
Step 4.2: Editor Styles
Task: Make block editor match frontend.
Create/update:
src/editor.scss- Update
enqueue.phpto add editor styles
Test:
- Edit a page in WordPress
- Editor styling matches frontend (colors, fonts, spacing)
- Blocks preview accurately
Commit:
git add wp-content/themes/homeproz/src/editor.scss
git commit -m "Phase 4.2: Editor styles"
Step 4.3: Phase 4 Database Snapshot
Task: Snapshot database after patterns phase.
mysqldump -u [user] -p homeproz > db-snapshots/db-phase-4-patterns.sql
Commit:
git add -A
git commit -m "Phase 4 Complete: Block patterns and editor styles"
Phase 5: Content & SEO
Step 5.1: Install and Configure SEO Plugin
Task: Set up Yoast SEO or Rank Math.
- Install plugin
- Run setup wizard
- Configure basic settings
Test:
- Edit a page/property - SEO meta box appears
- Can edit title, description
- View page source - meta tags present
Commit:
git commit -m "Phase 5.1: SEO plugin configured"
Step 5.2: Add Schema Markup
Task: Implement structured data.
Update templates to include:
- RealEstateAgent schema (about page, agent cards)
- RealEstateListing schema (single property)
- LocalBusiness schema (footer/contact)
Test:
- View page source - JSON-LD schema present
- Test with Google Rich Results Test
- No schema errors
Commit:
git commit -m "Phase 5.2: Schema.org structured data"
Step 5.3: Enter Initial Content
Task: Populate site with real content.
- Homepage content
- About page content + team data
- Contact information
- Sample properties (or real listings)
- Sample blog posts (optional)
Test:
- Browse entire site
- No placeholder/lorem ipsum text visible
- All images load
- Contact info is accurate
Commit:
mysqldump -u [user] -p homeproz > db-snapshots/db-phase-5-content.sql
git add -A
git commit -m "Phase 5 Complete: SEO and initial content"
Phase 6: Performance & Security
Step 6.1: Caching and Optimization
Task: Install and configure performance plugins.
- Install caching plugin (WP Super Cache or LiteSpeed)
- Configure caching rules
- Enable GZIP compression
- Verify lazy loading for images
Test:
- Run Lighthouse audit
- Performance score > 80
- Page load time < 3s
- Images lazy load on scroll
Commit:
git commit -m "Phase 6.1: Caching and performance optimization"
Step 6.2: Security Hardening
Task: Configure security measures.
- Install Wordfence or similar
- Configure firewall rules
- Enable login protection
- Verify SSL/HTTPS
- Set up automated backups
Test:
- Site loads over HTTPS only
- Security plugin dashboard shows no critical issues
- Backup runs successfully
Commit:
git commit -m "Phase 6.2: Security hardening"
Step 6.3: Phase 6 Database Snapshot
mysqldump -u [user] -p homeproz > db-snapshots/db-phase-6-optimization.sql
git add -A
git commit -m "Phase 6 Complete: Performance and security"
Phase 7: Testing & Launch
Step 7.1: Full QA Testing
Task: Complete testing checklist.
Test all items in IMPLEMENTATION-PLAN.md Section 9:
- Functionality tests
- Responsiveness tests
- Browser compatibility
- Performance benchmarks
- SEO verification
Document any issues found.
Step 7.2: Create Documentation
Task: Write user documentation.
Create:
- Property listing guide
- WordPress basics guide
- Contact form management
Deliver to: Client as PDF or in WordPress admin.
Step 7.3: Client Training
Task: Conduct training session.
Cover:
- Adding/editing properties
- Managing photos
- Updating pages
- Viewing form submissions
Step 7.4: Final Snapshot and Launch
mysqldump -u [user] -p homeproz > db-snapshots/db-final-prelaunch.sql
git add -A
git commit -m "Phase 7 Complete: QA tested, documented, ready for launch"
git tag v1.0.0
Post-Launch
- Monitor for issues first 48 hours
- Verify backups running
- Check form submissions working
- Begin 60-day warranty period
Quick Reference: Git Workflow
After completing any step:
# If database changed
mysqldump -u [user] -p homeproz > db-snapshots/db-[description].sql
# Always
git add -A
git commit -m "[Phase X.X]: [Description of what was done]"
After completing each phase:
mysqldump -u [user] -p homeproz > db-snapshots/db-phase-X-[name].sql
git add -A
git commit -m "Phase X Complete: [Summary]"