Inspiration

As developers, we often find ourselves building a habit of creating poor commit message descriptions when building personal projects. As this habit carries over when doing internships, co-ops or jobs, we wanted to build a solution to the habit.

What it does

BetterCommits is a VSCode extension which gives real-time feedback to user’s commit messages based on a chosen commit message template convention. It highlights parts of the user’s commit message which lack detail or are “weak”. BetterCommits then creates a tooltip on the highlighted section which the user can hover over with their cursor to see the suggestions.

How we built it

We built BetterCommits using TypeScript, Python, and Cohere. We used TypeScript for the extension part (communicating with VS-code) and Python and Cohere’s SDK to handle the real-time feedback logic.

Challenges we ran into

Initially, we wanted to have our project be purely TypeScript based. This turned out to be a mistake as we ran into difficulties setting up the Cohere SDK for TypeScript. Compared to its counterpart written in Python, the TypeScript version was much more complex and difficult to work with despite having the same results. Because of this and the Cohere representatives suggesting we migrate, we had to move a large portion of our TypeScript codebase to Python. This migration took a long time because of how our logic was set up initially. Setting up the Python libraries was also a mini struggle as everyone’s machine was on different versions of Python which made it harder to work on it together due to library version mismatch.

Accomplishments that we're proud of

We’re proud to have built a product we find helpful in our day to day lives. Although our project doesn’t solve world hunger, cure cancer or something unimaginable, we’re still proud to have built something that helps people by just a little, even if it's just saving a couple minutes of their time.

What we learned

During the development of BetterCommits, we learned how to combine both TypeScript and Python code, utilizing the strengths of both languages. We also integrated the Cohere SDK and API in order to achieve our goal. Through this process, we learnt about the range of possibilities available through the use of language models to produce efficient solutions.

What's next for BetterCommits

Some ideas for the future we have for BetterCommits are: User signup/signin and customize their preferences PR templates the user can choose in their settings or make their own Storing good PR’s in a database Can be used as training data for cohere, a way for users to upload examples of good PR’s that follow their specific conventions and train cohere’s feedback to mimic said examples

Built With

Share this project:

Updates