GitHub Topic
Issues, Projects, and Discussions
Learn how GitHub organizes requests, work tracking, and community discussion so collaboration does not collapse into pull requests alone.
- Readers who know basic Git and now need GitHub collaboration fluency
- Developers using pull requests, issues, and Actions in real teams
- A basic sense of branches, commits, pushes, and remotes
- Willingness to connect platform features back to Git behavior
- Memorizing GitHub UI steps without understanding the Git boundary underneath
- Assuming platform policy replaces local history judgment
Why PRs should not carry every conversation
Teams new to GitHub often let pull requests absorb nearly all communication.
That works badly because many conversations are not really "about this diff," such as:
- feature requests
- bug tracking
- technical decisions
- iteration planning
- community questions
GitHub's issues, projects, and discussions exist to separate those collaboration modes.
Issues as work-entry points
Issues are not only for bugs. They can represent:
- defects
- feature requests
- technical debt
- tasks
- decisions that still need discussion
Thinking of an issue as a trackable work item is more useful than treating it as a simple todo entry.
What Projects adds
Projects helps teams turn many work items into an operational view:
- what is planned
- what is in progress
- what is waiting for review
- what is already done
So issues are individual units, while Projects gives you planning structure.
Why Discussions deserves its own place
Not every question should become an issue.
These often fit Discussions better:
- community questions
- exploratory ideas
- feedback threads
- user support exchanges
If everything becomes an issue, the issue queue becomes noisy and less trustworthy.
These tools are strongest when they play distinct roles instead of replacing one another. That is what makes GitHub feel like a collaboration platform rather than only a code host.
A steadier collaboration model
One useful way to think about the flow is:
- ideas, bugs, and requests start as issues
- projects group important work into a visible planning rhythm
- discussions handle questions and exploratory conversation
- pull requests implement and close the loop
That keeps context cleaner than forcing every conversation into code review.
Common anti-patterns
Using PRs instead of issues
If a change has no prior context outside the PR, reviewers must reverse-engineer the problem from the diff itself.
Treating every conversation as an issue
That makes the issue list noisy and less actionable.
Creating projects but not maintaining them
A stale project board quickly becomes a surface nobody trusts.
Minimum team rules worth adding
You can start small:
- bugs and requests begin as issues
- PRs should link to the relevant issue when possible
- iteration work belongs in Projects
- open-ended questions go to Discussions first
Good follow-up reads
- feature-branch collaboration
- pull requests and reviews
- small-batch review
- merge queue workflow