Visual Edit Lite – Visual Editor for Block Themes
Visual Edit Lite – Visual Editor for Block Themes

Visual Edit Lite – Visual Editor for Block Themes

0/5 (0 ratings) — active installs Updated Sep 25, 2026
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.

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.

  • Point-and-click editing of text, links, images and video, directly on
    the live page, with a git-like per-page edit history.
  • Gutenberg workspace on block themes. Visual Edit hosts the native editor
    and adds a floating inspector with typography, Google Fonts and styling.
    Native controls remain available for blocks, patterns, templates, navigation
    and Global Styles.
  • Repeating content (FAQ lists, service cards, team members, portfolio
    tiles) managed as a list: reorder, edit, add and remove items together.
  • Forms — a designed HTML form is connected by clicking, never rebuilt.
    Submissions are stored and emailed; delivery works through your server,
    SMTP, or the Brevo / SendGrid / Postmark / Mailgun APIs. Anti-spam layers:
    honeypot, minimum fill time, per-IP rate limit (CDN-aware) and optional
    Akismet.
  • Mailing list signup with double opt-in, provider integration and a
    subscriber list in wp-admin.
  • Blog — listings driven by a token that repeats the design’s own card
    markup for real WordPress posts.
  • Menus — the design’s own navigation markup, managed from Appearance
    Menus.
  • SEO — titles, descriptions, Open Graph, canonicals, robots and
    redirects, carried over from the original site and editable per page;
    integrates with Yoast SEO / Rank Math when present, self-sufficient when
    not.
  • AI readiness — schema.org structured data (including FAQ), llms.txt,
    AI-crawler rules, and a read-only structure audit. This is about being
    readable by AI search engines. Lite contains no AI writing or image
    tools and sends nothing to any AI provider.
  • Import — bring in a converted theme’s content bundle: pages, menus,
    media, forms and SEO records, reviewed before anything is written.

Editing history

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.

What this plugin needs

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.

Important notes

  • Raw-HTML editing requires unfiltered_html, because markup round-trips
    through that editor. Native Gutenberg mode uses WordPress’s normal
    permissions for the page, template or other entity being edited.
  • Deactivating the plugin keeps all data and reverts the front page to the
    theme’s shipped design until reactivation; other pages keep their edited
    content.
  • Deleting the plugin always removes stored secrets (SMTP password,
    provider API keys) and its own transients. Everything else — submissions,
    subscribers, edit history, page sources — is kept unless “also delete all
    stored data” is enabled under Visual Edit Lite Form Settings Uninstall.
    That option removes the plugin’s options, its two database tables and the
    form submissions. It leaves your pages and their content in place, together
    with a few marker fields the plugin wrote on them and any files it imported
    into the Media Library or the uploads folder.

External services

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.

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/

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.

Credits

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.