we do this by copying the build directory instead of building it over and over again for each test. This also makes the tests super fast.
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:
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:
- Electron
- tRPC: for cross-communication between the web & desktop parts
- zod: for runtime typechecking
- yargs: for CLI argument parsing
