# How to Create Issues on GitHub for Tasks and Bug Reports

- Tool: GitHub
- Difficulty: Beginner
- Time required: 8 minutes
- Compatibility: Any modern web browser (Chrome, Safari, Edge, Firefox)
- Last updated: March 2026

## TL;DR

GitHub Issues are task tickets for your project. Click the Issues tab, then New issue, write a clear title and description, assign someone, add labels, and submit. You can link issues to Pull Requests so they close automatically when the work is done. No coding or terminal required.

## What Are GitHub Issues and Why Do They Matter

GitHub Issues are the built-in task management system for every repository. Think of each issue as a sticky note on a task board — it has a title, a description of what needs to happen, and it can be assigned to someone on your team. Issues are numbered automatically (#1, #2, #3) so everyone can reference them quickly. Labels let you categorize issues as bugs, features, questions, or anything else. The real power of Issues is their connection to Pull Requests: when a developer or AI tool like Cursor fixes a bug, they reference the issue number in their PR, and the issue closes automatically when the code is merged. This creates a complete audit trail from "someone reported a problem" to "the fix is live." Non-technical founders use Issues every day to communicate what needs to be built, report bugs, and track progress.

## Before you start

- A free GitHub account
- A repository where you have write access
- A modern web browser

## Step-by-step guide

### 1. Navigate to the Issues tab in your repository

Go to github.com and open your repository. Look at the horizontal tab bar near the top of the page — you will see Code, Issues, Pull requests, and other tabs. Click "Issues." If you see a number next to the Issues label, that tells you how many open issues exist. You will land on a page showing all open issues, or an empty state with a message encouraging you to create your first issue.

**Expected result:** You see the Issues list page with a green "New issue" button on the right side.

### 2. Click New issue and choose a template if available

Click the green "New issue" button. If your repository has issue templates (pre-filled forms for bugs, features, etc.), you will see a list of templates to choose from — click "Get started" next to the one that fits. If there are no templates, you go directly to a blank issue form. Templates save time because they prompt you to fill in specific information like steps to reproduce a bug or a description of the feature you want.

**Expected result:** You see the issue creation form with a title field and a large description text box.

### 3. Write a clear, action-oriented title

In the title field, write a short, specific description of what needs to happen. Start with an action verb. Good examples: "Add email signup form to homepage," "Fix broken link on pricing page," "Update logo in the navigation bar." Bad examples: "Homepage problem," "Something is wrong," "Update needed." The title appears in lists and notifications, so it should tell anyone at a glance what the issue is about without needing to read the full description.

**Expected result:** The title field shows a clear, action-oriented description of the task.

### 4. Write a detailed description with context

In the large text box, explain the task in enough detail that someone could complete it without asking follow-up questions. Include: what needs to happen, why it matters, where in the app or site it applies, and any reference links or screenshots. Use Markdown formatting for readability — dashes for bullet points, **double asterisks** for bold text, and drag-and-drop images directly into the box to attach screenshots. If you are reporting a bug, include what you expected to happen versus what actually happened.

**Expected result:** The description box contains a detailed explanation with context, formatted with bullet points or sections.

### 5. Assign the issue to a team member and add labels

Look at the right sidebar of the issue form. Click "Assignees" and select the person responsible for this task from the dropdown — you can search by username. Next, click "Labels" and choose one or more labels. Common labels include "bug" (red), "enhancement" (blue), "question" (purple), and "good first issue" (green). If you need a custom label, go to Issues tab, click "Labels" next to the search bar, and create a new one with a name and color. Labels help your team filter and prioritize issues.

**Expected result:** The sidebar shows an assigned team member and one or more colored labels.

### 6. Submit the issue and link it to a Pull Request later

Click the green "Submit new issue" button at the bottom of the form. Your issue is now live and the assigned person receives a notification. GitHub assigns it a number automatically (like #15). Later, when someone creates a Pull Request to address this issue, they can type "Closes #15" in the PR description. This creates a link between the issue and the PR, and the issue will close automatically when the PR is merged. You can also manually link them by clicking "Development" in the PR sidebar and selecting the issue.

**Expected result:** The issue appears in the Issues list with its number, title, labels, and assignee visible.

## Complete code example

File: `.github/ISSUE_TEMPLATE/feature-request.md`

```markdown
---
name: Feature Request
about: Suggest a new feature or improvement
title: "[Feature] "
labels: enhancement
assignees: ''
---

## What do you want to add?
Describe the feature in plain language.

## Why is this important?
Explain the business reason or user need.

## Where in the app?
Which page or section should this appear on?

## Design reference
Paste a screenshot, mockup, or link to a design file.

## Acceptance criteria
- [ ] Criteria 1
- [ ] Criteria 2
- [ ] Criteria 3

## Additional context
Anything else the developer or AI tool should know.
```

## Common mistakes

- **Writing vague issue titles like "fix this" or "bug"** — undefined Fix: Be specific and use action verbs: "Fix broken checkout button on mobile" tells the team exactly what needs attention.
- **Creating issues without assigning anyone** — undefined Fix: Always assign an issue to a specific person. Unassigned issues tend to be ignored because nobody feels responsible for them.
- **Forgetting to add labels** — undefined Fix: Add at least one label (bug, enhancement, urgent) so your team can filter and prioritize the Issues list.
- **Putting multiple unrelated tasks in a single issue** — undefined Fix: Create one issue per task. This makes it easier to assign, track, and close issues individually.
- **Describing a problem without explaining what the expected behavior should be** — undefined Fix: Always include what you expected to happen and what actually happened. This gives the developer clear criteria for when the fix is complete.

## Best practices

- Start every issue title with an action verb: Add, Fix, Update, Remove, Create
- Include screenshots or screen recordings in the description by dragging images into the text box
- Assign every issue to a specific team member so someone is responsible
- Use labels consistently to categorize and prioritize work
- Create one issue per task — do not combine multiple requests into a single issue
- Reference related issues using # followed by the issue number (e.g., "related to #8")
- Set up issue templates so every new issue follows a consistent format
- Close issues when they are done — or use "Closes #X" in Pull Requests to auto-close them

## Frequently asked questions

### Can I create an issue without assigning it to someone?

Yes, but it is not recommended. Unassigned issues tend to be overlooked. If you do not know who should handle it, assign it to yourself and reassign later.

### What labels should I use for my project?

Start with these: bug (for broken things), enhancement (for new features), question (for things to discuss), urgent (for time-sensitive work), and documentation (for text or guide updates). You can create custom labels in the Issues tab by clicking Labels.

### Can AI tools like Lovable or Cursor create issues automatically?

Lovable does not create issues automatically, but Cursor can interact with GitHub via MCP server integration. You can also prompt Lovable to explain what it changed, and create an issue manually based on that.

### How do I find a specific issue in a repository with many issues?

Use the search bar and filters at the top of the Issues page. You can filter by label, assignee, milestone, or keyword. For example, type "label:bug" to see only bug reports.

### What is the difference between closing and deleting an issue?

Closing marks an issue as done — it stays in the repository history and can be reopened. Deleting removes it permanently. Always close issues instead of deleting them so you keep a record of past work.

### Can RapidDev help me set up issue templates and workflows?

Yes. RapidDev helps non-technical founders create issue templates, define label systems, and configure automated workflows so your GitHub project runs smoothly from day one.

### Is there a limit to how many issues I can create?

No. GitHub allows unlimited issues on both free and paid plans. However, keeping issues well-organized with labels and milestones is important as the number grows.

---

Source: https://www.rapidevelopers.com/github-for-non-tech/how-to-create-issues-on-github
© RapidDev — https://www.rapidevelopers.com/github-for-non-tech/how-to-create-issues-on-github
