Adam Shelley

Web Developer

Back

Tauri
TypeScript
React
Rust

Git-Pulse

A minimal GitHub desktop client for managing issues, writing comments, and generating AI-powered changelogs — built to scratch my own itch and learn Tauri along the way.


Overview

Git-Pulse was born out of a frustration with GitHub's interface for day-to-day issue tracking. I wanted something minimal that let me list the issues I'm working on, make comments, and plug in my own AI API key to summarise or export completed issues as changelogs. It also became a vehicle for learning desktop app development with Tauri.


Features

  • Issue management - List, view, and track GitHub issues in a clean minimal interface.
  • Comment support - Create, edit, and delete comments directly from the app.
  • AI changelog generation - Bring your own Anthropic API key and have Claude summarise an issue into a formatted changelog entry.
  • Markdown export - Download the AI-generated summary as a .md file.
  • Changelog automation - Writing changelogs is easy to forget (Keep A Changelog); this automates the tedious part.

How It Works

The frontend is built in React/TypeScript and communicates with a Rust backend via Tauri's IPC bridge. GitHub's REST API handles issue and comment data, while the Anthropic API is called client-side using a user-supplied API key.

Issue content is passed to Claude with a structured prompt, and the returned summary is formatted as a changelog entry ready to download.


Tech Stack

  • Tauri v2 - Desktop app shell and Rust/JS IPC bridge
  • Rust - Backend logic and native OS integration
  • React - Frontend UI
  • TypeScript - Frontend logic and API communication

What I Learned

This was my first time using both Tauri and Rust. Tauri's v2 release dropped right as I started, which meant the ecosystem was still catching up — documentation gaps and breaking changes were part of the deal.

Rust's type system and ownership model are unforgiving in a way that JavaScript never is. Knowing TypeScript helped me reason about types conceptually, but the borrow checker is its own thing entirely. Using AI to bridge the gap — understanding syntax and idioms — worked well as long as I stayed critical about what it produced rather than copy-pasting blindly.

The biggest takeaway was how useful constraints are. A small, focused app with a clear purpose is a much better learning project than something sprawling. Git-Pulse does one thing well, and that made it easier to finish.


Helpful Links