Contributing to Simple Notes Desktop
May 23, 2026 ยท View on GitHub
Thank you for your interest in contributing to Simple Notes Desktop! ๐
Table of Contents
- Code of Conduct
- Getting Started
- Development Workflow
- Code Style
- Commit Messages
- Pull Requests
- Reporting Issues
Code of Conduct
Please be respectful and considerate in all interactions. We welcome contributors of all skill levels.
Getting Started
Prerequisites
- Node.js 20+
- pnpm 9+
- Rust (stable)
- Platform-specific dependencies (see BUILDING.md)
Setup
# Clone the repository
git clone https://github.com/inventory69/simple-notes-desktop.git
cd simple-notes-desktop
# Install dependencies
pnpm install
# Start development server
pnpm dev
For detailed build instructions, see BUILDING.md.
Development Workflow
- Fork the repository
- Create a branch for your feature or fix:
git checkout -b feature/amazing-feature # or git checkout -b fix/issue-123 - Make your changes
- Test your changes locally
- Commit with a meaningful message
- Push to your fork
- Open a Pull Request
Code Style
JavaScript
- ES6+ with ES-Modules (
"type": "module") - Formatting & linting are enforced by Biome โ run
pnpm lint:fix. The config (biome.json) requires: semicolons always, single quotes, trailing commas, 2-space indent, 120-column width, and always-parenthesized arrow params. Imports are auto-organized. - Use
const/let, nevervar
Rust
- Follow standard Rust conventions
- Run
cargo fmtbefore committing - Run
cargo clippyto catch common issues
CSS
- Use CSS custom properties (variables)
- Follow BEM-like naming for classes
- Mobile-first approach
Commit Messages
We follow Conventional Commits, kept consistent with the sibling Android app (simple-notes-sync):
<type>(<scope>): <description>
[optional body]
[optional footer]
Types
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style/formatting only (no behavior change)refactor: Code change that neither fixes a bug nor adds a featureperf: Performance improvementtest: Adding or updating testsbuild: Build system, bundling, packaging (Tauri/Vite/AUR)ci: CI/CD workflowschore: Maintenance (deps, tooling, version bumps)revert: Reverting a previous commitrelease: Release/version commits (e.g.release: v0.4.0) โ mirrors the Android app's usage
Common scopes
Use a scope when it sharpens the message. Scopes seen across both apps:
editor, sync, checklist, ui, linux, ci, i18n. Match the affected area; invent a new
scope only when the existing ones don't fit.
Examples
feat(editor): add markdown live preview
fix(sync): preserve Android-only note fields (color/labels) on save
fix(linux): present() window on Wayland to fix frozen titlebar
perf(sync): batch PROPFIND to avoid N+1 GETs
docs: update installation instructions
chore: bump version to 0.5.0
Pull Requests
Before Submitting
- Test your changes locally
- Run
pnpm testto ensure tests pass - Update documentation if needed
- Add tests for new features
PR Description
Please include:
- What the PR does
- Why the change is needed
- How to test it
- Screenshots (for UI changes)
Review Process
- A maintainer will review your PR
- Address any requested changes
- Once approved, it will be merged
Reporting Issues
Bug Reports
Please include:
- Operating system and version
- App version
- Steps to reproduce
- Expected vs actual behavior
- Screenshots or logs if applicable
Feature Requests
Please describe:
- The problem you're trying to solve
- Your proposed solution
- Alternative solutions you've considered
Questions?
Feel free to open an issue for questions or join discussions in existing issues.
Thank you for contributing! ๐