Skip to content

Add Electron desktop app with signed release pipeline - #26

Merged
wassgha merged 9 commits into
mainfrom
cursor/electron-app-1459
Jul 29, 2026
Merged

wassgha merged 9 commits into
mainfrom
cursor/electron-app-1459

Conversation

@wassgha

@wassgha wassgha commented Jul 28, 2026 •

Copy link
Copy Markdown
Owner

Summary

Wraps Rescript鈥檚 existing Next.js editor in an Electron shell so we can ship desktop installers (macOS / Windows / Linux) while keeping the GitHub Pages web app.

Mirrors the packaging setup from opendex:

  • Electron shell (electron/) loads the Next static export via an app:// protocol with COOP/COEP headers (SharedArrayBuffer for ffmpeg.wasm / ONNX)
  • electron-builder config for signed + notarized macOS DMG/ZIP, Windows NSIS, Linux AppImage/deb
  • Auto-updater from GitHub Releases (electron/updater.ts)
  • Release workflow (.github/workflows/release.yml) + version cut scripts (cut:patch / minor / major)
  • CI typecheck for web + electron
  • README badges + download buttons; RELEASING.md documents secrets and signing
  • Google Analytics loads in both web and Electron builds (only the COI service worker is skipped on desktop)

Dev: npm run electron:dev 路 Package: npm run dist 路 Web/Pages deploy unchanged.

Test plan

  • npm run electron:dev opens the editor against the Next dev server
  • npm run dist produces installers under dist/ (unsigned locally)
  • Packaged app loads the UI and can open a media file / run Whisper
  • Web build + GitHub Pages path still works (STATIC_EXPORT=1)
  • CI typecheck passes (@/assets/logo.png module types + next typegen)
  • Desktop build still includes Google Analytics
  • After secrets are set, push a v0.1.0 tag and confirm the release workflow signs/notarizes macOS and publishes drafts for all platforms
Open in Web聽Open in Cursor聽

cursoragent and others added 6 commits July 28, 2026 15:12
Wrap the existing Next.js static export in Electron so Rescript can ship
macOS/Windows/Linux installers alongside the GitHub Pages web app. Ports
OpenDex's electron-builder signing/notarization, auto-updater, version cut
scripts, CI/release workflows, and README download badges.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
next-env.d.ts is gitignored, so bare `tsc --noEmit` in CI could not resolve
`@/assets/logo.png`. Add committed image module declarations and run
`next typegen` before web typecheck in CI/release.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Only the COI service worker stays Electron-specific; analytics loads the
same way as on the web.

Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
Co-authored-by: Wassim Gharbi <wassgha@gmail.com>
@wassgha
wassgha marked this pull request as ready for review July 29, 2026 20:29
@wassgha
wassgha merged commit 7f3ed29 into main Jul 29, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants