Skip to content

alexwkleung/Iris

Repository files navigation

ˈaɪərɪs | eye-riss

A comfortable note-taking app powered by Markdown that introduces a elegant note-taking experience.
Always local-first, open-source, and free forever.

Info

The app is currently in early development and may not be 100% stable for daily use. The source code could go through a handful of iterations and subsequent releases may not be backward compatible.

Only macOS installers will be supplied in the early development phase and official release (v1.0.0). Other platforms are not supported but is considered in the future roadmap.

Contact

Join the Discord to chat with others in the community.

For professional mediums, you can contact via email (expect 24-48 hour reply time): irisnotesapp@gmail.com

GitHub Discussions is also an alternative to the above contact methods.

Installation

You can install the latest dev builds from releases.

If you want to build the app directly from source, follow the instructions in Development.

Development

The recommended editor for development is VS Code

Install Node.js

Install Rust

If you are cross-compiling the native modules for other platforms, you'll need to install the corresponding target if it isn't already installed:

# check target list
rustc --print target-list

# install target
rustup target install <target>

# Apple Silicon:
rustup target install x86_64-apple-darwin

# Intel Architecture:
rustup target install aarch64-apple-darwin

The recommended build tool for Iris is GNU Make. All build steps or commands will be reflected in the makefile. At the moment, only a small set of commands have a npm run script counterpart.

# for example: install Xcode Command Line Tools on macOS (includes GNU Make)
xcode-select --install 

Clone the repository

git clone <SSH/HTTPS URL>

Change directory

cd <...>/Iris

Install npm dependencies. Only do this in the root of the project. Do not npm install inside of the native modules.

npm install 

It recommended to add these to your VS Code settings.json:

"editor.codeActionsOnSave": {
    "source.fixAll.eslint": "always",
    "editor.formatOnSave": "always",
},
"prettier.enable": true,

Build native modules

# change directory to native module
cd fs-mod

# if you are planning to build a universal binary, you must have the native module for both x64 and arm64

# execute one of the build commands below:

# build native module for your platform (automatic)
npm run build
# build native module for macOS x64
npm run build-x64
# build native module for macOS arm64
npm run build-arm64

# go back to previous directory (assuming Iris root)
cd -

Run development server. The dev tools is undocked by default.

# via make 
make dev

# via npm
npm run dev

Build the installer

# via make (x64)
make build-mac-x64

# via make (arm64)
make build-mac-arm64

# via make (universal)
make build-mac-universal

# via npm (x64)
npm run build:mac-x64

# via npm (universal)
npm run build:mac-universal

# via npm (arm64)
npm run build:mac-arm64

Contributing

Here are a list of ways you can contribute to Iris:

  1. Submit a pull request
  2. Create or answer issues
  3. Create or answer discussion posts
  4. Show your interest by sharing Iris to others :)

License

MIT License.