diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 66ade8e467fe550b74a91ea91a589d2d4534d4dc..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-name: Bug report
-about: You've found a bug with Renovate
-labels: 'type:bug, status:requirements, priority-5-triage'
----
-
-<!--
-      PLEASE DO NOT REPORT ANY SECURITY CONCERNS THIS WAY
-      Email renovate-disclosure@whitesourcesoftware.com instead.
--->
-
-**How are you running Renovate?**
-
-- [ ] WhiteSource Renovate hosted app on github.com
-- [ ] Self hosted
-
-If using the hosted app, please skip to the next section.
-Otherwise, if self-hosted, please complete the following:
-
-Please select which platform you are using:
-
-- [ ] Azure DevOps (dev.azure.com)
-- [ ] Azure DevOps Server
-- [ ] Bitbucket Cloud (bitbucket.org)
-- [ ] Bitbucket Server
-- [ ] Gitea
-- [ ] github.com
-- [ ] GitHub Enterprise Server
-- [ ] gitlab.com
-- [ ] GitLab self-hosted
-
-Renovate version: ...
-
-**Describe the bug**
-
-...
-
-**Relevant debug logs**
-
-<!--
-Try not to raise a bug report unless you've looked at the logs first.
-
-If you're running self-hosted, run with `LOG_LEVEL=debug` in your environment variables and search for whatever dependency/branch/PR that is causing the problem. If you are using the Renovate App, log into https://app.renovatebot.com/dashboard and locate the correct job log for when the problem occurred (e.g. when the PR was created).
-
-Paste the *relevant* logs here, not the entire thing and not just a link to the dashboard (others do not have permissions to view them).
--->
-
-<details><summary>Click me to see logs</summary>
-
-```
-Copy/paste any log here, between the starting and ending backticks
-```
-
-</details>
-
-**Have you created a minimal reproduction repository?**
-
-Please read the [minimal reproductions documentation](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md) to learn how to make a good minimal reproduction repository.
-
-- [ ] I have provided a minimal reproduction repository
-- [ ] I don't have time for that, but it happens in a public repository I have linked to
-- [ ] I don't have time for that, and cannot share my private repository
-- [ ] The nature of this bug means it's impossible to reproduce publicly
-
-**Additional context**
-
-<!-- Add any other context about the problem here, including your own debugging or ideas on what went wrong. -->
-
-...
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000000000000000000000000000000000..d00846a60d1eb96d1c3c0bd4e37e46cd71beb0f8
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,77 @@
+name: Bug report
+description: You've found a bug with Renovate.
+labels: ['type:bug', 'status:requirements', 'priority-5-triage']
+body:
+  - type: dropdown
+    id: how-are-you-running-renovate
+    attributes:
+      label: How are you running Renovate?
+      options:
+        - 'WhiteSource Renovate hosted app on github.com'
+        - 'Self-hosted'
+    validations:
+      required: true
+
+  - type: dropdown
+    id: platform-select
+    attributes:
+      label: Please select which platform you are using if self-hosting.
+      options:
+        - 'Azure DevOps (dev.azure.com)'
+        - 'Azure DevOps Server'
+        - 'Bitbucket Cloud (bitbucket.org)'
+        - 'Bitbucket Server'
+        - 'Gitea'
+        - 'github.com'
+        - 'GitHub Enterprise Server'
+        - 'gitlab.com'
+        - 'GitLab self-hosted'
+    validations:
+      required: false
+
+  - type: input
+    id: renovate-version-if-selfhosting
+    attributes:
+      label: If you're self-hosting Renovate, tell us what version of Renovate you run.
+    validations:
+      required: false
+
+  - type: textarea
+    id: describe-bug
+    attributes:
+      label: Describe the bug
+      description: 'Do not report any security concerns here. Email renovate-disclosure@whitesourcesoftware.com instead.'
+    validations:
+      required: true
+
+  - type: textarea
+    id: debug-logs
+    attributes:
+      label: Relevant debug logs
+      description: |
+        Try not to raise a bug report unless you've looked at the logs first.
+        If you're running self-hosted, run with `LOG_LEVEL=debug` in your environment variables and search for whatever dependency/branch/PR that is causing the problem.
+        If you are using the Renovate App, log into https://app.renovatebot.com/dashboard and locate the correct job log for when the problem occurred (e.g. when the PR was created).
+        Paste the *relevant* logs here, not the entire thing and not just a link to the dashboard (others do not have permissions to view them).
+      value: |
+        <details><summary>Logs</summary>
+
+        ```
+        Copy/paste any log here, between the starting and ending backticks
+        ```
+
+        </details>
+    validations:
+      required: false
+
+  - type: dropdown
+    id: minimal-reproduction-repository
+    attributes:
+      label: Have you created a minimal reproduction repository?
+      description: Please read the [minimal reproductions documentation](https://github.com/renovatebot/renovate/blob/main/docs/development/minimal-reproductions.md) to learn how to make a good minimal reproduction repository.
+      options:
+        - 'I have linked to a minimal reproduction repository in the bug description'
+        - 'No reproduction, but I have linked to a public repo where it occurs'
+        - 'No reproduction repository'
+    validations:
+      required: true
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 2ec03e84e830ce33ce49eca4f11694700cccf8bc..0000000000000000000000000000000000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-labels: 'type:feature, status:requirements, priority-5-triage'
----
-
-**What would you like Renovate to be able to do?**
-
-<!-- Tell us what requirements you need solving, and be sure to mention too if this is part of any "bigger" problem you're trying to solve. -->
-
-**Did you already have any implementation ideas?**
-
-<!-- In case you've already dug into existing options or source code and have ideas, mention them here. Try to keep implementation ideas separate from *requirements* above -->
-
-<!-- Please also mention here in case this is a feature you'd be interested in writing yourself, so you can be assigned it. -->
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fb5b8bdb527ab7458965f41c3aba2b64910be34d
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,29 @@
+name: Feature request
+description: Suggest an idea for this project.
+labels: ['type:feature', 'status:requirements', 'priority-5-triage']
+body:
+  - type: textarea
+    id: what-would-you-like-renovate-to-be-able-to-do
+    attributes:
+      label: What would you like Renovate to be able to do?
+      placeholder: "Tell us what requirements you need solving, and be sure to mention too if this is part of any bigger problem you're trying to solve."
+    validations:
+      required: true
+
+  - type: textarea
+    id: implementation-idea-textbox
+    attributes:
+      label: If you have any ideas on how this should be implemented, please tell us here.
+      placeholder: "In case you've already dug into existing options or source code and have ideas, mention them here. Try to keep implementation ideas separate from requirements."
+    validations:
+      required: true
+
+  - type: dropdown
+    id: interested-in-implementing-the-feature
+    attributes:
+      label: Is this a feature you are interested in implementing yourself?
+      options:
+        - 'Yes'
+        - 'No'
+    validations:
+      required: true
diff --git a/.github/ISSUE_TEMPLATE/refactor.yml b/.github/ISSUE_TEMPLATE/refactor.yml
new file mode 100644
index 0000000000000000000000000000000000000000..fd49bf107ccb02a032ea7cfc493c3475fe2dcccc
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/refactor.yml
@@ -0,0 +1,15 @@
+name: Refactor (internal)
+description: For internal use only.
+labels: ['type:refactor', 'status:requirements', 'priority-5-triage']
+body:
+  - type: markdown
+    attributes:
+      value: '# This form is for Renovate maintainers only.'
+
+  - type: textarea
+    id: describe-proposed-changes
+    attributes:
+      label: Describe the proposed change(s).
+      description: 'Do not report any security concerns here. Email renovate-disclosure@whitesourcesoftware.com instead.'
+    validations:
+      required: true