Contributing
NoteGen is an open-source and free community project. We continue building it with passion and welcome contributions in any form.
Hi! Thank you so much for contributing to NoteGen! Before you begin, please take a moment to read the following:
How to Contribute
Whether you are contributing code or reporting issues, please start by creating an Issue.
Issues
Always create new issues via Issues. Please describe the problem in as much detail as possible, including reproduction steps, expected behavior, and actual behavior.
Discussions
If you’d like to start a discussion, you can use Discussions, or join the community group.
Pull Request
- Before fixing a bug, please check Issues to see if the same issue already exists.
- If you plan to develop a new feature, please first submit an Issue to discuss with maintainers whether the feature is needed. This helps save time for both maintainers and contributors.
Tech Stack
NoteGen mainly uses the following technologies:
-
See frontend dependencies in package.json.
-
See Rust dependencies in src-tauri/Cargo.toml.
If your contribution needs to update or add dependencies, please mention the changes to package.json
or src-tauri/Cargo.toml
in the issue.
Development Environment
Please read the Tauri 2 prerequisites and configure your environment accordingly.
Once your environment is ready, fork the repository to your GitHub account, then clone it locally:
# 1. Fork to your GitHub account
# 2. Clone locally
git clone https://github.com/your-username/note-gen.git
Then enter the project directory and install dependencies:
# 3. Enter project directory & install dependencies
cd note-gen
pnpm install
# 4. Start local development; if you see a blank screen, try right-clicking to reload.
pnpm tauri dev
Project Structure
src
: Frontend application directory.apps
: Frontend application modules.core
: Core features of the main app.article
: Writing.image
: Image hosting management.record
: Recording.search
: Search.setting
: Settings.
screenshot
: Screenshot window.
components
: Component library, including shadcn and common components.lib
: Utility libraries (e.g., AI, GitHub requests).db
: SQLite database.store
: State management (zustand).
src-tauri
: Rust code.messages
: i18n configuration.
Pull Request Guidelines
NoteGen does not use the master or main branches. All development happens on the dev
branch. Releasing is triggered by merging into the release
branch, which runs GitHub Actions to build and publish versions.
After forking the repository, create a new branch from dev
and name it according to your contribution, such as fix/123
or feat/121
.
You can push multiple commits until all changes are complete. When submitting a Pull Request, we will use Squash and Merge
to squash them into a single commit.
Please use fix(#xxx): ***
or feat(#xxx): ***
in the PR title, where #xxx
is the issue number, e.g., NoteGen Roadmap #46.
Before submitting the PR, ensure pnpm tauri build
can build and run successfully on your local machine.