SurfSense/surfsense_desktop
DESKTOP-RTLN3BA\$punk b440610e04 feat: implement analytics tracking for desktop app events
- Added event tracking for desktop app activation and quitting.
- Introduced analytics bridge in preload script to handle user identification and event capturing.
- Updated IPC channels to support analytics-related actions.
- Enhanced analytics functionality in the main process to track user interactions and application updates.
- Integrated analytics tracking for folder watching and deep link handling.
- Improved connector setup tracking in the web application.

This commit enhances the overall analytics capabilities of the application, ensuring better user behavior insights and event tracking across both desktop and web environments.
2026-04-18 14:35:14 -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: implement analytics tracking for desktop app events 2026-04-18 14:35:14 -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 to 0.0.16 2026-04-16 01:18:03 -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/