

Click any element on the live page to edit it. The panel follows the selection: text, links and images on the Content tab, spacing, colour and typography on Style.
Visual Edit Lite adds a floating inspector and site tools to the native Gutenberg editor
on a block theme. It is also the editing companion for a WordPress site built
from a static HTML design — a hand-written site, or one exported from Lovable,
Bolt, v0.dev, aidesigner.ai or a Claude design. A converted theme keeps every
page’s markup byte-for-byte identical to the original and the plugin makes
those pages editable by clicking.
If you have brought an HTML site into WordPress and want the client to edit it
without touching the markup — or without the design surviving a page builder —
this is the piece that was missing.
Nothing here is locked, timed, or waiting for a key. Everything the plugin
contains works on every install, offline included.
The plugin’s home page and documentation:
html2wp.dev/visualedit. Development happens in the open at
https://github.com/iOSDevSK/visual-edit-lite — the full source, the build
script and the translation-template generator are there. The plugin has no
build step: the PHP, CSS and JavaScript shipped in this package are the
source, unminified and uncompiled.
Every Save is a restore point. The plugin keeps the ten most recent saves of
each page plus the Original — the design exactly as the theme shipped it — so
there is always a way back, however long ago you started.
Ten is how deep the history is, not how much of it you are shown: the panel
lists every save the plugin holds, and any of them can be restored. When an
eleventh save is made the oldest one is dropped; the Original never is. A page
whose log is longer than that — restored from a backup, or written by an
earlier version — is trimmed the same way the next time its history is opened
or the page is saved. The live page is never touched.
A native Gutenberg block theme, or a theme whose pages are raw HTML and which
declares its contract through the clara_ve_theme_contract filter. The
contract for converted themes is fully documented on GitHub:
https://github.com/iOSDevSK/visual-edit-lite/blob/main/docs/developer/theme-requirements.md
Forms, email delivery, mailing lists, SEO, redirects and llms.txt do not
depend on the theme at all and work anywhere.
unfiltered_html, because markup round-tripsThis plugin does not contact any external service on its own. Every service
below is reached only after you switch it on, or connect a form plugin that
uses it, and only for the purpose described.
Google Fonts — used only if you open the Google fonts picker in the
editor. Opening it makes your server request the public font catalogue from
fonts.google.com (cached for a week), and your own browser loads a preview
stylesheet from fonts.googleapis.com, and its font files from
fonts.gstatic.com, for each family you scroll past. A page that uses a font
you kept loads that font’s stylesheet and files from the same two hosts, which
means visitors’ browsers connect to Google and Google receives their IP
address and user agent. A site where no Google font was kept requests nothing
from Google on the front end.
Terms: https://policies.google.com/terms — Privacy:
https://policies.google.com/privacy — Google Fonts privacy FAQ:
https://developers.google.com/fonts/faq/privacy
Akismet — used only if the separate Akismet plugin is installed and
configured and you enable Akismet filtering under Form Settings. Each form
submission is then sent to Akismet for a spam verdict: its field values, the
email address found among them, the sender’s IP address, user agent and
referrer, and your site’s address.
Terms: https://akismet.com/tos/ — Privacy: https://automattic.com/privacy/
Email delivery providers — used only if you select one as the mailer and
enter its API key. From then on every email WordPress sends from this site,
not only form notifications, goes through the provider you chose: recipient,
sender name and address, reply-to, subject and body.
Brevo — https://www.brevo.com/legal/termsofuse/ ,
https://www.brevo.com/legal/privacypolicy/ ;
SendGrid — https://www.twilio.com/en-us/legal/tos ,
https://www.twilio.com/en-us/legal/privacy ;
Postmark — https://postmarkapp.com/terms-of-service ,
https://postmarkapp.com/privacy-policy ;
Mailgun — https://www.mailgun.com/legal/terms/ ,
https://www.mailgun.com/legal/privacy-policy/
Brevo (mailing lists) — used only if you connect Brevo as your mailing-list
provider. Opening a form’s list picker in the editor asks Brevo for the names
of your lists. When a visitor subscribes (after confirming, if double opt-in is
on) Brevo receives their email address, the list you chose, the other fields
they filled in on that form as contact attributes, and, if you use Brevo’s own
double opt-in, the template id and redirect address you set. Same terms and
privacy links as above.
Your own SMTP server — used only if you select SMTP as the mailer. The
message is sent to the host you configured.
Contact Form 7 and Fluent Forms — used only if you hand a designed form to
one of those plugins in the editor. The submission is then processed by that
plugin on your own server: its validation, spam checks, notifications and
records apply, under its own settings. Nothing leaves the site through this
plugin for that.
Google reCAPTCHA — used only if a form you handed to Contact Form 7 or
Fluent Forms has reCAPTCHA configured in that plugin. The page then loads the
reCAPTCHA script from www.google.com in the visitor’s browser, which sends
Google their IP address, user agent and how they interact with the page, and
Google may set cookies. The token it returns is verified by Contact Form 7 or
Fluent Forms with the secret key you entered there; this plugin holds no key.
Terms: https://policies.google.com/terms — Privacy:
https://policies.google.com/privacy
hCaptcha — used only if a form you handed to Fluent Forms uses hCaptcha.
The page then loads the hCaptcha script from js.hcaptcha.com in the
visitor’s browser, which receives their IP address, user agent and how they
interact with the page. The token is verified by Fluent Forms with your
hCaptcha secret; this plugin holds no key.
Terms: https://www.hcaptcha.com/terms — Privacy: https://www.hcaptcha.com/privacy
Importing a remote image — when you click “Import image into this site” on
a picture hosted elsewhere, the plugin downloads that one URL, which you chose,
and stores the file in your Media Library.
Gravatar — used only if a listing template you designed includes the
{author_image} placeholder. It resolves through WordPress’s own
get_avatar_url(), so unless another plugin serves avatars locally the
portrait is fetched by visitors’ browsers from gravatar.com, which then
receives their IP address and user agent. A template without that placeholder
requests nothing.
Terms: https://automattic.com/terms/ — Privacy: https://automattic.com/privacy/
The plugin stores form submissions and mailing-list subscribers in your own
database. It sets no cookies of its own, runs no analytics, and sends nothing anywhere
about you or your site. Secrets you enter (SMTP password, provider API keys)
are encrypted at rest with your site’s own salt and are always removed when
the plugin is deleted.
The click-to-edit layer — assets/bridge.js, assets/editor.js,
assets/bridge.css and assets/editor.css — is derived in part from
Open Design (https://github.com/nexu-io/open-design), Copyright 2026 Open
Design contributors, licensed under the Apache License, Version 2.0
(https://www.apache.org/licenses/LICENSE-2.0). Those files were ported from
TypeScript and modified for WordPress, and each carries this notice. The
Apache License 2.0 is compatible with version 3 of the GPL, which this
plugin’s “GPLv2 or later” licence allows.