Skip to main contentSkip to footer
    Back to Case Studies
    GenesisHome Renovations, Santa Ana
    Website RefreshWordPressBrowser Automation

    Genesis Home Renovations

    A licensed, bonded and insured remodeling contractor in Santa Ana serving Orange County and the Inland Empire. The site was a stock-blue Elementor build with eight service pages. We rebranded it, doubled its service coverage, added legal pages, fixed the things that were silently broken, and did it without any file or database access.

    Project Preview

    Live website preview - genesishomerenovations.com

    9
    New service pages built by automation
    17
    Service pages live, up from 8
    24
    Pages rewritten to energy-efficiency copy
    0
    Lines of file or database access used

    Warm rebrand by override

    The old design hard-coded stock Elementor blue and navy into every widget. One Customizer CSS layer remaps them to a terracotta and warm-charcoal palette site-wide.

    Pages built through the Elementor API

    Nine new service pages cloned from Kitchen and edited through Elementor's JS API from Playwright: headings, intros, feature images, hero images, map, menu and grid.

    Privacy Policy and Terms

    California-aware legal pages (CCPA/CPRA, SMS consent, estimates-are-not-contracts) created as plain WordPress pages from a source-of-record in the repo.

    Mobile off-canvas drawer

    A self-contained slide-in drawer with all 17 services, Call Us and Contact Us, replacing the theme's push-down mobile menu.

    Energy-efficiency messaging

    All 24 pages rewritten from generic remodeling copy to an energy-savings position, with a nine-question FAQ and per-service 'What's Included' lists.

    Silent breakages fixed

    Stuck entrance animations that hid whole sections, fonts loading from a dead staging domain, a blank Pro gallery, counters stuck at zero.

    The problem

    Genesis Home Renovations is a full-service remodeling contractor based in Santa Ana, California, serving Orange County, Riverside and the Inland Empire. The business had a WordPress site on OceanWP and Elementor, hosted on GoDaddy Managed WordPress. It worked, in the sense that it loaded. It also looked like every other builder template: stock Elementor blue, a navy footer with a map and payment icons, eight service pages, no privacy policy, no terms, and a phone number that had changed.

    Under the surface it was worse. Whole sections rendered as blank gaps because Elementor's entrance animations were never triggered when LiteSpeed delayed the JavaScript. The navigation font fell back to system because the theme's Google Fonts CSS still pointed at a dead staging domain. The homepage gallery was an inactive Elementor Pro widget rendering nothing. The stat counters read "0+".

    The constraint

    There is no local source code for this site. It is built entirely in Elementor and edited through the WordPress admin. There was no WP-CLI, no SSH, no database access and no file access. Every change in this project was made through a browser, against a live site, with a backup taken first.

    How AI and automation were used

    Elementor as an API, driven from Playwright

    Elementor exposes a JavaScript API inside its editor. Rather than clicking through nine new pages by hand, we cloned the Kitchen Remodeling page nine times and edited each clone from Playwright: fetch the container by element ID, run the settings command with the new heading, subtitle, intro, body and image, then run the save command. Because the clones inherit the original's element IDs, one CSS rule scoped to the nine page IDs handles the layout differences, such as hiding an emptied column and making its sibling full-width.

    The same technique later rewrote copy across all 24 pages for the energy-efficiency repositioning. Each page's edits were read back after saving, and an independent verification pass caught one page that had received a neighbour's copy during a concurrent run. It was fixed and the lesson recorded: never run two automated edit passes against the same editor tab.

    REST where REST worked

    The Privacy Policy and Terms of Service are plain WordPress pages, not Elementor documents. They were created by posting HTML to the WordPress REST API from files that live in the repository, so an edit is a change to the source file and a re-post. Menu items also went through REST, with the caveat, documented for the next person, that the theme's icon picker makes the menu endpoint return an error even though the item is inserted.

    What we built

    The warm refresh

    The old design had hard-coded blue, sky, green and navy into per-element Elementor CSS, not global colours. Rewriting every widget was not an option. Instead a single override lives in the Customizer's Additional CSS, which loads last, and remaps each legacy hex to the new "Terracotta and Warm Charcoal" palette. The logo's roof mark was recoloured to match. A record of that CSS, now around 45 KB, is kept in the repo alongside the brand guide, and the rule for future edits is simple: never reintroduce blue.

    Seventeen services instead of eight

    HVAC, home insulation, tankless water heaters, exterior painting, concrete and masonry, driveways and walkways, outdoor living, gutters and pool remodeling joined the original eight. Each has its own hero and feature image, a corrected map, and a place in the main menu dropdown, the Our Services grid, the footer and the mobile drawer. Long-form "California Codes and Your Rights" sections were drafted for eight of the services, covering Title 24, SEER2 minimums, HERS verification and homeowner protections.

    What shipped

    Site-wide terracotta rebrand through one Customizer CSS override, with a documented palette and accessibility notes
    Nine new service pages, all seventeen linked from the menu, the services grid, the footer and the drawer
    Privacy Policy and Terms of Service, wired into WordPress's privacy setting and the footer
    A rebuilt single-column footer with all services, NAP and legal links, and an edge-to-edge credit bar
    Mobile off-canvas drawer with service grid, Call Us and Contact Us
    Energy-efficiency copy on all 24 pages, a nine-item FAQ and per-service What's Included lists
    Fixes for stuck animations, dead font domain, blank gallery, zero counters and a hero gap
    Form last on every service page, no in-page maps outside the footer, contact page decluttered

    Timeline

    1. 2 July 2026: Site documented, phone number updated, warm palette applied, home service cards rebuilt, real Google reviews and brand marquee added.
    2. 3 July 2026: Nine service pages, legal pages, mobile drawer, footer rebuild, UI polish pass and the animation, font and counter fixes.
    3. 6 July 2026: Energy-efficiency copy rewrite across all 24 pages, verified page by page.

    Problems worth talking about

    The invisible sections

    Elementor marks animated elements elementor-invisible and removes it when its scroll JS runs. With LiteSpeed delaying JS, or a crawler that never scrolls, it never runs. One global rule makes content always visible and lets the fade play if the JS does arrive.

    Fonts from a dead domain

    Elementor's locally-cached Google Fonts CSS still pointed at the old staging host. With no file access to rewrite it, the fix was an import at the top of the Customizer CSS, which loads last and wins the cascade.

    Specificity wars

    The blue-to-terracotta remap uses four-class selectors with important flags. Later tweaks that used shorter selectors silently lost. The rule is recorded so the next edit uses the full selector.

    Cache is the real deploy

    Cloudflare's one-month browser cache on HTML meant edits looked unapplied to returning visitors. Every change is followed by a cache purge and a verification load with a cache-busting query.

    Where it stands

    What we can and cannot claim

    The refreshed site is live at genesishomerenovations.com with all seventeen service pages, the legal pages and the new copy. The counts above are taken from the project's page-ID table and commit history. The homepage stat counters (team size, active projects, projects delivered) are the client's figures, entered on request. We have no analytics or lead-volume access for this client, so this page carries no traffic or conversion figures. The legal pages are a template the owner has been advised to have an attorney review.

    Renovate Smarter. Save Every Month.

    Genesis Home Renovations, homepage

    What This Project Does Well

    A site-wide rebrand without editing a single widget colour: the override CSS loads last and remaps every legacy hex
    Nine service pages that share one element-ID set with the originals, so a single scoped CSS rule styles all seventeen
    Every edit reproducible: the Elementor JS API calls, the CSS blocks and the HTML widgets are all recorded in the repo
    Consistent NAP (name, address, phone) everywhere after the phone number change, footer rebuild and topbar removal
    Legal pages generated from HTML in the repo and wired into WordPress's privacy setting and the footer
    Long-form California code-compliance sections drafted for HVAC, roofing, outdoor living and five more services
    A documented operating manual so the next person can edit the site safely: backup first, purge cache after

    Technologies Used

    WordPress 6.9, OceanWP, Elementor with Happy Addons, Ultimate Addons and Premium Addons, WPForms, Yoast SEO Premium, WPvivid backups, LiteSpeed Cache and QUIC.cloud, Cloudflare, GoDaddy Managed WordPress, Playwright browser automation, Elementor JS API, WordPress REST API, Google Fonts

    Ready to Build Something Similar?

    Let's discuss how we can help transform your business with a custom digital solution.