Local-first doesn't mean stuck on your laptop. Because Crossposter is just a Node/Next.js process with file-based state, you can self-host it anywhere and reach it from a browser.

The one thing that actually matters for scheduling: the scheduler only fires while the server process is running. So the deployment question is really "how do I keep the process up?"

Three paths I use and document:

Local Mac: a macOS auto-start service keeps http://localhost:2004 alive after login.

Small VPS: run the Node service under your usual process manager, with a persistent disk so poster.config.local.json, uploads, and sessions survive restarts.