Skip to main content
V1 ships an unsigned desktop. There is no Apple signing or notarization in this path. Day-to-day notes stay local markdown files. Pointing at an HTTP API is optional replica hydrate.

Build

dist:unsigned is pnpm build then CSC_IDENTITY_AUTO_DISCOVERY=false electron-builder --publish never. Do not set CSC_LINK / APPLE_* here. Output lives in apps/desktop/release/:
Hosts without FUSE: --appimage-extract-and-run.

macOS Gatekeeper

Right-click Ela.app → Open → Open (once), or:
Developer ID + notarization is post-v1.

Where state lives

Durable user state is outside the app bundle. Desktop does not read VAULT_PATH (that is the Fastify API).

Pointing at an API

A hosted replica uses ELANOTES_API_URL=https://api.elanotes.com and ELANOTES_API_TOKEN. ELANOTES_API_URL is the API origin. /v1 is on each path. Optional: ELANOTES_API_TOKEN, ELANOTES_VAULT_ID, ELANOTES_DEVICE_ID. Leave replica unset for the day-to-day local vault. Dev loop: pnpm dev:desktop. First-run search is lexical unless optional ONNX vars are set.