Welcome to Nexgit. This guide is for people who want to contribute but are not sure where to start.
- You are new to open source.
- You are learning Rust, TypeScript, React, Electron, Git, or GitHub.
- You mostly want to help with docs, testing, design, or user experience.
- You are experienced and want to help mentor others.
Nexgit is a Git workflow tool with three user-facing surfaces:
- CLI: scriptable headless commands.
- TUI: terminal UI built with Ratatui.
- Desktop: Electron + React app.
All of these should share the same Rust core logic.
CLI commands ┐
TUI ├─> Rust core logic
Desktop UI ┘ ↑
app-server protocol
Choose one supported development environment entrypoint.
mise install
pnpm install
cargo check --workspacenix develop
pnpm install
cargo check --workspaceSee environments.md for more detail.
Run the CLI help:
cargo run -p nexgit-cli -- --helpRun the placeholder TUI:
cargo run -p nexgit-cli -- tuiRun a headless command:
cargo run -p nexgit-cli -- repo status --jsonRun the desktop typecheck:
pnpm --filter @nexgit/desktop typecheckRun the full project check:
pnpm checkGood files to improve:
README.mdCONTRIBUTING.mddocs/development.mddocs/glossary.md
Examples:
- Add a missing troubleshooting step.
- Explain an acronym.
- Add a screenshot once the UI has one.
- Fix stale command output.
Good starting points:
- Improve
apps/cli/src/tui/ui.rslayout text. - Improve command descriptions in
apps/cli/src/args.rs. - Add a small app-server method in
apps/cli/src/server/handler.rs.
Good starting points:
- Improve
apps/desktop/src/renderer/src/App.tsxlayout. - Improve styling in
apps/desktop/src/renderer/src/styles.css. - Add typed helper functions around
window.nexgit.
Look for issues labeled:
good first issuegood for beginnergood first design issuekind: docshelp wantedarea: cliarea: desktoparea: tui
If labels are not set up yet, ask a maintainer or propose a small task.
Open a pull request and include:
- What changed.
- Why you changed it.
- What commands you ran.
- Anything you want reviewers to focus on.
It is okay to say:
This is my first Rust PR. I would appreciate extra feedback on style and structure.
This project is a good way to learn:
- Rust workspace organization.
- CLI design with
clap. - Terminal UIs with Ratatui.
- Electron process architecture.
- React + TypeScript app structure.
- JSON protocol design.
- GitHub collaboration workflows.
- Code review etiquette.
Try these steps:
- Re-read the relevant doc.
- Search existing issues and PRs.
- Run the command again and copy the exact error.
- Ask for help with context.
Getting stuck is part of contributing. Please ask questions.