You may have heard of GitHub Issues, a built-in tracking tool that is available with every GitHub repository, but have you considered how helpful GitHub Issues may be when working on personal projects? Before starting a new project, you likely have at least a vague idea of what you want it to look like and what features you want to implement. It’s also likely that you do not have a particularly detailed step-by-step plan. This can sometimes result in frustration - you may have to start over a few times when implementing a new feature, or rearrange your project structure several times, just because a clear plan was not in place from the beginning. Sounds familiar? GitHub Issues can help solve these problems.

GitHub Issues is a tracking tool that is built-in with all GitHub repositories. Do not assume that the word “issue” here has a negative connotation, issues can be a good thing and GitHub Issues can be used to track and document every feature you want to implement in your project. Information included in each Issue can be as detailed or as high-level as you prefer. For example, one of your Issues can be “A user should be able to toggle between a list and a detailed view.” That may sounds simple enough, but GitHub Issues allows you to add as much or as little information as you’d like, so you may choose to specify exactly how you’d like the toggle button to look, what color the selected text should be, and any other details you’d like to include.

GitHub Issues is a great way to keep track of what features have been implements and what is still outstanding. For example, you can create a new branch for every Issue on your list, work on that feature, merge it into the main branch, and then close out the Issue. If you put down your project for a bit and then get back to it later, you’ll be able to quickly get up to speed on what features have been implemented and what else is still outstanding.

Lastly, GitHub Issues is a great way to tell the story of your project. You can plan out your Issues such that each one corresponds to a feature you want to implement and each new one builds on the previous Issues. The very first Issue you open in your project can be something very basic, such as “The name of the website should appear at the top of the page.” While the last Issue can signify the end of the project, for example, “The website should look professional and welcoming.” All the Issues in between these two will tell the story of how your project grew and progressed to the “professional and welcoming” final look.

GitHub Issues is an excellent way to keep track of your plans and can help “tell the story” of your project. GitHub Issues offers a lot of great features, such as the ability to create a new branch for every Issue, automatically close out Issues when the branch is merged, assign and re-assign Issues, search and filter Issues, etc. GitHub has an excellent guide that will help you get familiar with all the features and I hope you consider using GitHub Issues for your next project.