Skip to main content

Core Concepts

ReactPress is a publishing platform, not a Headless CMS alone. Understanding each component helps you choose the right approach and extend the system.

One-line definition

Admin manages content · Theme manages presentation · Plugin manages logic · API manages data · Toolkit manages contracts

Five components

ComponentTechnologyPortResponsibility
AdminReact + Vite SPA3001 /admin/Write posts, manage media, install themes/plugins, site settings (Monorepo dev may use :3000)
APINestJS3002Persistence, auth, Hooks, Headless REST
ThemeNext.js SSR/ISR3001Visitor-facing site (fully replaceable)
PluginNode module + HookServer-side logic (SEO, summaries, image optimization, etc.)
DesktopElectronOffline writing, SQLite local mode, sync to remote

Mapping to WordPress

WordPressReactPressNotes
wp-adminAdmin (:3001/admin/)Content management UI
Themethemes/* (:3001)Visitor frontend, installable via npm
Pluginplugins/*Hook extensions without modifying themes
REST API/api/*Headless enabled by default
DesktopLocal-first writing (no WordPress equivalent)

Data flow

  1. Authors create posts in Admin or Desktop
  2. Requests reach API via the Toolkit SDK
  3. Plugins transform summaries, SEO fields, etc. at Hook points
  4. Data is written to SQLite / MySQL
  5. Theme fetches content via API and SSR-renders for visitors

Architecture rules

  • Admin does not serve visitor pages; themes do not include Admin routes
  • All frontends (Admin, theme, plugin UI) access API only through Toolkit
  • Server does not depend on any frontend package

See Architecture overview.

Directories and runtime

my-site/
├── .reactpress/
│ ├── config.json # config source (ports, database, URLs)
│ ├── runtime/{theme-id}/ # installed themes
│ ├── plugins/{plugin-id}/ # installed plugins
│ └── reactpress.db # SQLite (default)
├── .env # auto-generated by CLI — do not edit by hand
└── uploads/ # media upload directory

Two user paths

PathForEntry
End userBuild sites, blognpm i -g @fecommunity/reactpressinit
ContributorCore, themes, pluginsclone monorepo → pnpm dev