Compare production WordPress sites against their baked static versions to find differences. Use when testing Bake deployments, checking for missing assets, broken styles, console errors, or any visual/functional discrepancies between production and static sites. Triggers on requests to compare sites, verify bake output, check for differences, or test static deployments.
Compare a production WordPress site against its baked static version to ensure they're visually and functionally identical.
/Users/coreyja/Projects/bake/bake.kdlRead /Users/coreyja/Projects/bake/bake.kdl to get:
production field (e.g., https://theconnectedapproach.com)alternative-hosts entry ending in .lavenderiguana.live (e.g., tca.lavenderiguana.live)If user specifies a site name (e.g., "tca", "lavenderiguana"), use that site's config. Otherwise, ask which site to compare.
Get all pages to compare using one of:
/sitemap.xml from production site/sitemap_index.xml if it's a sitemap index/, /contact/, and any pages from sitemapFor each page, compare production vs baked version:
FontAwesome Icons:
// Check if FontAwesome icons are rendering
document.querySelectorAll('[class*="fa-"]').length
// Check FontAwesome stylesheets loaded
Array.from(document.styleSheets).filter(s => s.href?.includes('fontawesome')).map(s => s.href)
Lazy-Loaded Images:
// Check for images with data-src/data-srcset (WordPress lazy loading)
document.querySelectorAll('img[data-src], img[data-srcset]').length
// Verify actual src is populated after scroll
document.querySelectorAll('img').forEach(img => {
if (img.dataset.src && !img.src.includes(img.dataset.src)) {
console.log('Lazy image not loaded:', img.dataset.src);
}
});
Background Images:
// Check for elements with background-image in inline styles
document.querySelectorAll('[style*="background"]').length
// Check Elementor data-settings for background images
document.querySelectorAll('[data-settings]').forEach(el => {
const settings = JSON.parse(el.dataset.settings || '{}');
if (settings.background_image) console.log('BG:', settings.background_image);
});
Elementor Forms:
// Check if Elementor Pro frontend config exists and has correct ajaxurl
window.ElementorProFrontendConfig?.ajaxurl
// On baked sites, this should point to the form handler service, not WordPress
External Resources:
// Check if CDN resources are loading (should NOT be rewritten to /external/)
Array.from(document.querySelectorAll('link[href], script[src]'))
.filter(el => (el.href || el.src)?.includes('/external/'))
.map(el => el.href || el.src)
For each difference found, record:
For each significant issue, create a Linear issue in the Bake project:
Team: Bake (or appropriate team)
Title: [BAKE-XXX] Brief description of the issue
Labels: bug, site-comparison
Description:
- Production URL: [url]
- Baked URL: [url]
- Issue: [detailed description]
- Evidence: [screenshot/console output/network log]
- Affected pages: [list if multiple]
Group related issues (e.g., if the same asset is missing on multiple pages, create one issue).
/external/ paths when they should be allowedcdn-allowlist in bake.kdldata-src/data-srcset attributes not being processedajaxurl pointing to WordPress instead of form handlerElementorProFrontendConfig.ajaxurl value/external/ pathsAfter comparison, provide a summary:
## Site Comparison Results: [site-name]
Production: [url]
Baked: [url]
### Pages Checked: X
### Issues Found: Y
- [Issue 1]: Brief description (Linear: BAKE-XXX)
- [Issue 2]: Brief description (Linear: BAKE-XXX)
### All Clear:
- FontAwesome: OK/Issues
- Lazy Images: OK/Issues
- Background Images: OK/Issues
- Forms: OK/Issues
- Console Errors: OK/Issues
- Network 404s: OK/Issues
### Linear Issues Created:
- BAKE-XXX: [title]
- BAKE-YYY: [title]
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer