Development configuration
In development, configuration is loaded from.env files in each app directory. Copy the example files before your first run:
- Frontend:
http://localhost:3001 - Backend:
http://localhost:3000
VITE_SERVER_URL in apps/web/.env points at the backend URL, and CORS_ORIGIN in apps/server/.env allows the frontend origin.
Standalone binary configuration
When running the standalone binary, configuration is resolved from three sources in priority order:- CLI flags — highest priority, override everything
- Environment variables — middle priority
- Saved config file — used as persistent defaults
- Built-in defaults — fallback values
Config file
The config file stores defaults that were saved with--init. The file location is platform-dependent:
| Platform | Path |
|---|---|
| macOS / Linux | ~/.config/slides/config.json |
| Windows | %APPDATA%\slides\config.json |
| Field | Type | Description |
|---|---|---|
port | number | Port to listen on |
dataDir | string | Absolute path to slideshow JSON directory |
apiKey | string | Anthropic API key for AI features |
open | boolean | Whether to open the browser on start |
Saving defaults
The easiest way to write the config file is with the--init flag:
slides (with no flags) will use those defaults.
You can also edit the config file directly with any text editor. The file is plain JSON.
Updating saved defaults
Re-run--init with updated values to overwrite the file:
Flags not passed to
--init do not carry over from a previous config — the entire file is rewritten on each --init run. Include all values you want to persist.Port configuration
- Standalone binary
- Development
Pass
--port at the command line or save it as a default:Data directory
By default the server loads slideshow JSON files from./data/slideshows (relative to the binary location or the working directory). To use a different directory:
- Standalone binary
- Development
--data-dirflag /DATA_DIRenv var- Saved config
dataDir CWD/data/slideshows- Bundled location inside the binary
CORS configuration
CORS is configured via theCORS_ORIGIN environment variable (development) or is automatically set to allow all origins in standalone binary mode.
Development: set CORS_ORIGIN in apps/server/.env to match the frontend origin:
*) automatically because the frontend and API are served from the same port, so the same-origin policy already applies.