Skip to main content

ReactPress desktop client

The ReactPress desktop app is an Electron shell around the same Admin SPA — ideal for offline writing, local SQLite trials, and syncing to a live API when you are ready.

Download and install

Prebuilt installers are published on GitHub Releases (built automatically by the Release Desktop workflow).

PlatformArtifactNotes
macOSReactPress-{version}.dmgOpen the DMG and drag ReactPress into Applications
WindowsReactPress Setup {version}.exeRun the NSIS installer
LinuxReactPress-{version}.AppImagechmod +x and run, or integrate with your desktop

If a release has no assets yet, build locally from the monorepo root: pnpm build:desktopdesktop/release/.

Requirements: No separate Node.js install (runtime is bundled). macOS 12+, Windows 10+, or a mainstream Linux desktop.

Local mode default credentials on first launch: admin / admin.

Operating modes

ModeWhen to useBehavior
Local (default)Offline writing, no DockerMain process spawns embedded SQLite API (default http://127.0.0.1:3002/api)
Remote APIConnect to staging or productionAdmin targets your live REST backend — same as web Admin

Switch to remote API

  1. Open Settings → Desktop client, or the workspace panel on the login screen
  2. Enter the remote API base URL (e.g. https://api.example.com/api)
  3. Sign in with your remote admin account

The remote API must allow network access from the desktop client (same CORS policy as web Admin).

Sync to remote

In local mode, push articles, pages, and selected settings to a remote site (remote admin credentials required).

  1. Save local changes
  2. Use Sync to remote in the Admin desktop workspace panel
  3. Confirm the target site and conflict handling

Sync is one-way (local → remote). Edit production content in remote Admin or via the API.

Develop and build from source

# monorepo root — dev (SQLite + Vite HMR + Electron)
pnpm dev:desktop

# Full installer (macOS DMG / Windows NSIS / Linux AppImage)
pnpm build:desktop

# Unpacked dir only (faster verification)
pnpm build:desktop:dir && pnpm open:desktop

See desktop/README.md in the repo.