

The front-end editor on a live page: click a heading and its panel opens beside it, with text, links and images on the Content tab and spacing, colour and typography on Style.
Click any text, image or link on the live page and change it there. Visual Edit Lite is a front-end editor for WordPress that keeps every save as a restore point, so you can always go back to the page as it was.
It works in two places. On a block theme such as Twenty Twenty-Five, it hosts WordPress’s own editor and adds a floating inspector for typography, colour, spacing and Google Fonts. The native block, pattern, template and Global Styles controls stay available.
On a site converted from static HTML to WordPress, it makes the original pages editable by clicking. That can be a hand-written site, or one exported from Lovable, Bolt, v0.dev, aidesigner.ai or a Claude design. The markup stays byte for byte as it was.
Nothing is locked, timed or waiting for a key. Everything the plugin contains works on every install, offline included.
llms.txt file. It also adds AI-crawler rules in robots.txt and a read-only audit of what the site tells search engines and AI assistants. This is about being readable by AI search. The plugin has no AI writing or image tools and sends nothing to any AI provider.Home page and documentation: html2wp.dev/visualedit.
Source, build script and translation template: github.com/iOSDevSK/visual-edit-lite.
The PHP, CSS and JavaScript in this package are the source, unminified.
A 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 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 and work on any site.
unfiltered_html capability, because markup round-trips through that editor. On a block theme the plugin uses WordPress’s normal permissions for the page, template or other entity being edited.This 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.
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.
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.
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.
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.
Used only if you select SMTP as the mailer. The message is sent to the host you configured.
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.
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.
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.
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.
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.
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.