FlexPlat logoFlx Modernize

Version 1.9.0 · Twenty Twenty-Five · Open source

WordPress pages,rendered by Node.js.

Flx Modernize serves your site's pages through a Node.js renderer, built with Tailwind CSS for your theme. WordPress stays your CMS and its hooks and plugins keep running, so WordPress and JavaScript developers can work on the same site. If the renderer is unavailable, WordPress serves the page itself.

See it in 60 seconds

The same WordPress page with Contact Form 7 and a jQuery lightbox, first in a typical Next.js + REST API front end, then rendered by Node.js with Flx Modernize.

Video: headless WordPress without losing your plugins (Next.js vs Flx)▶ Watch on YouTube

Try it yourself: the plugin demo page (visit it logged out).

Considering headless WordPress?

Most headless setups move the front end to a separate app, so plugin front ends have to be rebuilt. Flx takes a different route: WordPress keeps handling each request, and a Node.js renderer produces the page. Plugin styles and scripts still reach the page.

It isn't right for every project. Each theme's look has to be rebuilt in the renderer (Twenty Twenty-Five so far), logged-in visitors see normal WordPress, and WooCommerce store pages stay normal WordPress.

How it works

  1. 1

    Your WordPress site

    WordPress stays your CMS. Posts, pages, menus and the theme's styles are edited exactly as before.

  2. 2

    Flx Modernize plugin

    For an anonymous visitor, the plugin builds the page's content and sends it, signed, to your Flx Render service.

  3. 3

    Flx Render

    A Node.js app with Tailwind CSS, built for your theme, returns the finished page in the theme's look, using the theme's own styles.

  4. 4

    Native fallback

    If the renderer is slow or unavailable, WordPress serves the page itself. Deactivating the plugin turns Flx off at once.

Version 1.9.0

Twenty Twenty-Five, today

This release renders sites that use WordPress's default Twenty Twenty-Five theme:

  • The blog home page, category and tag archives
  • Single posts and pages
  • Search results
  • The 404 page, still sent with a real 404 status
  • The theme's header with its menu and sub-menus, and its footer, on every page
  • Comments and the reply form on posts, with the theme's author line, tags, previous/next links and "More posts"
  • What your plugins add to the page head and footer: SEO tags, styles and scripts, including scripts that need jQuery (tested with Yoast SEO, Contact Form 7 and Easy FancyBox)

An automated check compares every page with the native theme, pixel by pixel: today about 94% match on desktop and 91% on phones. See the live demo (visit it logged out).

Visitors and their data

  • Only anonymous visitors get Flx pages. Logged-in users, previews, drafts and password-protected content always get normal WordPress.
  • The plugin sends nothing about the visitor to the renderer: no cookies, accounts or tracking parameters. Only search words, which the results page shows. Visitors' browsers load files such as the stylesheet from the renderer's address, as with any website file.
  • Every request to the renderer is signed with a key only your site holds.
  • Pages that are the same for every visitor can be cached by your CDN if you turn it on; search results, 404 pages and anything for logged-in users never are.

Open source

The plugin and the Twenty Twenty-Five renderer are free software under the GPL. Read how it works, and how the renderer was built, step by step.

Built for your site

Each site needs a renderer that knows its design. We build one for your WordPress site, close to how it looks today, and host it for you — or hand you the code to run yourself. No setup fee, and every paid plan starts with 30 days free.

Agencies build and run renderers for their clients, under their own name, in the Partner Program.

Current limitations

  • Twenty Twenty-Five only in 1.9.0; other themes need their own renderer.
  • Logged-in visitors, and visitors who have commented, see normal WordPress.
  • A comment's reply link opens normal WordPress instead of moving the form in place.
  • Post lists show excerpts where the theme shows full posts.