SurfSense/surfsense_desktop
DESKTOP-RTLN3BA\$punk 5ce7d52aa6 chore: bumped version
2026-04-21 02:14:42 -07:00
..
assets assets(desktop): generate .icns and .ico from source PNG 2026-03-18 19:56:55 +02:00
scripts Use assets.surfsense.com as PostHog host 2026-04-07 20:20:56 +02:00
src feat: add auto-launch functionality for desktop app 2026-04-20 12:42:06 -07:00
.env chore: update desktop release workflow and configuration 2026-04-07 15:13:26 -07:00
.env.example chore: add .env.example for desktop 2026-04-11 10:46:39 +02:00
.gitignore chore: add .env to desktop gitignore 2026-04-11 10:45:01 +02:00
.npmrc feat: add native module support for desktop autocomplete 2026-04-02 13:18:20 +02:00
electron-builder.yml feat: add general assist feature and enhance shortcut management 2026-04-07 03:42:46 -07:00
package.json chore: bumped version 2026-04-21 02:14:42 -07:00
pnpm-lock.yaml Add posthog-node and node-machine-id dependencies for desktop analytics 2026-04-07 22:15:35 +02:00
pnpm-workspace.yaml chore: update pnpm workspace configuration to include root package 2026-03-18 13:20:37 -07:00
README.md docs(desktop): update README 2026-03-18 21:14:42 +02:00
tsconfig.json feat(desktop): add tsconfig for Electron TypeScript files 2026-03-17 16:18:44 +02:00

SurfSense Desktop

Electron wrapper around the SurfSense web app. Packages the Next.js standalone build into a native desktop application with OAuth support, deep linking, and system browser integration.

Prerequisites

  • Node.js 18+
  • pnpm 10+
  • The surfsense_web project dependencies installed (pnpm install in surfsense_web/)

Development

pnpm install
pnpm dev

This starts the Next.js dev server and Electron concurrently. Hot reload works — edit the web app and changes appear immediately.

Configuration

Two .env files control the build:

surfsense_web/.env — Next.js environment variables baked into the frontend at build time:

surfsense_desktop/.env — Electron-specific configuration:

Set these before building.

Build & Package

Step 1 — Build the Next.js standalone output:

cd ../surfsense_web
pnpm build

Step 2 — Compile Electron and prepare the standalone output:

cd ../surfsense_desktop
pnpm build

Step 3 — Package into a distributable:

pnpm dist:mac      # macOS (.dmg + .zip)
pnpm dist:win      # Windows (.exe)
pnpm dist:linux    # Linux (.deb + .AppImage)

Step 4 — Find the output:

ls release/