Skip to main content

Self-Hosted CMS for React

Looking for a self-hosted CMS for React — not a SaaS Headless plan, not a PHP stack, and not five repos glued together?

ReactPress is an open-source, self-hosted publishing platform for React developers: Admin + NestJS API + Next.js themes + plugins + optional desktop client, all started from one CLI. Your content and media stay on your machine or server.

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

Default path: SQLite, no Docker, no cloud account.

What “self-hosted” means here

You controlHow ReactPress supports it
Where data livesLocal .reactpress/reactpress.db (SQLite) or your MySQL
Where code runsYour laptop, VPS, Docker host, or private cloud
Who can writeYour Admin users / desktop clients — not a vendor dashboard
How the site rendersYour Next.js theme process; swap or fork anytime
LicenseMIT — fork, commercial use, no seat tax

Live example of a production ReactPress site: blog.gaoredu.com.

Why React teams self-host ReactPress

1. One product, not a mash-up

Typical DIY stack: Strapi/Payload + custom Admin + Next.js blog + upload service + SEO glue.

ReactPress ships the publishing surface already wired:

  • Write in Admin (or Desktop)
  • Serve visitors with a Next.js theme (SSR SEO)
  • Expose Headless REST when you need a custom app

See What is ReactPress?.

2. React-native delivery

Visitor themes are Next.js, Admin is React, API is NestJS, extensions are JavaScript Hooks — no PHP theme layer. Compare options in ReactPress vs WordPress.

3. Sensible defaults, escape hatches when you scale

StageDatabase / runtime
Local / small sitesEmbedded SQLite (default)
Higher traffic / shared DBExternal MySQL
Containerized opsDocker deployment
Offline authorsElectron desktop + sync to remote API

Config overview: Configuration.

Architecture for operators

  • Admin at :3001/admin/ — content, media, themes, plugins, settings
  • Theme at :3001 — public SSR site
  • API at :3002 — persistence, auth, Hooks, Headless

Boundaries: Core concepts · Architecture

Security & ownership checklist

Before production:

  1. Change default admin / admin credentials
  2. Set public URLs and secrets in .reactpress/config.json / generated .env
  3. Restrict Admin to trusted networks or reverse-proxy auth as needed
  4. Back up reactpress.db (or MySQL) and uploads/
  5. Enable the SEO plugin and verify sitemap / canonical on the theme

Guides: Production deployment · Site settings & SEO

Plugins are trusted code

Enabled plugins load into the API process (WordPress-like model). Only install plugins you trust; manage them via Admin with proper roles.

Self-hosted vs SaaS Headless

ReactPress (self-hosted)Typical SaaS Headless
Data locationYour disk / your DBVendor cloud
Admin UIIncludedIncluded (vendor UX)
Visitor siteIncluded Next.js themeYou build or buy
PricingMIT + your infraSeats / API / bandwidth
Offline writingDesktop clientRare

Choose SaaS when you want zero ops. Choose ReactPress when you want React stack + full publishing + data residency.

Go live paths

PathBest for
60-second Next.js blogFirst local proof
First site tutorialGuided Admin walkthrough
Production deployVPS / Node process
DockerContainer hosts
Headless APICustom React frontends on your API

FAQ

Is self-hosting free?
The software is MIT. You pay only for your own compute, storage, and domain.

Do I need Kubernetes?
No. Many sites run as a single Node host with SQLite or MySQL.

Can I move later?
Yes — export via API, migrate DB files, or point a new theme at the same API.

Is 4.0 ready for self-hosted production?
Core init / doctor paths are stable in active beta; stage first and read 3.x → 4.0 migration. More: FAQ.

From the blog