Platform migration · 14 sites · ~1.2 GB

Getting 14 client sites off a $298-a-month page builder

Migrated site thumbnailMigrated site thumbnailMigrated site thumbnailMigrated site thumbnailMigrated site thumbnailMigrated site thumbnail

The situation

Fourteen client websites were hosted on GoHighLevel, a subscription platform costing $298 every month. Most of those clients generated no revenue. The sites were paid for through December 2027 and had to stay reachable — this was not a cleanup, it was a contractual obligation.

Two of the domains had already expired. One client's site was only reachable through the platform's own edge network.

What I did

Found the door.

The platform's page-preview URLs are public and require no login. That alone rescues sites whose domains are dead, and the page identifiers can be recovered from the platform's own admin interface. For the site whose DNS returned nothing at all, the platform was still holding the domain mapping, so it could be fetched by pointing directly at the live edge IP.

Recovered the content from the runtime, not the screen.

These pages are single-page applications: the framework re-hydrates and replaces the entire DOM after load. Without the platform, the code chunks fail and the page collapses to a bare error. Everything that mattered — button destinations, menu targets, configuration the platform resolved at runtime — lived in one embedded data block: a flattened array where the numbers are indices into itself. That is where the sites were actually recovered from.

Rebuilt every interaction by hand.

Stripping the framework killed the mobile menus, FAQ accordions, sliders and modals, so all of it was rewritten in plain JavaScript. The animation classes had been baked into the captured HTML, so every element played its entrance animation instantly on load — those were stripped and re-bound to scroll.

Did not break anything on the way out.

Every DNS zone was backed up before being touched, because a careless reset had previously wiped a client's Google Workspace mail records and a delete had removed another zone entirely. SSL was verified directly against the server IP with SNI rather than through the system resolver, after a stale cache produced a false negative. No old site was deleted from a server until every file had been confirmed present in a local copy — 425 files for one client, 331 for another.

$3,576/yr
eliminated — $298/month GoHighLevel account cancelled
14 sites, ~1.2 GB
cloned, zero remaining script references to the old platform
10 / 14
domains verified live over HTTPS on 26 September 2026