RS
Projects

GitBor

Final stage

Git Client

Screenshot coming soon

Cross-platform desktop Git client. Visual commit graph, interactive rebase, diff viewer with syntax highlighting, blame, conflict resolution.

Key features

  • 5 layers of data protection (reflog, auto-stash, WAL, RecoveryManager)
  • Atomic Git operations via WAL journal
  • Canvas-based commit graph with virtualization
  • Full git CLI integration via child_process

Architecture

5 layers of user data protection: automatic reflog before destructive operations, auto-stash for unsaved changes, WAL journal for atomic operations, RecoveryManager for crash recovery, and snapshot-based undo for UI actions. The goal is zero data loss under any failure.

The WAL (Write-Ahead Log) journal makes Git operations atomic: rebase, merge, cherry-pick are recorded in the journal BEFORE the repository is changed. On a crash or sudden reboot, RecoveryManager detects the unfinished operation on the next launch and offers a rollback or continue.

The commit graph is rendered through Canvas 2D with virtualization: only commits in the viewport are drawn, layout is computed incrementally. This allows working with repositories of tens of thousands of commits without scroll lag.

Integration with the git CLI through child_process: GitBor does not reimplement Git but calls the system git. This guarantees compatibility with any valid repository, including worktrees, submodules, sparse-checkout and non-standard configurations.

Stack

TypeScriptElectronReactViteCanvas 2D