WWebBuddyMarketplace
Get started

Requirements

The runtime, database, domain and optional provider accounts YourDesk needs, where it can be hosted, and a server sizing starting point.

4 min readUpdated Oct 17, 2026Applies to YourDesk 1.0.0

On this page

At a glance

You need Required for Notes
Node.js 22 and npm Building and running package.json pins "node": "22.x". The Docker image is built on node:22-alpine.
A host for a Node app Production Docker on a VPS, a plain VM, Railway, Render, Fly.io, or Vercel. Not PHP or cPanel shared hosting.
Postgres Production Any Postgres you can reach with a connection string. Without one, an embedded database is used.
A domain with HTTPS Production Session cookies are Secure and __Host- prefixed, so sign-in only sticks over HTTPS (or on localhost).
xAI API key Optional The Agent and AI drafting. Everything else works without it.
Stripe and/or PayPal account Optional Selling plans on the public pricing page.
Google OAuth client Optional "Continue with Google" on the sign-in page.
An email mailbox (IMAP and SMTP) Optional Sending letters, reminders and syncing a client inbox.

Where it can run

YourDesk is a server-rendered Node application. The build produces one of two outputs:

Target Build Notes
Docker, VPS, Railway, Render, Fly.io npm run build:node (or the Dockerfile) A plain Node server in .output/. Recommended for most installs.
Vercel npm run build Uses the Vercel preset. vercel.json pins the region to iad1; change it to sit next to your database.

Pages and actions are ordinary request and response, so serverless hosting such as Vercel works. Two things to know before you choose it:

  • The embedded database does not survive there. On Vercel it lives in /tmp, which is thrown away. Always set DATABASE_URL on Vercel.
  • Some limits live in memory. Sign-in attempts and Agent runs are rate limited per process, so on serverless or with several replicas each instance counts separately.

Database

  • Postgres. The bundled documentation asks for Postgres 14 or newer, and docker-compose.yml runs Postgres 16. No extensions are needed. Neon, Supabase, RDS, a Docker container and self-hosted Postgres all work; the app connects with the standard pg driver.
  • Migrations are a deploy step on Postgres. They run during npm run build and npm run build:node, when the Docker container starts, or when you run node scripts/migrate.mjs. See Run the migrations.
  • The embedded database (PGLite) is Postgres compiled to WebAssembly. With no DATABASE_URL, the app stores it on disk in ./data/pglite and applies the migrations itself at startup. It is meant for a local trial or a single-person evaluation, not for production.

Warning

Switching from the embedded database to Postgres later starts with an empty database. Version 1.0.0 has no tool to move data between them, and the JSON export cannot be imported back. Choose Postgres before you put real work in.

Domain and HTTPS

YourDesk does not terminate TLS itself. Put it behind something that does: Caddy, nginx with Let's Encrypt, Traefik, a load balancer, or your platform's built-in HTTPS. Installation has examples.

Set BETTER_AUTH_URL to the exact public origin (for example https://desk.example.com). Sign-in checks the browser's origin against it, and Stripe and PayPal checkout use it to send customers back.

Provider accounts

Every integration is optional and needs its own account. Each provider bills you directly under its own terms; none of them are included in the purchase.

Provider What it powers Pricing
xAI The Agent, lead research and letter drafting xAI models and pricing
Stripe Card checkout for paid plans Stripe pricing
PayPal PayPal checkout for paid plans PayPal fees
Google Cloud "Continue with Google" OAuth clients have no usage fee
Your email provider Sending mail and syncing a client inbox Your existing mailbox plan
Your host and database Running the app See your provider's pricing, for example Neon or Vercel

Server size

These figures are guidance, not a measured benchmark. YourDesk is a light server: most of the work is database queries and rendering pages.

Workload Suggested starting size
One studio, a handful of users 1 vCPU, 1 GB RAM (the bundled documentation calls 512 MB comfortable for the server alone)
Several studios on one deployment 2 vCPU, 2 GB RAM, with Postgres on a managed service or its own machine
Building on the same machine Allow extra memory while npm ci and the Vite build run, or build the Docker image elsewhere and pull it

Run the app close to its database: every page load makes several queries.

Browsers

The listing names current Chrome, Firefox, Safari, Edge and Opera. The layout is responsive, with a bottom tab bar on phones. Voice dictation in Discover and the proposal editor uses the browser's own speech recognition (set to English, Australia). Where the browser has none, it records a voice note you can play back while you type.

Local development

For a laptop install you only need Node.js 22 and npm. The database, keys and a domain can all come later. Quick start walks through it.