Products
What each one does
The same decision lists that sit on the product pages, gathered here so you can read the platform in one pass.
A block theme that starts on plain WordPress and grows into a shop.
MevvTheme is a fast, accessible block theme for the site editor. Install it on a plain WordPress site and every page type renders on its own — pages, posts, archives, search, 404, a full-width canvas and page and post templates with a sidebar. Switch WooCommerce on and the shop, product, cart and checkout templates are used automatically; nothing shop-related loads without it. Mevv plugins add features on top and never replace the theme. MevvTheme Pro is the plugin that turns it into a storefront: a design profile, a header with live search, a catalog with wishlist, compare and quantity discounts, an announcement bar with a countdown, blog extras, a coming-soon page, diagnostics and settings export. Every one of them is a switch, every one is cache-safe, and none of them loads a script from a third party. The free theme is on its way to the WordPress.org directory.
- Nothing to install first
- The theme renders every WordPress page type by itself and ships with no bundled plugin and no page builder. Colours, fonts, spacing and layouts are edited in Styles; three style variations — Dark, Warm and Mono — and the spacing, shadow and border presets come with it.
- Shop templates appear when WooCommerce does
- Shop archive, single product, cart and checkout are block templates that WooCommerce picks up the moment it is active. They sit on WooCommerce’s own hooks, so payment gateways, shipping plugins and consent boxes keep working. Without WooCommerce, none of it is loaded.
- Pro: header and navigation
- A header that can go transparent, a search overlay with live results from the Store API, a back-to-top button, a fixed shortcut bar on phones, a top bar with up to four links, a full-screen phone menu, menu badges and a slot for a language or currency switcher. Each one is a checkbox on the Header screen.
- Pro: the shop
- Wishlist and compare that live in the visitor’s browser, a recently viewed strip, quantity discounts, a bought-together box, a back-in-stock waitlist, a stock indicator, a free-shipping progress bar, a delivery estimate, global product tabs, photo reviews with helpful votes, a personalisation field, a product video, a variation picker on the card and a delivery date at checkout.
- Pro: marketing
- An announcement bar with a countdown that runs in the browser, shown on every page, the home page or the shop, after a delay, at a scroll depth or on exit intent, with an optional newsletter field — and a newsletter sign-up that keeps addresses on your own site and hands each one to MevvMail, MevvForms or a CRM through an action.
- Content and blog
- The theme gives you grid, list and featured-first blog layouts with an ordered meta line, sidebar templates and patterns for the pages every site has. Pro adds reading time, a table of contents, share and print, an author box, related posts, a progress bar, an archive filter with sorting, category and tag images and conditional block visibility by device, login, role, date and cart state.
- Pro: operations
- A starter-site wizard that can be undone, a coming-soon or maintenance page that keeps editors working, custom CSS and head or footer markup, a diagnostics screen with a copyable report, delegation of the content screens to editors, settings export and import, a child theme ZIP, command palette entries and a white-label name for agencies.
- The licence is for updates and support
- Nothing in Pro is switched off by the licence. The key unlocks signed updates through the MevvCore updater and support; when it lapses, the site keeps its look and its storefront and only the updates stop.
Product page ↗
Documentation ↗
Live demo ↗
From header to footer, inside the block editor.
The WordPress block editor is fast and native, but it cannot give one measurement a separate value for desktop, tablet and mobile — measured again on WordPress 7.1, and the most common technical reason people install a page builder. MevvBlocks closes that gap and then keeps going: a hundred and ten blocks, theme templates from header to footer, a post grid and loop builder, a form engine, popups, transforms and masks, site-wide custom code, one screen for the site palette, WebP and AVIF for your images, block-level caching, an accessibility audit that tells you the truth instead of covering it up, and a Core Web Vitals screen fed by your own visitors. The catalogue now runs from a toggle and nested tabs to a pie chart, a media playlist, a tooltip, a newsletter form and an SVG animation, with eight block styles in the editor’s own Styles panel — and every one of them stops moving when the visitor has asked for reduced motion. The canvas is no longer an approximation either: the editor asks the server for the same CSS the page will print, so what you arrange is what ships. Twenty-three of those blocks are for WooCommerce, and none of them redraws WooCommerce: they call its own templates, so your theme and your plugins keep working.
- Every measurement, per screen size
- A padding, a font size, a column count can carry a separate desktop, tablet and mobile value. Core WordPress cannot — that was measured on 7.1, not assumed. The same panel also lifts an element out of the flow with absolute or fixed positioning, and its offsets and z-index are per-device too.
- A hundred and ten blocks
- Layout, text and media; menu, search, post grid and loop builder; site logo, page title, breadcrumbs, post info and author box for theme templates; video, audio, playlist, gallery, table, FAQ, timeline and code; toggle, nested tabs, pie chart, tooltip, newsletter, social feed, flip box, call to action, animated headline, before/after, hotspots, off-canvas panel and contact buttons — and twenty-three for WooCommerce, from the product gallery to the cart, the checkout and a mini cart. Eighty-seven without WooCommerce.
- Eight block styles, in the panel WordPress already gives you
- A gradient overlay, grayscale or blur until hover, a circle or rounded mask, lift, zoom and tilt — chosen from the core Styles panel, so there is no new control to learn and the choice is a class in your markup rather than a setting in a table. Every hover transform is switched off when the visitor’s system asks for reduced motion, and the still frame of an SVG animation is swapped in the same way.
- A newsletter form that does not need a service
- An address, an optional name, a consent box and a plain POST — signed with the same HMAC the form engine uses, so a cached page never dies with an expired nonce. The honeypot is swallowed in silence, the rate limit is per address, and addresses land with your other form submissions. There is no list, no API key and no request to anyone: the
mevvblocks_newsletter_subscribe action hands each confirmed address to whatever you already use.
- Dynamic text, including your ACF fields
- A heading, a text, a button or an image can read its value from the post rather than from what you typed: title, excerpt, author, date, category, tags, archive title, search term, the WooCommerce price, SKU or stock, or a custom field by key. When Advanced Custom Fields is active the field is read through
get_field() so you get the formatted value, and keys beginning with an underscore are refused rather than exposed.
- What you see in the editor is what the page prints
- The canvas no longer shows an approximation: padding, spacing, direction, alignment, background, radius, shadow, transform and position appear with the values the front end will use. One style engine produces that CSS and the editor fetches it from the server — writing a second engine in JavaScript would have given us two copies that drift apart. Measured: the old canvas differed from the page in 24 layout properties; it is now zero out of 64.
- Core Web Vitals, from your real visitors
- LCP, CLS and INP are measured in the browsers of the people who visit your site, and the 75th percentile over a 28-day window is what the screen shows — field data, the kind Search Console looks at, not a lab run. Below a hundred samples no number is shown at all, because a percentile from a handful of measurements is noise. No IP, no cookie, no identifier is collected, and the data never leaves your own server.
- AI with your own key
- Write, rewrite, shorten, translate and generate image alt text. You enter your own API key and the request goes from your site straight to the provider — your text never reaches us, and the quota stays yours. The result arrives as a suggestion, not written straight into the block.
- Your theme’s palette, without retyping it
- Colours and typography can be read out of the active theme’s theme.json and used to fill the empty slots in the plugin’s own palette. The bridge is deliberately one-way: nothing is ever written back into the theme, so a theme update never finds its own file rewritten underneath it. It is off until you turn it on.
- A mega panel on the menu you already have
- Not a new block — a setting on the navigation block. A submenu opens as a full-width panel of up to four columns, and if you switch the panel on for an item that has no submenu the accessibility check says so instead of printing an empty box.
- A first draft of a page, from one sentence
- Describe the page and the model picks sections from the plugin’s own template library. It never writes markup, so what lands on the page is editable blocks rather than generated HTML, and a section it names that does not exist is dropped and reported rather than guessed at. The page is always saved as a draft, and the key is yours.
- Notes your visitors never see
- Pin a note to any block for your team, mark it resolved, delete it. It lives in the editor and there is not a single front-end hook that could print it.
- Faster, and measured
- Block output is cached and images are converted to WebP or AVIF next to the originals — the originals are never touched. Measured: block render time down 33–72%, image weight down 39–78%. Images are served through a
<picture> element so the same HTML reaches everyone; deciding per visitor on the server is what poisons a page cache. You can also serve a different image on phones — not a smaller copy of the same one, a different shot — and the browser still makes the choice.
- A form engine, not a dependency
- Sixteen field types, validation on the server, a honeypot that is swallowed in silence, and a screen where submissions are kept. The form works without JavaScript, because it is the one part of the page that actually does something.
- Theme templates with conditions
- Header, footer, single, archive, search and 404 — built in the WordPress editor you already use, not in a second one we would have to keep in step with core.
- Popups that survive the switch
- Open on load, on scroll depth, on exit intent, on a click or after inactivity. Frequency is counted in the visitor’s own browser, so nobody has to be identified on the server.
- One screen for the site palette
- Colours and typography in one place, under their original variable names — so pages built before the switch pick up the new palette instead of losing their references.
- An accessibility audit, not an overlay
- No widget is bolted onto the page claiming the site is accessible. It reports what each block left out — missing alt text, a broken heading order, weak contrast — while you are still editing.
- Slider, tabs and accordion without a library
- Scrolling is native scroll-snap and the accordion is a details element. If the script never loads, nothing is hidden: hidden content is inaccessible content.
- Rendered on the server, never tied to the licence
- Saved HTML can only carry one screen size’s value, so the CSS is produced at request time. There is not a single licence check on that path — a lapsed licence never darkens a published page.
Product page ↗
Documentation ↗
Live demo ↗
Forms anyone can fill in, and no cut of what you collect.
MevvForms is a WordPress form builder: a drag-and-drop canvas with a full keyboard equivalent, thirty-eight field types and twenty-eight ready templates. What the browser hides, the server checks again — conditions, access rules and uploaded files are decided on the server, so a field hidden in the page cannot be talked around. Entries stay on your own site, suspected spam is marked instead of deleted, and nothing you collect is taken as a transaction fee.
- It can be built without a mouse
- The drag-and-drop canvas has a full keyboard equivalent: every field can be added, moved and removed from the keyboard alone. A builder that only answers to dragging shuts out the people who cannot drag.
- Thirty-eight field types
- Text, email, telephone, URL, number, date, time, dropdown, radio, checkbox, rating, slider, colour, file upload, name, address, ordering and page break cover the ordinary form; signature, repeating groups, a matrix, a quiz, a calculation and an order total cover the one you thought would need a second plugin. All thirty-eight are in the free package.
- Columns that keep the reading order
- A field placed in a column is still read in field order, so a screen reader and a sighted visitor meet the same form in the same sequence.
- Conditions are decided on the server
- Nested AND/OR groups with fourteen operators, evaluated again when the form is submitted. A field hidden in the browser cannot be slipped past by editing the page, and the rules still hold with JavaScript switched off.
- Access rules the browser cannot argue with
- Open and close by calendar, cap the number of entries, require a login or a role, or set a password. A closed form refuses a direct submission on the server — not by hiding its button.
- Spam is marked, not deleted
- A honeypot and a time trap are on by default and get in nobody’s way; reCAPTCHA v2/v3, hCaptcha, Turnstile, Akismet and keyword, IP and email block lists are optional. What is judged spam is flagged and kept, because a false positive should not cost you a customer.
- Uploaded files are not in the web root
- They are written outside it, into a directory nobody can guess, and checked by what the file contains rather than what it is called. They are handed out only through a time-limited link tied to one person.
- Notifications you can audit
- Several per form, recipients routed by a field value, an auto-reply to the sender, and a delivery record of what was sent, what failed and why — with a resend for the ones that failed.
- Take a PayPal payment
- Pro adds a PayPal gateway on Orders v2: the order is opened on your server, approved on PayPal’s own page and captured on the way back — or from the signed notification if the visitor closes the tab. PayPal is not available in Türkiye, so this is for selling abroad; Turkish providers stay on the MevvPos bridge.
- Zapier and Make, without the glue
- Pro publishes entries as REST hooks: Zapier subscribes to a form, later entries are queued to it, and a samples route gives the mapping screen real field names. A signed webhook was always in the free edition — Pro removes the wiring in between.
- Entries that land in Salesforce
- Pro turns a submission into a Lead, a Contact or a Case. It signs in with a refresh token rather than a password, and a sandbox is a setting rather than a second set of credentials to keep straight.
- Uploads on your own object storage
- Pro can move the file vault onto any S3-compatible store — AWS S3, Cloudflare R2, MinIO, DigitalOcean Spaces, Backblaze B2, Wasabi — signing every request itself. The free edition keeps the same vault on your own disk; what Pro changes is where the bytes sit, not who is allowed to fetch them.
Product page ↗
Documentation ↗
Live demo ↗
Five plugins’ worth of work. One plugin.
Sales funnels, checkout takeover, order bumps and one-click offers — plus abandoned cart recovery, rule-based coupons, a modern cart and variation swatches. The things most stores buy separately, in one plugin with one licence.
- Sales funnels
- Landing, checkout, upsell and thank-you steps in order. Take over the store checkout so every buyer goes through it.
- Order bump and one-click offers
- A tick box inside the payment form, and an offer charged after the order without asking for the card again.
- Cart recovery
- Reminder sequences over email, SMS, WhatsApp and web push — with recovered revenue attributed to the actual order.
- Rule-based coupons
- First order, cart threshold, category, day and hour. Tiered discounts, buy X get Y, and a progress bar in the cart.
- Modern cart and checkout
- Slide-out cart, free shipping progress, cross-sell, a step indicator and a two-column checkout.
- Variation swatches
- Colour, image and button swatches — for global attributes and the plain per-product ones alike.
- A coupon countdown in the email
- The recovery email can say how long the coupon has left, as text that works in every client — with an optional live counter image served from your own site that redraws itself each time the email is opened.
- A/B test the recovery email
- Several variants per template, chosen by weight, with the conversion attributed from the real order total. The report gives raw numbers per variant and declares no winner: on a small sample that would be a lie with a number next to it.
- A funnel you do not have to design
- Twenty-six ready step templates — at least four for every step type — and four complete funnels that are created in a single click. All of it is in the free edition; what Pro changes is only the order-bump values inside a template, which stay empty until it is active.
Product page ↗
Documentation ↗
Live demo ↗
WooCommerce payments that aren’t locked to one bank.
MevvPos connects your WooCommerce store to a multibank payment layer instead of a single bank. Define more than one virtual POS, and each card is routed by its BIN to the bank that issued it — so your customer sees that bank’s own instalment plan. Thirteen banks and payment providers are supported today, and the BIN database behind the routing is kept current from our own servers. For stores selling outside Türkiye, eight international providers can be connected as well.
- Thirteen banks and providers
- İşbank, Akbank, Halkbank, QNB, Şekerbank, TEB, Ziraat, Garanti BBVA, VakıfBank, plus iyzico, PayTR, Craftgate and Sipay — one plugin, one settings screen.
- BIN-based routing
- Each card is recognised from its first six digits and sent to the bank that issued it, so the customer gets that bank’s own instalment plan instead of a generic one.
- A BIN database we actually maintain
- Three sources merged and kept current from our servers. A stale list sends cards to the wrong bank; ours updates weekly.
- Instalments and surcharge per POS
- Set the instalment counts and surcharge rates separately for every POS you define.
- Revenue reporting
- Daily revenue, success rate and instalment split — with a per-bank and per-POS breakdown, plus the commission burden of each instalment tier.
- 3D Secure, card never stored
- Card number, expiry and CVV are never written to your database.
- Classic and block checkout
- Whichever checkout page your store uses, the card option is there. On the WooCommerce Checkout block the instalment table and its surcharge are handled just as they are on the classic page.
- Eight international providers
- Selling outside Türkiye, MevvPos can also connect to Stripe, PayPal, Mollie, Square, Authorize.Net, Checkout.com, Razorpay and Paystack — each over its own hosted page, so card details never touch your site.
- Authorise now, capture when you ship
- A POS can hold the amount on the card instead of charging it, and you capture it — in full or in part — from the order screen when the parcel goes out, or release it if it cannot. The option appears only where the provider genuinely supports it: the NestPay bank family, Stripe, Authorize.Net and Checkout.com. The other banks are not offered a setting that would fail at the gateway.
- A payment link you can send
- Create a link for an amount from the admin and send it to the customer. They pay on the ordinary checkout, so the same BIN routing, instalment table and 3-D Secure apply — it is not a second, weaker payment path. The link carries a random token, expires, and stops working the moment it is paid.
- A risk check before the card is charged
- Five rules, each switched on separately: attempts per address, attempts per card, consecutive failures, a Turkish-issued card billed abroad, and an amount ceiling. Each can flag the order, hold it for review or decline it. Neither the address nor the card number is stored — only a digest salted with your own site key, because a fraud screen that keeps card data is a second card database.
Product page ↗
Documentation ↗
Live demo ↗
The email your store sends, and the proof that it went out.
WordPress hands order confirmations, password resets and receipts to whatever the server happens to offer, and when one of them does not arrive there is nothing left to look at. MevvMail takes the send over instead: it delivers through connections you configure, moves to the next one when the first refuses, retries later rather than giving up, and writes every attempt to a table in your own database. Ten connection types, the failover chain, the log and the WooCommerce order box are all in the free plugin. The log stays on your server — no part of your email is sent to us.
- Ten ways out, and all of them are free
- SMTP, PHP mail(), Brevo, SendGrid, Mailgun, Postmark, SparkPost, Elastic Email, SMTP2GO and Resend. Not one of them is behind a licence and we impose no send limit, because a delivery plugin that rations delivery is selling you the problem back. You use your own account and your own key with each provider.
- The next connection sends what the first one refused
- Every connection has a priority, and the list is walked in that order until one accepts the message. A provider that is rate limiting, out of quota or simply down costs you the attempt, not the email. The whole chain is one row in the log, not three — a single email should not read as three separate failures.
- It tries again later, not just louder
- When every connection has refused, the message is queued and tried again after one minute, five minutes and thirty minutes. Three attempts and it stops: an address that does not exist will not start existing on the fortieth try. The retries are scheduled through WP-Cron, so on a quiet site they run whenever the next visitor arrives.
- A log that answers “did it go out?”
- Time, recipients, subject, status, which connection handled it and which part of the site produced it — filterable by status, source and date. It is a table in your own database. Nothing about your email is sent to us: no telemetry, no content scanning, no licence call from the free plugin.
- Send it again from the log
- Any entry can be sent again from the list, which is usually faster than asking the customer to trigger the email themselves. Keeping the message body is a setting, and turning it off is a real choice with two consequences: an entry logged without its body cannot be resent, and a failed send is not queued for the retry ladder either — in both cases there is nothing left to send. Retention is yours to set — 7, 30, 90 days or forever.
- The order screen knows what it sent
- With WooCommerce active, each order gets a box listing the emails that order produced and how each one went. The delivery question is answered against the order instead of in a log you have to search. Without WooCommerce the plugin works exactly the same; the box is simply not there.
- Attachments go out over SMTP
- In 1.0.0 the eight API providers do not send attachments, and MevvMail does not pretend otherwise: an email carrying a file skips those connections and looks for an SMTP one. So keep a single SMTP connection in the chain and invoices, tickets and PDFs keep working. With no SMTP connection configured, such an email is logged as failed rather than delivered without its file.
- Installed and unconfigured, it changes nothing
- With no connection defined the filter hands the send straight back to WordPress. A plugin that swallowed a store’s email while somebody worked out the settings would be worse than the problem it set out to solve.
- Pro is the WooCommerce depth, not the delivery
- Pro adds the WooCommerce email designer, open tracking, failure alerts and conditional routing. Delivery, failover and the log stay in the free plugin and keep running whatever the licence says — a lapsed licence costs you the designer screen, never the ability to send an email.
Product page ↗
Documentation ↗
Live demo ↗
Nothing tracks your visitor until they say yes.
Most cookie banners ask the question, then load Google Analytics, the Ads tag and everything else regardless of the answer. The visitor said no and was tracked anyway. MevvLegal stops the tracking code from running at all until they agree — and if they never do, it never runs. It also records what they agreed to, and writes your privacy and cookie pages from the list of cookies your site actually uses.
- The tracking code really does not run
- Until consent, the browser neither downloads nor executes it — the address is set aside rather than deleted, because consent has to be able to put it back.
- It also catches what other plugins add
- Some plugins paste their tracker straight into the page, where the usual mechanism cannot see it. Those are matched by their address instead — found on a live store, where a Google Ads tag was running under a banner that believed it had blocked it.
- Consent is tied to the text that was shown
- The policy version is a hash of the open categories, the banner text and the inventory. Change any of them and the old consent stops counting, so the question is asked again.
- Proof without identifying anybody
- The server keeps counts of (day, policy version, choice) and an archive of every policy text. Person-level proof would mean giving the visitor a durable identifier — opening a new processing operation in order to prove consent for the old one.
- Reject is as easy as accept
- Both buttons carry the same class and reject is printed first. A test asserts their class attributes are identical, because consent obtained through a harder refusal is not freely given.
- Nothing is cached wrong
- No cookie, no nonce, no logged-in check on the front end. A consent banner that varies the page per visitor breaks full-page caching, and a nonce dies behind it silently.
- Legal pages from your own inventory
- The cookie policy is generated from the categories and rows you actually filled in. An empty category prints no invented line — declaring a processing operation you do not run is worse than declaring too little.
- The banner never depends on the licence
- If it went quiet when payment lapsed, the site would start writing tracking cookies without consent — and the fine lands on the site owner, not on us.
- A hundred and twenty-one services it can name
- The library recognises 121 third-party services by the addresses they load from, together with the cookies each one sets and how long those last. Thirty-three of the records are complete; the other eighty-eight carry a visible “verify this” mark instead of a plausible guess, because a cookie table that invents a retention period is worse than one with a gap in it. Payment and bot-protection scripts are recognised too but never offered as blockable — holding one back breaks a checkout silently.
- A scan that runs itself and reports only what changed
- Put the front-end audit on a weekly or daily timer and it tells you when a new unheld third-party script or an unlisted cookie appears — not the whole list again. Switching the schedule on is Pro; switching it off and scanning by hand are free.
Product page ↗
Documentation ↗
Live demo ↗
Add small features to WordPress without editing theme files.
Put the PHP, JavaScript, CSS, HTML or reusable text that changes your store in one searchable dashboard: a shipping rule, a checkout field, a tracking tag or an admin shortcut. MevvCode validates the change, compiles it to an atomic file runtime and keeps the last known-good version ready. You get the speed of code in a file without treating functions.php as a scratchpad.
- The runtime is a file, not a query
- Changes compile into an atomic generation and manifest. Front-end execution reads that generation directly, while the editable records and their history remain separate.
- A failed snippet disables itself
- PHP is parsed before activation, the last known-good generation stays in place after a compile error, and a fatal on the current request is attributed to the running snippet.
- Code Snippets migration has a way back
- Every record keeps its source id and exact code. The old plugin is deactivated only after compile and health checks; rollback restores both the active-plugin list and the former manifest.
- Five snippet types and explicit locations
- PHP, JavaScript, CSS, HTML and text can run globally, in admin, in the head or footer, around content, through a shortcode, manually or once.
- Conditions without hidden magic
- Groups, tags, locks, bulk actions and AND/OR condition groups are visible on the same product dashboard. No condition rewrites the snippet itself.
- Portable by default
- MevvCode JSON, readable PHP, third-party adapters, starter generators and a standalone must-use loader keep your work movable.
- Sixty snippets you can read before you switch one on
- A library of reviewed patterns for the ordinary jobs people otherwise paste from a forum post — security, performance, accessibility, WooCommerce. Adding one copies it into your own workspace as an inactive record, so nothing runs until you have read it and said so.
- Packs install a set at once
- Six packs — store launch, checkout cleanup, catalogue tuning, store performance, hardening basics and admin tidy. A pack installs all of its snippets or none of them, and every one arrives inactive.
- Pro is for teams and delivery
- Schedules, reusable conditions, commerce context, asset builds, marketing events with a live monitor, automation, plugin export, cloud workspaces, AI review, AI drafting with your own provider key, and an action-gated API.
- Pro: run a snippet only in some countries
- The country comes from the WooCommerce customer’s own billing or shipping address, or from a geolocation database sitting on your server. It is never fetched from a third-party lookup service and no address is stored — the condition is answered locally or not at all.
- Pro: write SCSS, ship CSS
- A separate Styles screen compiles SCSS or LESS — variables, nesting, the ampersand, media and container rules bubbled out — and files the result as a new, inactive CSS snippet for you to look at. The compiler is written for this one job and refuses what it does not implement (mixins, extends, imports, control directives) out loud, rather than quietly producing something slightly different.
Product page ↗
Documentation ↗
Live demo ↗
It does not convert. It takes over.
You want to drop the page-builder subscription but you are afraid the site will break. The existing import tools only handle simple layouts; third-party widgets, dynamic content and custom CSS get lost on the way. MevvBridge splits the page in two instead: what it recognises is rebuilt from your data and stays editable, and what it does not recognise is captured exactly as it looks while the source plugin is still installed. When it meets something it does not know, it does not guess — it freezes it.
- Two lanes: live and frozen
- Recognised elements are rebuilt from your data and stay editable. Everything else is captured while the source plugin is still installed and printed exactly as it looked — not editable, but not broken either.
- You read the report before you leave
- Which element stays live, which one freezes, which one carries dynamic content — the whole list is there before Elementor is switched off.
- Things that would stop working are not converted
- An element that breaks when frozen — a checkout form, a contact form — is detected and its content is left alone. Being dynamic (goes stale) and being dangerous (stops working) are treated as two different problems.
- Header and footer templates included
- Not just the page body: the source plugin’s header and footer templates are printed in their place too. Leaving them out is how a migration silently loses the footer.
- Converting to blocks is optional
- Pages can be written into standard Gutenberg block markup in post_content, with the original content backed up to a meta field. After that step the content is native WordPress.
- The way back stays open
- Re-enable the source plugin and MevvBridge steps aside.
Product page ↗
Documentation ↗
Live demo ↗