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:
| Mode | Initial HTML | Node.js in production | Good for |
|---|---|---|---|
client | Rendered in the browser | No | Existing ReactWP projects and highly interactive screens |
static | Generated ahead of time, then hydrated | No | Home pages, services, articles, and public content |
server | Rendered for each request, then hydrated | Yes | Accounts, 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:
- Integrated theme: follow Installation, then Build Your First Template.
- External frontend: follow Use ReactWP Headless, then use the Headless API Reference.
- Rendering strategy: read Client, Static, and Server Rendering.
- Existing project: use Project Structure and Build Commands as a map.