The open-source publishing platform — WordPress familiarity, Next.js performance.
One global package · Zero-config CMS · Headless API · Production-ready themes
|
⚡ ~60s Zero-config cold start |
📊 95 / 100 / 100 / 100 Lighthouse on official theme |
🔌 Headless REST · Swagger · TypeScript SDK |
Theme demo · Full-stack demo · Documentation · Official theme · 中文文档
If ReactPress saves you time, ⭐ Star on GitHub — it helps others find it.
Requirements: Node.js 18+ · Docker recommended (bundled MySQL)
npm i -g @fecommunity/reactpress@3
mkdir my-blog && cd my-blog
reactpress init
reactpress devThat's it — the CLI scaffolds config, starts MySQL, and launches the CMS API. No manual .env editing.
| Service | URL |
|---|---|
| CMS API | http://localhost:3002/api |
| Swagger docs | http://localhost:3002/api |
| Health check | http://localhost:3002/api/health |
Run reactpress for the interactive menu · reactpress doctor if something fails.
Next: connect the official theme, or follow the full-stack guide.
Table of contents
Most publishing tools force a trade-off: easy CMS with a slow or tightly coupled frontend, or blazing static sites without a proper editor. ReactPress reduces that trade-off — WordPress-style editing with a modern, decoupled public site.
| ReactPress | WordPress | Ghost | Static (Hugo, Hexo) | |
|---|---|---|---|---|
| Time to first stack | init + dev — ~60s¹ |
Server, PHP, themes, plugins | Managed or self-hosted install | New repo + pipeline per site |
| Content editing | Web admin | Web admin | Web admin | Markdown in Git |
| Public site speed & SEO | Lighthouse 95/100/100/100² | Varies by theme/plugins | Generally strong | Excellent, no built-in CMS |
| Frontend flexibility | Headless — swap the theme | Theme/plugin ecosystem, often coupled | Tied to Ghost themes | Fixed at build time |
| Built-in extras | Search, comments, knowledge base | Often via plugins | Membership focus | Build yourself |
| Best for | Blogs, content sites, custom publishing | General websites | Newsletters & publishing | Docs & dev blogs |
¹ After Node.js and Docker are ready; first Docker image pull may take longer.
² Measured on the official theme live demo.
| Feature | What you get | |
|---|---|---|
| ⚡ | ~60s cold start | init + dev — zero config, embedded Docker MySQL |
| ✍️ | Familiar CMS | Posts, pages, media, categories, tags, scheduled publishing |
| 🎨 | Modern frontend | Official Next.js theme — search, comments, knowledge base, dark mode |
| 🔌 | Headless-ready | REST API, Swagger, API keys, webhooks — swap or build your own frontend |
| 📊 | Production scores | Official theme demo: Lighthouse 95 / 100 / 100 / 100 |
| 🛠️ | Developer UX | Interactive CLI menu, doctor, status, db backup |
| 🌐 | i18n | Chinese & English admin and docs |
| 📦 | One package | @fecommunity/reactpress@3 — CLI + API + templates, no assembly required |
| Use case | Why ReactPress | |
|---|---|---|
| 📝 | Personal blogs | Rich editor — no Markdown-in-Git workflow |
| 🏢 | Content sites & docs | Knowledge base, search, comments out of the box |
| 🧑💻 | Developer teams | Headless API + SDK, any frontend stack |
| 🚀 | Indie makers | npm i -g → running CMS in ~60 seconds |
| 🔌 | Headless CMS | REST + Swagger + webhooks as your content hub |
ReactPress separates content management from presentation — write in the admin, render anywhere.
flowchart LR
subgraph Author["Authoring · :3001/admin"]
A["Admin console<br/>React · Ant Design"]
end
subgraph Core["Content platform · :3002"]
B["NestJS REST API<br/>Swagger · Headless · Webhooks"]
DB[(MySQL)]
B --- DB
end
subgraph Delivery["Public delivery"]
C["Official theme<br/>Next.js SSR"]
D["Custom frontend<br/>Toolkit · REST · API Key"]
end
A -->|write & publish| B
B -->|SSR fetch| C
B -->|headless API| D
| Component | Role |
|---|---|
CLI (reactpress) |
Init, dev, build, deploy, Docker, diagnostics |
| CMS API | Content, media, settings, headless endpoints, webhooks |
| Admin console | Web UI for editors (included in full-stack setups) |
| Official theme | Recommended public site — fast, SEO-friendly, feature-rich |
| @fecommunity/reactpress-toolkit | TypeScript SDK for custom frontends |
npx create-next-app@latest my-blog --example "https://github.com/fecommunity/reactpress-theme-starter" --use-pnpm
cd my-blog && pnpm dev:mockOpen http://localhost:3001 — same as the live demo.
- Keep the ReactPress API running (
reactpress dev, orreactpress dev --api-only). - Clone reactpress-theme-starter →
pnpm install. - Copy
.env.exampleto.env→pnpm dev.
Customize colors, logo, and navigation in the ReactPress admin. Full guide: theme starter README.
reactpress build && reactpress startDocker, PM2, backups: full documentation.
| Command | What it does |
|---|---|
reactpress |
Interactive menu |
reactpress init |
Set up a new site |
reactpress dev |
Run locally (API; add theme for public site) |
reactpress dev --api-only |
API only (headless) |
reactpress build / reactpress start |
Production build & run |
reactpress doctor / reactpress status |
Diagnose & check status |
reactpress db backup |
Back up the database |
| Stack | Node.js CLI · NestJS API · MySQL · React admin · Next.js theme · TypeScript SDK |
| Main repo | fecommunity/reactpress |
| Official theme | fecommunity/reactpress-theme-starter |
| Documentation | docs.gaoredu.com |
| NPM | @fecommunity/reactpress · @fecommunity/reactpress-toolkit |
| Live demos | Full stack · Theme only |
Do I need Docker?
Recommended. ReactPress uses embedded Docker MySQL by default. You can also point to an external MySQL instance via .reactpress/config.json.
Can I use my own frontend?
Yes. ReactPress is headless-first — REST API, API keys, and @fecommunity/reactpress-toolkit for any stack.
How is this different from WordPress?
Similar admin-driven workflow, but a shorter path to a fast modern frontend — no PHP stack, no plugin maze for performance. API and theme are decoupled by design.
What does "~60 seconds" mean?
After Node.js and Docker are installed, a second cold start (reactpress init + reactpress dev) typically completes within 60 seconds. First Docker image pull takes longer.
| Issues & features | GitHub Issues |
| Questions & ideas | GitHub Discussions |
| Contributing | Guide · Code of Conduct · Security |
Thank you to everyone who has helped shape ReactPress.
![]() FECommunity |
![]() SleepSheep |
![]() fantasticit |
![]() chenbo29 |
![]() redteav2 |
![]() trashken |
![]() franz007 |
![]() funtime1 |
![]() scottdeift |
![]() TwoDollars666 |
![]() Xiaonan2020 |
redtea |
m0_37981569 |
![]() lsr365400 |












