DEV Community

Cover image for ReactPress 3.0 : One Minute to Your Own CMS
FECommunity
FECommunity

Posted on

ReactPress 3.0 : One Minute to Your Own CMS

If you’ve ever spent an afternoon juggling MySQL, .env files, separate frontend/backend repos, and half a dozen npm packages just to launch a blog—ReactPress 3.0 folds that into two commands.

ReactPress is a modern full-stack publishing platform built on React, Next.js, and NestJS: a public site, admin console, and REST API out of the box. Version 3.0 (codename Platform) comes down to one promise:

Install one package. Run one command. Own your CMS in about a minute.


What does 3.0 fix?

2.x already had the features, but new users often got stuck on “which package do I install?”, “how do I write .env?”, and “do I need MySQL set up first?”. 3.0 reframes the product around three ideas:

Focus What you feel What 3.0 delivers
Zero config No hand-written .env, no six-package install dance reactpress init + reactpress dev, Docker MySQL by default
Single entry One package name, one command npm i -g @fecommunity/reactpress@3, everything via reactpress
Great DX Less doc-diving, status at a glance Interactive menu, doctor, status, URLs printed when dev is ready

Unlike “yet another static site generator,” ReactPress is an operable CMS: posts, pages, categories, tags, comments, media library, install wizard, light/dark themes, and Chinese/English UI—aimed at personal blogs, team sites, and content-driven products.


What can you do in a minute?

After a one-time global install, run this in any empty directory:

npm i -g @fecommunity/reactpress@3
mkdir my-blog && cd my-blog
reactpress init
reactpress dev
Enter fullscreen mode Exit fullscreen mode

Shortly after, the terminal points you to:

init creates .reactpress/config.json, syncs .env, starts embedded Docker MySQL, waits for the database, and runs migrations. You usually don’t need to edit config by hand.

Don’t want to memorize subcommands? Run reactpress alone for an interactive menu (init, dev, Docker, status, publish, and more).

Note: “One minute” means a repeat cold start (init + dev reachable in ~60 seconds). The first Docker image pull can take longer—that’s expected.

How does it compare to WordPress and static site tools?

Dimension Traditional CMS Static site tools ReactPress 3.0
Time to first site Server, plugins, manual setup Per-site repo + build pipeline One CLI, ~1 minute to a working CMS
Content workflow Strong admin, coupled themes Markdown in git Admin-first + optional code/Headless
Extensibility Plugin ecosystem Fixed at build time One content hub, swappable frontends
Stack PHP, etc. Any SSG React 17 + Next.js 12 + NestJS 6 + MySQL

Use it as a quick “self-hosted WordPress alternative,” or run API-only and build a custom frontend with @fecommunity/reactpress-toolkitone backend, many fronts.


Command cheat sheet

reactpress              # Interactive menu
reactpress init         # Zero-config project setup
reactpress dev          # Full stack (site + admin + API)
reactpress dev --api-only      # API only (Headless)
reactpress doctor       # Environment check: Node, Docker, ports, DB
reactpress status       # One-page runtime summary
reactpress build        # Production build
reactpress start        # Production run
Enter fullscreen mode Exit fullscreen mode

When something looks wrong, try reactpress doctor and reactpress status before digging through long docs.


Platform features in 3.0

Beyond “get running in a minute,” 3.0 keeps team and automation features:

  • Health check: GET /api/health for monitoring and CI
  • API Key + Headless list: create keys in admin, use X-API-Key on article endpoints
  • Webhooks: article.published, comment.created, with signature verification
  • Scheduled publishing, article revision history and rollback
  • Database backup: reactpress db backup
  • Production deploy: Vercel, PM2, docker-compose.prod.yml, and more

A good fit for teams that want to ship fast first, then move toward Headless without splitting the architecture on day one.


Package model: stop installing six packages

3.0 recommends a single main package:

# ✅ 3.0 recommended
npm i -g @fecommunity/reactpress@3

# ❌ Not for new users
npm i -g @fecommunity/reactpress-cli
npx @fecommunity/reactpress-server
Enter fullscreen mode Exit fullscreen mode
npm package Role
@fecommunity/reactpress Main package: CLI + bundled API + templates
@fecommunity/reactpress-client Advanced: frontend only, remote API
@fecommunity/reactpress-toolkit TypeScript SDK for Headless / custom frontends
@fecommunity/reactpress-template-* Optional templates via reactpress new --template
@fecommunity/reactpress-cli / server Deprecated, legacy compatibility only

Templates include hello-world (minimal) and twentytwentyfive (full blog layout).


Upgrading from 2.x?

If you still use @fecommunity/reactpress-cli or multiple packages:

  1. Back up your database
  2. npm i -g @fecommunity/reactpress@3
  3. reactpress doctor to verify the environment
  4. reactpress dev and confirm site, admin, and /api/health
2.x 3.0
npm i -g @fecommunity/reactpress-cli npm i -g @fecommunity/reactpress@3
reactpress-cli init reactpress init
Multiple packages One package for the full lifecycle

Full guide: 2.x → 3.0 migration.


Deploying to production

After local verification, the same CLI handles build and run:

reactpress build
reactpress start
Enter fullscreen mode Exit fullscreen mode

Self-host with PM2 or the repo’s docker-compose.prod.yml. Vercel deploy is also supported for the frontend (see official docs).

Contributors can still use pnpm install + pnpm dev in the monorepo—the same engine as global reactpress dev.


Closing thoughts

ReactPress 3.0 isn’t about reinventing the wheel. It compresses “I want a publishing site I actually control” from an afternoon of setup into one install and two commands.

  • Solo bloggers: write more, configure less
  • Small teams: one content backend, frontends when you need them
  • Frontend devs: a familiar React stack with optional Headless

If you want an open-source, self-hostable CMS with a full admin, give 3.0 a try:

npm i -g @fecommunity/reactpress@3
mkdir my-blog && cd my-blog && reactpress init && reactpress dev
Enter fullscreen mode Exit fullscreen mode

Star, open issues, or send PRs: https://github.com/fecommunity/reactpress

Top comments (0)