Skip to content

fecommunity/reactpress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

429 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReactPress Logo ReactPress — The publishing system for React developers.

ReactPress

The publishing system for React developers.

Build blogs, documentation, company websites, and content-driven applications with React.


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

GitHub stars npm downloads GitHub license NPM Version Node.js Lighthouse 95 PRs Welcome

React Next.js NestJS Electron MySQL / SQLite


Star ReactPress on GitHub

If ReactPress saves you from stitching CMS + API + frontend — a ⭐ helps the next developer find it.


See it in action

ReactPress CLI — install to live site in ~60 seconds

Desktop — offline writing with SQLite Desktop — offline writing, sync to production Official theme — search, comments, knowledge base Visitor site — search · comments · knowledge base · dark mode
Lighthouse: Performance 95, Accessibility 100, Best Practices 100, SEO 100

Scores on the official theme demo. Production results depend on hosting and content.


30-second start

npm i -g @fecommunity/reactpress@beta
mkdir my-site && cd my-site
reactpress init

Requirements: Node.js 20+ · No Docker or external database

4.x 发布在 npm @beta 标签(@latest 仍为 3.x)。

Surface URL
Public site http://localhost:3001
Admin http://localhost:3001/admin/ (admin / admin)
API http://localhost:3002/api/health

reactpress doctor diagnoses setup issues when something does not start correctly.

~60 sec
init → live stack
95 / 100
Lighthouse performance
MIT
self-hosted
1 CLI
full platform

Contents


The problem

Modern content systems force a bad trade-off:

Path Trade-off
WordPress-style CMS Great editing — slow themes, coupled PHP stack
Static site generators Blazing fast — no real CMS for non-developers
Headless CMS (Strapi, Payload) Flexible API — you still assemble admin, frontend, deploy

Frontend teams deserve one publishing platform — not five repos to wire together.

Before                          With ReactPress
──────                          ───────────────
Pick a CMS backend         →    reactpress init
Write & manage content     →    Admin at /admin/
Visitors see your theme    →    http://localhost:3001
Something wrong?           →    reactpress doctor

What is ReactPress?

ReactPress is the publishing system for React developers — build blogs, documentation, company websites, and content-driven applications with React. One CLI, not another headless backend to wire up.

One CLI install. Everything included:

Layer What you get
CMS WordPress-style editing — posts, pages, media, categories
API Headless REST — React-first, Swagger-documented
Admin Web writing UI — no separate admin to build
Themes npm-installable Next.js frontends — swappable
Plugins Hook-based extensibility — SEO, summaries, image optimization
Desktop Local-first writing — SQLite, offline, sync upstream

Content owned by the system. Frontend owned by developers. It is not a CMS — it is a publishing platform.


What you can build

Use case Why ReactPress fits
Personal blogs Admin writing + Lighthouse-fast Next.js theme
Developer docs & knowledge bases Built into official theme + API
SaaS marketing sites Headless API + custom Next.js frontend
Multi-editor teams Web admin for writers, theme repo for engineers
Offline-first workflows Desktop app with SQLite, sync when ready

Architecture

flowchart TB
  subgraph Authoring["Authoring"]
    CLI["CLI<br/>init · dev · doctor"]
    Admin["Admin<br/>React + Vite · /admin/"]
    Desktop["Desktop<br/>Electron · offline SQLite"]
  end

  subgraph Core["CMS Core"]
    API["CMS API<br/>NestJS · :3002"]
    Plugins["Plugins<br/>hooks · in-process"]
    DB[("SQLite / MySQL")]
  end

  subgraph Delivery["Delivery"]
    Theme["Active theme<br/>Next.js · :3001"]
    Preview["Theme preview<br/>:3003"]
  end

  CLI -->|"orchestrate"| API
  CLI --> Theme
  Admin -->|"REST"| API
  Desktop -->|"REST"| API
  Plugins --> API
  API --> DB
  API -->|"headless JSON"| Theme
  API --> Preview
  Admin -.->|"iframe"| Preview
Loading
CMS Core     → content, media, settings        (NestJS)
Admin UI     → writing experience              (React + Vite)
API Layer    → headless access                 (REST + Swagger)
Theme System → visitor-facing frontend         (Next.js, npm)
Plugin System→ extensibility                   (hooks + Admin slots)
Desktop App  → offline writing                 (Electron + SQLite)

Themes

Themes are fully replaceable Next.js frontends — not locked to core. Install and activate them in Admin → Appearance → Themes.

Preview without a backend:

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

Live: reactpress-theme-starter.vercel.app · Deploy with Vercel


Plugins

Extend without touching core. Install and enable plugins in Admin → Plugins.

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

Dev guide: plugins/README.md · Starter template: reactpress-plugin-starter


Desktop-first writing

Write offline. Sync when ready. No Docker required.

Download desktop client (macOS / Windows / Linux) · or build from source:

pnpm dev:desktop       # monorepo root
pnpm build:desktop     # build installer

SQLite local storage · offline editing · remote API mode · sync to production · desktop/README.md


Why ReactPress?

ReactPress WordPress Static sites Headless CMS
Editing experience Yes Yes No Partial
Frontend freedom Yes No Build-time only Yes
Full system out of box Yes Via plugins No No
Time to start ~1 min Hours Fast per site Setup + assembly
Local / offline writing Desktop app No No No
Lighthouse performance 95² Theme-dependent Excellent Depends on frontend

vs WordPress — same editing workflow, modern Next.js delivery, no PHP theme bloat.

vs Static generators — keep the speed, add a real CMS.

vs Strapi / Payload — they ship a backend; ReactPress ships the full publishing platform.

² Official theme demo


What's new in 4.0

Codename Extend — plugins, desktop, npm themes. Still one CLI, one Admin.

npm i -g @fecommunity/reactpress@beta

4.0 guide · Migrate from 3.x


For developers

Headless by default. Connect any frontend via REST.

curl -H "X-API-Key: YOUR_KEY" \
  "http://localhost:3002/api/article/headless/list?status=publish&page=1&pageSize=10"
Resource Link
Swagger http://localhost:3002/api
Theme dev themes/README.md
Plugin dev plugins/README.md
Theme starter reactpress-theme-starter
Plugin starter reactpress-plugin-starter
CLI commands & ports (local init)
Command Action
reactpress / reactpress init Initialize and start (SQLite + API + theme)
reactpress init --force Re-initialize 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

Monorepo contributors: see CONTRIBUTING.md and package READMEs under server/, web/, themes/.


Deploy

reactpress init runs a local production-style stack (SQLite API + theme with embedded admin). For VPS, Docker, PM2, and backups, see the deployment docs.

Theme-only hosting: deploy reactpress-theme-starter and point it at your API.


Roadmap (4.x)

  • Plugin npm catalog
  • Desktop auto-update, tray, shortcuts
  • Theme & plugin marketplace

FAQ

Do I need Docker?

No for the default CLI flow — reactpress init uses embedded SQLite. Docker is only needed if you configure MySQL via embedded-docker in .reactpress/config.json. The desktop app also runs on SQLite without Docker.

Can I use my own frontend?

Yes — headless REST API with API keys. Fork the official starter or build against /api/article, /api/page, etc.

How is this different from WordPress?

Same admin-driven workflow, but a faster default theme, a cleaner headless path, and no plugin bloat for a modern React/Next.js frontend.

Is 4.0 production-ready?

4.0 is in active beta (4.0.0-beta.18 at time of writing). The published CLI supports init, doctor, logs, and stop. See the migration guide before upgrading production.

WordPress alternative? Headless CMS? Next.js blog?

Yes — ReactPress targets all three: self-hosted WordPress-style editing, headless REST for custom frontends, and an official Next.js theme with Lighthouse 95 performance out of the box.


Contributing

Contributing · Code of Conduct · Security

Issues · Pull requests

fecommunity
FECommunity
want2sleeep
SleepSheep
fantasticit
fantasticit
chenbo29
chenbo29
redteav2
redteav2
trashken
trashken
franz007
franz007
funtime1
funtime1
scottdeift
scottdeift
TwoDollars666
TwoDollars666
Xiaonan2020
Xiaonan2020
gaoredu
redtea
lsr365400
lsr365400

MIT License · © ReactPress / FECommunity


Star ReactPress on GitHub

The publishing system for React developers.
Help us reach more builders — ⭐ on GitHub.


Star History Chart

About

🔥 ReactPress -The publishing system for React developers.(面向 React 开发者的发布系统。)Demo:https://reactpress-theme-starter.vercel.app

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

727 stars

Watchers

11 watching

Forks

Sponsor this project

Packages

 
 
 

Contributors