Skip to main content

Introduction

ReactWP is a WordPress application framework for integrated React themes and headless frontends.

It keeps WordPress in charge of content, administration, users, plugins, permalinks, previews, and SEO while giving frontend developers a modern React runtime, a public API, and a production build system.

What You Can Build

ReactWP supports two frontend architectures from the same WordPress backend.

Integrated React Themes

Build the frontend inside a WordPress theme. WordPress resolves the request and sends a normalized bootstrap payload to the browser. ReactWP then renders the selected React template and manages internal navigation, lazy loading, media, document head updates, scroll behavior, and page transitions.

An integrated template can choose its initial render mode:

ModeInitial HTMLNode.js in productionGood for
clientRendered in the browserNoExisting ReactWP projects and highly interactive screens
staticGenerated ahead of time, then hydratedNoHome pages, services, articles, and public content
serverRendered for each request, then hydratedYesAccounts, carts, personalized routes, and live data

Rendering is configured per template. A project can use all three modes together, and client remains the default for existing registrations.

Headless Frontends

Use WordPress only as the content and administration backend. ReactWP exposes normalized routes, navigation, public settings, SEO, previews, authentication, and sitemap data through a versioned REST API.

The external application owns rendering, assets, navigation, and deployment. It can use React, Vue, Svelte, Astro, or another frontend stack.

One WordPress Backend

Both architectures use the same WordPress content and extension points:

  • pages, posts, custom post types, taxonomies, and menus
  • ACF fields and project settings
  • users, capabilities, previews, and authenticated requests
  • normalized route and navigation payloads
  • PHP helpers, hooks, filters, and security controls
  • browser, static, public SSR, and private SSR cache invalidation from the WordPress admin

Integrated themes additionally receive the browser runtime and project pipeline: template loading, client navigation, hybrid rendering, SCSS compilation, code splitting, media optimization, compressed assets, manifests, and bundle reports.

How a Request Works

In integrated mode, WordPress remains the front controller:

Browser request
-> WordPress resolves the permalink and route data
-> ReactWP selects client, static, or server initial HTML
-> React renders or hydrates the selected template
-> ReactWP owns subsequent internal navigation

Static output is stored as an internal React fragment rather than a public standalone HTML page. WordPress still handles the URL and injects the correct fragment into the theme shell.

In headless mode, the external frontend requests the public contract directly:

External frontend
-> GET /wp-json/reactwp/v1/route?view=/about/
-> WordPress resolves and normalizes the route
-> The frontend renders the response with its own framework

Start Here

Choose the path that matches your project: