diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
new file mode 100644
index 0000000000..0d9415fcc2
--- /dev/null
+++ b/.github/pull_request_template.md
@@ -0,0 +1,19 @@
+I hereby agree to the terms of the [GreptimeDB CLA](https://gist.github.com/xtang/6378857777706e568c1949c7578592cc)
+
+## What's changed and what's your intention?
+
+_PLEASE DO NOT LEAVE THIS EMPTY !!!_
+
+Please explain IN DETAIL what the changes are in this PR and why they are needed:
+
+- Summarize your change (**mandatory**)
+- How does this PR work? Need a brief introduction for the changed logic (optional)
+- Describe clearly one logical change and avoid lazy messages (optional)
+- Describe any limitations of the current code (optional)
+
+## Checklist
+
+[] I have written the necessary rustdoc comments.
+[] I have added the necessary unit tests and integration tests.
+
+## Refer to a related PR or issue link (optional)
diff --git a/ISSUE_TEMPLATE/bug_report.yml b/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000..f3652a4623
--- /dev/null
+++ b/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,87 @@
+---
+name: Bug report
+description: Is something not working? Help us fix it!
+title: "[Bug]:
"
+labels: ["bug", "triage"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Take some time to fill out this bug report. Thank you!
+
+ - type: dropdown
+ id: type
+ attributes:
+ label: What type of bug is this?
+ multiple: true
+ options:
+ - Configuration
+ - Crash
+ - Data corruption
+ - Incorrect result
+ - Locking issue
+ - Performance issue
+ - Unexpected error
+ - Other
+ validations:
+ required: true
+
+ - type: dropdown
+ id: subsystem
+ attributes:
+ label: What subsystems are affected?
+ description: You can pick multiple subsystems.
+ multiple: true
+ options:
+ - Standalone mode
+ - Frontend
+ - Datanode
+ - Meta
+ - Other
+ validations:
+ required: true
+
+ - type: textarea
+ id: what-happened
+ attributes:
+ label: What happened?
+ description: |
+ Tell us what happened and also what you would have expected to
+ happen instead.
+ placeholder: "Describe the bug"
+ validations:
+ required: true
+
+ - type: input
+ id: os
+ attributes:
+ label: What operating system did you use?
+ description: |
+ Please provide OS, version, and architecture. For example:
+ Windows 10 x64, Ubuntu 21.04 x64, Mac OS X 10.5 ARM, Rasperry
+ Pi i386, etc.
+ placeholder: "Ubuntu 21.04 x64"
+ validations:
+ required: true
+
+ - type: textarea
+ id: logs
+ attributes:
+ label: Relevant log output and stack trace
+ description: |
+ Please copy and paste any relevant log output or a stack
+ trace. This will be automatically formatted into code, so no
+ need for backticks.
+ render: bash
+
+ - type: textarea
+ id: reproduce
+ attributes:
+ label: How can we reproduce the bug?
+ description: |
+ Please walk us through and provide steps and details on how
+ to reproduce the issue. If possible, provide scripts that we
+ can run to trigger the bug.
+ render: bash
+ validations:
+ required: true
diff --git a/ISSUE_TEMPLATE/config.yml b/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000..a2370e8e2a
--- /dev/null
+++ b/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,8 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Greptime Community Slack
+ url: https://greptime.com/slack
+ about: Get free help from the Greptime community
+ - name: Greptime Community Discussion
+ url: https://github.com/greptimeTeam/greptimedb/discussions
+ about: Get free help from the Greptime community
diff --git a/ISSUE_TEMPLATE/enhancement.yml b/ISSUE_TEMPLATE/enhancement.yml
new file mode 100644
index 0000000000..56bc6d23be
--- /dev/null
+++ b/ISSUE_TEMPLATE/enhancement.yml
@@ -0,0 +1,40 @@
+---
+name: Enhancement
+description: Suggest an enhancement to existing functionality
+title: "[Enhancement]: "
+labels: [ "enhancement" ]
+body:
+ - type: dropdown
+ id: type
+ attributes:
+ label: What type of enhancement is this?
+ multiple: true
+ options:
+ - API improvement
+ - Configuration
+ - Performance
+ - Refactor
+ - Tech debt reduction
+ - User experience
+ - Other
+ validations:
+ required: true
+
+ - type: textarea
+ id: what
+ attributes:
+ label: What does the enhancement do?
+ description: |
+ Give a high-level overview of how you
+ suggest improving an existing feature or functionality.
+ validations:
+ required: true
+
+ - type: textarea
+ id: implementation
+ attributes:
+ label: Implementation challenges
+ description: |
+ Share any ideas of how to implement the enhancement.
+ validations:
+ required: false
diff --git a/ISSUE_TEMPLATE/feature_request.yml b/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000000..a7c6a57c22
--- /dev/null
+++ b/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,43 @@
+---
+name: Feature request
+description: Suggest a new feature for GreptimeDB
+title: "[Feature]: "
+labels: [ "feature-request" ]
+body:
+ - type: markdown
+ id: info
+ attributes:
+ value: |
+ Only use this template to suggest a new feature that doesn't already exist in GreptimeDB.
+ For enhancements to existing features, use the "Enhancement" issue template. For bugs,
+ use the bug report template.
+
+ - type: textarea
+ id: what
+ attributes:
+ label: What problem does the new feature solve?
+ description: |
+ Describe the problem and why it is important to solve. Did you consider alternative
+ solutions, perhaps outside the database? Why is it better to add the feature to
+ GreptimeDB?
+ validations:
+ required: true
+
+ - type: textarea
+ id: how
+ attributes:
+ label: What does the feature do?
+ description: |
+ Give a high-level overview of what the feature does and how it would work.
+ validations:
+ required: true
+
+ - type: textarea
+ id: implementation
+ attributes:
+ label: Implementation challenges
+ description: |
+ If you have ideas of how to implement the feature, and any particularly
+ challenging issues to overcome, then provide them here.
+ validations:
+ required: false