Title: Esipher &#8211; AI Site to Theme Converter
Author: Inwebtify
Published: <strong>October 24, 2026</strong>
Last modified: October 25, 2026

---

Search plugins

![](https://ps.w.org/esipher/assets/banner-772x250.jpg?rev=3763488)

![](https://ps.w.org/esipher/assets/icon-256x256.png?rev=3763190)

# Esipher – AI Site to Theme Converter

 By [Inwebtify](https://profiles.wordpress.org/oluwaseunolaosebikan/)

[Download](https://downloads.wordpress.org/plugin/esipher.0.3.0.zip)

 * [Details](https://wordpress.org/plugins/esipher/#description)
 * [Reviews](https://wordpress.org/plugins/esipher/#reviews)
 *  [Installation](https://wordpress.org/plugins/esipher/#installation)
 * [Development](https://wordpress.org/plugins/esipher/#developers)

 [Support](https://wordpress.org/support/plugin/esipher/)

## Description

AI site builders produce a polished Vite/React + Tailwind site in minutes, exported
as a ZIP. Esipher turns that export into a real, activatable theme. The core conversion–
extraction, parsing, asset rewriting, theme generation and installation – runs entirely
on your own server: no third-party upload service, no external API call.

Developed by [Samuel Olaosebikan](https://inwebtify.com/) and [Moses Adebayo](https://github.com/adebayomoses).

Work from the admin screen (Esipher in wp-admin) or from WP-CLI (`wp esipher convert`).

Two optional features connect to third-party APIs, and only when you set them up(
see “External services” below):

 * Esipher > Connected Projects – connect your own GitHub account and repo. GitHub
   rebuilds on every push and Esipher shows an “Apply update” button; an administrator
   clicks it to update the theme. Nothing is installed or activated without that
   click.
 * Esipher > Mobile App – Esipher generates a build project in a GitHub repo you
   own; GitHub Actions builds a native Android (and, optionally, iOS) app from your
   site.

This is an early development build; per-builder adapters beyond the generic fallback
and a conversion history/rollback screen are still to come.

#### What does not convert

 * Supabase-backed auth, database reads/writes, and live data – detected and reported,
   never silently dropped.
 * Client-side routing beyond what exists in the built HTML.
 * Custom component layouts (cards, nav bars, icons) – these display exactly as 
   exported, but aren’t broken into individually editable pieces yet. Headings, 
   paragraphs, and images _within_ multi-page conversions are: they come through
   as real, native Block Editor blocks.

### External services

The core “upload a ZIP and get a theme” flow makes no external requests. The features
below
 do, and only after you enable them and provide your own credentials. You 
can use the plugin indefinitely without ever touching them.

#### GitHub (github.com, api.github.com)

Used by **Connected Projects** and **Mobile App**. When you connect a repo, sync,
or build an
 app, the plugin talks to the GitHub REST API as your own GitHub account,
using an OAuth access token you obtain by authorising your own GitHub OAuth App.
It sends: that access token, the repository owner and name you enter, the contents
of the build workflow file it commits into your repo, webhook configuration (including
a random shared secret), Actions repository secrets and variables it sets for the
build, and, for the Mobile App feature, an App-Store-Connect-signed certificate 
request routed to Apple (see below). It downloads the build artifacts your workflow
produces. The OAuth sign-in also redirects your browser to github.com. For Connected
Projects, GitHub also calls this site’s REST route (`/wp-json/esipher/v1/github-
webhook`) when a build finishes; the request is verified with the webhook’s shared
secret and only records that an update is ready. Nothing is sent to GitHub unless
you have connected an account.

GitHub Terms of Service: https://docs.github.com/en/site-policy/github-terms/github-
terms-of-service
 GitHub Privacy Statement: https://docs.github.com/en/site-policy/
privacy-policies/github-general-privacy-statement

#### Apple App Store Connect (api.appstoreconnect.apple.com)

Used by the **Mobile App** feature only, and only if you fill in the iOS fields (
Apple Team
 ID, App Store Connect API Key ID, Issuer ID and .p8 key). When you save
those and start an iOS build, the plugin calls the App Store Connect API, authenticating
with a short-lived JSON Web Token it signs locally with your .p8 key. It sends: 
a certificate signing request (to obtain an Apple Distribution certificate), your
app’s bundle identifier (to register it if needed), and a request to create an App
Store provisioning profile. It receives the certificate and provisioning profile,
which are stored encrypted on your site and set as GitHub Actions secrets for the
build. No request is made to Apple unless you provide an App Store Connect API key.

Apple Media Services Terms: https://www.apple.com/legal/internet-services/itunes/

Apple Privacy Policy: https://www.apple.com/legal/privacy/

#### Original project image hosting (opt-in)

The multi-page conversion option **“Try to recover cloud-hosted images from the 
original
 project”
 (and the WP-CLI `--recover-images` flag) fetches image files
from the URL your AI
 site builder still hosts them at (for Lovable exports this
is a `\*.lovableproject.com` address derived from a descriptor file inside your 
own export). The request sends only a normal HTTP GET for each image path, so the
host sees your site’s IP address. This happens only for that one opt-in setting,
and only for images your export references but did not bundle. No other request 
is made to that host. This service is provided by Lovable.

Lovable Terms of Service: https://lovable.dev/terms
 Lovable Privacy Policy: https://
lovable.dev/privacy

## Screenshots

[⌊Convert screen - upload an AI site-builder export ZIP and turn it into a theme.⌉⌊
Convert screen - upload an AI site-builder export ZIP and turn it into a theme.⌉[

Convert screen – upload an AI site-builder export ZIP and turn it into a theme.

[⌊Connected Projects - GitHub-synced projects with live status and one-click "Apply
update".⌉⌊Connected Projects - GitHub-synced projects with live status and one-click"
Apply update".⌉[

Connected Projects – GitHub-synced projects with live status and one-click “Apply
update”.

[⌊Mobile App (Android) - app settings plus build status and download.⌉⌊Mobile App(
Android) - app settings plus build status and download.⌉[

Mobile App (Android) – app settings plus build status and download.

[⌊Mobile App (iOS) - App Store Connect details and iOS build status.⌉⌊Mobile App(
iOS) - App Store Connect details and iOS build status.⌉[

Mobile App (iOS) – App Store Connect details and iOS build status.

## Installation

 1. Upload the plugin to `/wp-content/plugins/esipher`, or install it from the Plugins
    screen.
 2. Activate it through the “Plugins” screen.
 3. Open **Esipher** in the wp-admin menu and upload your export ZIP, or run wp esipher
    convert from WP-CLI.

## FAQ

### Is there a video walkthrough?

Yes: [https://youtu.be/6-ne9-7Wgt4](https://youtu.be/6-ne9-7Wgt4) covers exporting
from Lovable, building it with the Esipher Build template, and converting it here,
start to finish.

### Does my code ever leave my server?

No. The entire conversion pipeline – extraction, parsing, asset rewriting, theme
generation, and installation – runs locally within your WordPress install.

### Can Esipher skip the manual export/upload entirely and just stay in sync?

Yes, under Esipher > Connected Projects. Connect your own GitHub account (you register
a free GitHub OAuth App once and paste its Client ID/Secret in – no third-party 
broker, same “your account, your server” model as the rest of this plugin), then
connect the GitHub repo your AI builder syncs to (e.g. GitHub sync from the Lovable
or Bolt.new project menu). Esipher commits a small build workflow into that repo
and registers a webhook; from then on, every push builds on GitHub and Esipher flags
it as “Update ready”; an administrator clicks “Apply update” to download that build
and update the theme – no export, no template repo, no manual artifact download.
The incoming webhook only records that a build is ready: it can never install or
activate anything by itself. A “Sync now” button triggers a rebuild without waiting
for your next push. This is separate from, and doesn’t replace, the manual ZIP-upload
flow below.

### My Lovable or Bolt.new export was rejected as “raw source, not a build” – what do I do?

Esipher converts a Vite build’s finished output, not a project’s raw, uncompiled
source. If you exported straight from Lovable or Bolt.new and have never run a build
on it, use the [Esipher Build](https://github.com/adebayomoses/Esipher-Build) template:
a free, one-click GitHub Actions workflow made for this. Open that page, click “
Use this template” to get your own copy, upload your export’s raw .zip to it, and
a build runs automatically – no installs, no command line. Download the finished
result from that run’s Artifacts and upload it to Esipher instead of the original
file.

This template is the recommended path for Lovable and Bolt.new exports; StackBlitz(
build in your own browser) is a general-purpose fallback for other builders’ exports.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Esipher – AI Site to Theme Converter” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Inwebtify ](https://profiles.wordpress.org/oluwaseunolaosebikan/)
 *   [ afrirates ](https://profiles.wordpress.org/afrirates/)

[Translate “Esipher – AI Site to Theme Converter” into your language.](https://translate.wordpress.org/projects/wp-plugins/esipher)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/esipher/), check out
the [SVN repository](https://plugins.svn.wordpress.org/esipher/), or subscribe to
the [development log](https://plugins.trac.wordpress.org/log/esipher/) by [RSS](https://plugins.trac.wordpress.org/log/esipher/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.3.0

 * New: redesigned admin dashboard. All Esipher screens (Convert, Connected Projects,
   Mobile App) share a branded header with navigation, card-based sections, clearer
   forms and colour-coded status labels. The Mobile App screen uses a side menu 
   for Android and iOS.
 * Change: new Esipher menu icon, and the “how it works” steps now sit below the
   convert form.
 * Fix: removed an outdated note about a server-side build option that no longer
   exists.
 * Housekeeping: added screenshots to the plugin page.

#### 0.2.2

 * Credits: developers listed in the readme and plugin header.

#### 0.2.1

 * Fix: plugin author is now shown correctly in the directory.

#### 0.2.0

 * New: Bolt.new exports are supported alongside Lovable (built Vite/React output
   converts the same way; raw Bolt.new source is detected and pointed at the Esipher
   Build template), and Connected Projects works with Bolt.new’s GitHub sync as 
   well.
 * New: Esipher > Connected Projects – connect a GitHub-synced AI-builder repo
    
   once (your own OAuth App, your own account). Every push builds on GitHub; a webhook(
   with an hourly cron safety net) flags “Update ready” and an administrator applies
   it with one click. A manual “Sync now” button triggers a rebuild.
 * Fix: the GitHub connection now also requests the “workflow” OAuth scope,
    which
   GitHub requires to commit the build workflow file. Without it, connecting a project
   failed with a bare “Not Found”. If you connected a GitHub account on an earlier
   build, disconnect and reconnect once to grant the added permission – the settings
   screen warns when this is needed.
 * Fix: downloading a build artifact failed with “HTTP 401” – the request to
    the
   artifact’s signed storage URL was still carrying the GitHub auth header. The 
   download now follows that redirect without it.
 * Fix: an auto-sync would report “Up to date” while the site still showed a
    different
   theme. With “Keep this theme active” enabled (the default), a connected project
   now re-activates its theme on any sync where the site isn’t already on it, not
   only the first – and a successful sync that leaves the theme inactive now says
   so instead of a bare “Up to date”.
 * Fix: disconnecting a project now always forgets it locally even if GitHub
    won’t
   remove the webhook, so a later reconnect starts from a clean slate instead of
   silently reusing stale sync state.
 * New: multi-page conversions now bundle a tiny dependency-free script that
    restores
   the mobile menu. Because a multi-page conversion ships no framework JavaScript,
   the hamburger button had nothing wiring it up; the helper wires it – toggling
   an existing hidden menu panel, or, when the panel only existed in the framework’s
   runtime, synthesising one from the nav’s own links.
 * New: Esipher > Mobile App – wrap the site in a native app. Esipher generates
   
   a Capacitor project in a GitHub repo you own and a bundled GitHub Actions workflow
   builds it:
    - Android (always): a debug APK (sideload to test) and a signed release AAB
      (
      for the Google Play Console). The signing keystore is generated in pure PHP(
      no Java), stored encrypted, and set as encrypted repo secrets.
    - iOS (optional, “iOS” tab): a signed .ipa for App Store Connect / TestFlight,
      
      built on a macOS runner. Needs a paid Apple Developer account and an App Store
      Connect API key (Team ID, Key ID, Issuer ID, .p8) – leave those blank and 
      the iOS build is skipped. From that key Esipher provisions a distribution 
      certificate and an App Store provisioning profile via the App Store Connect
      API (no Mac, no manual certificate steps), stores them encrypted, and the 
      workflow signs with them. Android and iOS build independently: the Android
      tab builds Android only, the iOS tab builds iOS only, and an “Rebuild Android
      + iOS” button builds both. So an Apple-side problem never blocks or red-flags
      an Android build. Uses the same GitHub connection as Connected Projects.
 * Change: removed the server-side “build it now” / `wp esipher convert --build`
   
   option, which ran a project’s own npm/yarn/pnpm/bun install and build on the 
   server. Build raw source with the Esipher Build GitHub template, a local build,
   or Connected Projects instead, then upload/sync the output.
 * Housekeeping: uploads now go through wp_handle_upload(); ZIP extraction and
    
   cleanup go through WP_Filesystem; renamed to “Esipher – AI Site to Theme Converter”.

#### 0.1.0

 * Initial development build: headless conversion engine driven by WP-CLI, generic
   adapter only.

## Meta

 *  Version **0.3.0**
 *  Last updated **11 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1.3**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [AI](https://wordpress.org/plugins/tags/ai/)[converter](https://wordpress.org/plugins/tags/converter/)
   [import](https://wordpress.org/plugins/tags/import/)[theme generator](https://wordpress.org/plugins/tags/theme-generator/)
   [vite](https://wordpress.org/plugins/tags/vite/)
 *  [Advanced View](https://wordpress.org/plugins/esipher/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/esipher/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/esipher/reviews/)

## Contributors

 *   [ Inwebtify ](https://profiles.wordpress.org/oluwaseunolaosebikan/)
 *   [ afrirates ](https://profiles.wordpress.org/afrirates/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/esipher/)