diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 94a5b7284e..fbdcf367ad 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,13 +1,47 @@
-## Description:
+# What does this implement/fix?
+Quick description
-**Related issue (if applicable):** fixes
+## Types of changes
+
+- [ ] Bugfix (non-breaking change which fixes an issue)
+- [ ] New feature (non-breaking change which adds functionality)
+- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
+- [ ] Configuration change (this will require users to update their yaml configuraiton files to keep working)
+
+**Related issue or feature (if applicable):** fixes
**Pull request in [esphome-docs](https://github.com/esphome/esphome-docs) with documentation (if applicable):** esphome/esphome-docs#
+
+# Test Environment
+
+- [ ] ESP32
+- [ ] ESP8266
+- [ ] Windows
+- [ ] Mac OS
+- [ ] Linux
+
+## Example entry for `config.yaml`:
+
+
+```yaml
+# Example config.yaml
+
+```
+
+# Explain your changes
+
+Describe your changes here to communicate to the maintainers **why we should accept this pull request**.
+Very important to fill if no issue linked
## Checklist:
- [ ] The code change is tested and works locally.
- [ ] Tests have been added to verify that the new code works (under `tests/` folder).
-
+
If user exposed functionality or configuration variables are added/changed:
- [ ] Documentation added/updated in [esphome-docs](https://github.com/esphome/esphome-docs).