A real editor for writers. A Next.js site you control. One install — not WordPress, and not five tools glued together.
Live demo · Theme demo · Docs · 中文
- Independent developers who want a personal blog, notes, or docs site they own — not a SaaS tenant.
- Small teams where someone writes in an admin UI and someone else owns the public site.
- WordPress leavers who want the same “open admin, hit publish” habit, without a PHP theme stack.
- Static-site users (Hugo, Hexo, Astro, Next.js Markdown) who are tired of asking non-developers to open a Git repo.
If you are assembling Strapi or Payload plus an admin plus a frontend plus deploy glue, this is the product-shaped alternative.
Publishing is still a mess for React people:
| You want… | What you usually get |
|---|---|
| Editors who are not engineers | A Git-based static site |
| A site that looks like your app | WordPress or Ghost, with someone else’s frontend |
| To ship this week | A headless CMS that still needs a site, admin, and ops |
| To write on a plane | A browser tab and a running server |
ReactPress is the middle path: writers get an editor, you get a React site, nobody stitches the stack.
| ReactPress | WordPress | Ghost | Strapi / Payload | Hugo / Astro | |
|---|---|---|---|---|---|
| Who publishes | Writers in Admin | Writers in Admin | Writers in Admin | You still build the site | Developers (Git) |
| Who owns the public site | You (Next.js) | PHP themes | Ghost themes | You, separately | You, at build time |
| Time to a working site | One CLI command | Install + theme + plugins | Install + theme | CMS + frontend + glue | Fast — until someone needs a CMS |
| Offline writing | Desktop app | No | No | No | Local files |
- WordPress — unbeatable editing culture; you inherit PHP.
- Ghost — excellent independent publishing; membership-first, not a React app you own.
- Strapi / Payload — excellent engines; you still assemble the product.
- Hugo / Hexo / Astro — excellent pages; publishing still happens in Git.
npm i -g @fecommunity/reactpress
mkdir my-site && cd my-site
reactpress initThen open http://localhost:3001 (site) and http://localhost:3001/admin/ (admin / admin).
Node 20+. No Docker, no extra database for the default path. If something fails: reactpress doctor.
| Docs | docs.gaoredu.com |
| Swap the public theme | themes · starter |
| Extend without forking | plugins |
| Desktop writing | desktop |
| Host it | Deployment |
Contributing · Changelog · MIT License
