Files
notesnook/apps/desktop
01zulfi 8f8ac25d20 desktop: add support for opening file links (#9784)
* desktop: add support for opening file links
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* web: unescape paths with spaces

* web: wrap message in confirm dialog
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* desktop: show message box if path doesn't exist when opening file link
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* desktop: disable opening file links on flatpak
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* desktop: wrap long file paths in electron dialog
* on linux, long messages in dialog aren't wrapped, so we need to wrap manually

Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>

* desktop: fix persistent "path not found" error

* intl: update strings

---------

Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>
Co-authored-by: Abdullah Atta <abdullahatta@streetwriters.co>
2026-05-19 13:27:46 +05:00
..
2025-10-04 09:20:10 +05:00
2026-05-18 10:31:21 +05:00
2026-05-18 10:31:21 +05:00
2024-11-15 12:31:56 +05:00

Notesnook desktop screenshot

Notesnook Desktop

The desktop app is built using Electron & Typescript.

Downloads | Developer guide | How to build?

Getting started

Build instructions

Before you start, it is recommended that you read the contributing guidelines.

Setting up the development environment

Requirements:

  1. Node.js
  2. git
  3. NPM (not yarn or pnpm)

Before you can do anything, you'll need to install Node.js v16 or later on your system.

  1. clone the monorepo:
git clone https://github.com/streetwriters/notesnook.git

# change directory
cd notesnook
  1. Install dependencies:
# this might take a while to complete
npm install
  1. Run the webapp for desktop environment:
cd apps/web
npm run start:desktop
  1. In a separate terminal session, run the desktop app from the root of the project:
npm run start:desktop

Release mode

To run the app in release mode:

npm run staging -- --rebuild

This will compile and run the app in production mode but it won't generate any packages. To create the final packages, you'll have to run the following commands:

npm run release -- --rebuild

# For macOS
npx electron-builder --config=electron-builder.config.js --mac dmg --arm64 --x64 --publish never

# For Linux (AppImage)
npx electron-builder --config=electron-builder.config.js --linux AppImage:x64 AppImage:arm64 --publish never

# For Windows
npx electron-builder --config=electron-builder.config.js --win --publish never

Feel free to play around with the electron-builder command to get the packages you need. npx electron-builder --help is a great resource to learn different commands & platforms supported by electron-builder.

Developer guide

The tech stack

We try to keep the stack as lean as possible:

  1. Electron
  2. tRPC: for cross-communication between the web & desktop parts
  3. zod: for runtime typechecking
  4. yargs: for CLI argument parsing