Personalizer turns a single landing page into hyper-local variants — one per ZIP, neighborhood, store, or audience — with city/state/JSON-LD substitutions, an automatic QA pass, and self-contained HTML output you can host anywhere. Built on Cloudflare. Side-by-side preview as you type.
No hand-waving. Every primitive below is implemented end-to-end and shipping in production today.
Paste any public URL. The cloner inlines CSS, fonts, images, and SVG sprites into a single self-contained HTML you can ship anywhere — HubSpot, WordPress, S3, Cloudflare Pages.
Drop a CSV: zip, city, state, neighborhoods, optional title/description/H1 override per row. Engine applies text replacements, DOM swaps, and JSON-LD areaServed mutations.
Source on the left, personalized variant on the right. Edit a row, see the changes immediately. No build step. No deploy round-trip.
Every variant runs an audit: city in title / meta / OG / Twitter / H1, JSON-LD areaServed, sprite integrity (viewBox preserved!), no source-host leakage. You see the report before you ship.
Streaming server-side ZIP of every variant + a manifest. Drop the contents directly into your CMS or hosting layer. 6.5 MB per page is normal — well under the 25 MB HubSpot Custom HTML limit.
Google sign-in required. No anonymous URL fetches. Templates and exports are scoped to your account. The owner's email is always-free; everyone else is on the tier they pick.
Six stages, all running on Cloudflare's edge. Templates and exports live in R2; subscriptions and audit results live in D1.
Free tier exists to let you kick the tires on a real run. Paid tiers stack from "I run one location" to "I run a
multi-client agency." The owner email
[email protected]
is always treated as Agency tier (so this site can dogfood itself).
Because pasting a single <script>…</script> into a CMS shouldn't require a deploy.
25 MB per-file cap. Our output is ~6.5 MB. Fits with margin to spare. Drop into a Custom HTML module and it just works.
No enforced size limit. Output is identical to the source page visually because every asset is inlined as a
data: URI.
Just upload the HTML. No build step, no asset paths to fix, no CDN re-hosting. The page is one file.