Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

482 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReactPress ReactPress — The publishing system for React developers.

ReactPress

The publishing system for React developers

One CLI for a self-hosted CMS, Admin, headless API, Next.js themes, plugins, and desktop writing — MIT licensed.

Quick start · Live demo · Theme demo · Docs · 中文

npm downloads license node stars lighthouse

React Next.js NestJS Electron SQLite / MySQL

Quick start

npm i -g @fecommunity/reactpress
mkdir my-site && cd my-site
reactpress init
Surface URL
Public site http://localhost:3001
Admin http://localhost:3001/admin/ (admin / admin)
API health http://localhost:3002/api/health

Requirements: Node.js 20+. Default flow uses embedded SQLite — no Docker or external database.

If startup fails, run reactpress doctor.

Current stable: 4.0.0 on npm @latest. Use @beta only for prereleases.


See it in action

ReactPress CLI — init flow demo

Desktop client — offline writing with SQLite
Desktop — offline writing, sync when ready
Official theme — search, comments, knowledge base
Visitor site — search · comments · knowledge base · dark mode
Lighthouse report for the official theme demo
Official theme demo audit (screenshot): Performance 95, Accessibility 100, Best Practices 100, SEO 100. Re-run on your host and content for current numbers.

Why ReactPress?

WordPress-style editing is hard to replace. Headless CMS tools give you an API — then you still build admin, frontend, and ops. ReactPress is the middle path for React teams:

Approach What you get What you still own
WordPress Mature editing PHP themes / coupled stack
Static generators Fast HTML Real CMS for non-developers
Headless CMS Flexible API Admin + frontend + deploy glue
ReactPress CMS + Admin + API + themes + plugins + desktop Your content and theme code

Who it is for

  • React / Next.js developers who want a self-hosted blog or content site without assembling five repos
  • Teams that need writers in an Admin UI and engineers owning a Next.js theme
  • Anyone comparing WordPress alternatives, headless CMS options, or a Next.js blog stack

Features

Layer What ships today
CMS Posts, pages, media, categories, tags
Admin Writing UI at /admin/ (same SPA in the browser and desktop)
API Headless REST + Swagger
Themes Swappable Next.js visitor frontends (npm-installable)
Plugins Server hooks + optional Admin slots (seo, hello-world, image-optimizer)
Desktop Electron + local SQLite mode; optional remote API + sync
CLI init, doctor, logs, stop

Content stays in the platform. Presentation stays in your theme (or any headless client).


Comparison

ReactPress WordPress Static sites Headless CMS
Editing experience Yes Yes No Partial
Frontend freedom Yes Limited Build-time Yes
Full stack out of the box Yes Via plugins No No
Time to first local site Minutes (reactpress init) Often longer Fast per site Setup + assembly
Offline writing Desktop app No No No
Default theme Performance 95¹ Theme-dependent Usually high Depends on frontend

¹ Lighthouse Performance on the official theme demo (screenshot above). Accessibility / Best Practices / SEO were 100 in that audit.

  • vs WordPress — similar editorial workflow; Next.js delivery, no PHP theme lock-in for the public site.
  • vs static generators — keep the speed; add a real CMS.
  • vs Strapi / Payload — they ship a backend; ReactPress ships CMS + Admin + theme + desktop as one product.

Themes

Replaceable Next.js frontends. Install and activate in Admin → Appearance → Themes.

npx create-next-app@latest my-blog \
  --example "https://github.com/fecommunity/reactpress-theme-starter" \
  --use-pnpm
cd my-blog && pnpm dev:mock

Plugins

Extend the server without forking core. Manage in Admin → Plugins.

Plugin Capability
seo Slug, keywords, meta description + Admin editor slot
hello-world Auto-generate article summaries on publish
image-optimizer Batch WebP optimization for media

Starter: reactpress-plugin-starter · Guide: plugins/README.md


Desktop

Same Admin UI, local-first. Local SQLite mode needs no Docker.

Docs Desktop client
Releases GitHub Releases (installers when the desktop workflow attaches assets)
From source pnpm dev:desktop · pnpm build:desktop

Details: desktop/README.md


Architecture

flowchart TB
  subgraph Authoring["Authoring"]
    CLI["CLI — init · doctor · logs"]
    Admin["Admin — React + Vite · /admin/"]
    Desktop["Desktop — Electron · SQLite"]
  end

  subgraph Core["Platform"]
    API["CMS API — NestJS · :3002"]
    Plugins["Plugins — hooks"]
    DB[("SQLite / MySQL")]
  end

  subgraph Delivery["Delivery"]
    Theme["Active theme — Next.js · :3001"]
    Preview["Theme preview · :3003"]
  end

  CLI --> API
  CLI --> Theme
  Admin -->|REST| API
  Desktop -->|REST| API
  Plugins --> API
  API --> DB
  API -->|JSON| Theme
  API --> Preview
  Admin -.->|iframe| Preview
Loading
Package Role
cli Orchestration
server Business rules, auth, hooks, persistence
web Admin SPA
themes/* Visitor SSR/ISR
plugins/* Incremental logic
desktop Electron shell over Admin
toolkit Shared API client and contracts

Design notes: ARCHITECTURE.md


For developers

Headless by default:

curl -H "X-API-Key: YOUR_KEY" \
  "http://localhost:3002/api/article/headless/list?status=publish&page=1&pageSize=10"
Resource Link
Swagger (local) http://localhost:3002/api
Theme starter reactpress-theme-starter
Plugin starter reactpress-plugin-starter
Docs docs.gaoredu.com
CLI commands & local ports
Command Action
reactpress / reactpress init Initialize and start (SQLite + API + theme)
reactpress init --force Re-initialize an existing project
reactpress doctor Diagnose environment and URLs
reactpress logs Tail API logs
reactpress stop Stop API and site services
Service URL / port
Public site http://localhost:3001
Admin http://localhost:3001/admin/
API http://localhost:3002/api

Deploy

reactpress init runs a local production-style stack (SQLite API + theme with embedded Admin).


What's new in 4.0

Stable on npm @latest (codename Extend):

  • Plugin system — Hook + plugin.json + Admin slots
  • Desktop client — Electron + SQLite local mode, remote sync
  • npm theme catalog — installable Next.js themes

4.0 guide · Migrate from 3.x · Changelog


Roadmap

Item Tracking
Plugin npm catalog (reactpress plugin add) #89
Desktop tray / shortcuts / auto-update #91
Theme & plugin marketplace UI #92

FAQ

Do I need Docker?

Not for the default CLI flow — reactpress init uses embedded SQLite. Docker is only required when you configure MySQL via embedded-docker in .reactpress/config.json. Desktop local mode also uses SQLite without Docker.

Can I use my own frontend?

Yes. Use the headless REST API with API keys. Fork the official theme starter or call /api/article, /api/page, and related endpoints.

How is this different from WordPress?

Similar admin-driven workflow, with a Next.js public site, a clean headless path, and no PHP theme stack for visitors.

Is 4.0 production-ready?

Yes. 4.0.0 is the current stable release on npm @latest. When upgrading from 3.x, validate on staging and read the migration guide.


Contributing

CONTRIBUTING.md · Code of Conduct · SECURITY.md

Issues · Pull requests


License

MIT · © ReactPress / FECommunity


If ReactPress saves you from wiring CMS + API + frontend yourself, star the repo so other React developers can find it.


Star History Chart

About

🔥 ReactPress - The publishing system for React developers.(面向 React 开发者的发布系统。)Demo:https://www.gaoredu.com

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

751 stars

Watchers

11 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages