Skip to content

Files

Latest commit

95fc9bd · Apr 22, 2025

History

History

desktop

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Feb 28, 2025
Feb 24, 2025
Sep 25, 2024
Feb 28, 2025
Apr 10, 2025
Feb 28, 2025
Feb 28, 2025
Jul 19, 2024
Jun 10, 2023
Apr 10, 2025
Sep 4, 2023
Apr 22, 2025
Apr 22, 2025
Nov 15, 2024
Feb 28, 2025

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.

Once you have completed the setup, the first step is to clone the monorepo:

git clone https://github.com/streetwriters/notesnook.git

# change directory
cd notesnook

Once you are inside the ./notesnook directory, run the preparation step:

# this might take a while to complete
npm install

Now you can finally start the desktop app for development:

npm run start:desktop

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