diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml
index 143ad8982e..39bbbdf2c6 100644
--- a/.forgejo/workflows/ci.yml
+++ b/.forgejo/workflows/ci.yml
@@ -29,7 +29,8 @@ jobs:
 #           TX_TOKEN: ${{ secrets.TRANSIFEX_API_TOKEN }}
 
   reuse:
-    runs-on: ubuntu-latest
+    name: Check REUSE Specification
+    runs-on: verify
     if: ${{ github.repository == 'suyu/suyu' }}
     steps:
     - uses: https://code.forgejo.org/actions/checkout@v3
diff --git a/.forgejo/workflows/codespell.yml b/.forgejo/workflows/codespell.yml
index bf6d35d1e8..d711137d3a 100644
--- a/.forgejo/workflows/codespell.yml
+++ b/.forgejo/workflows/codespell.yml
@@ -20,7 +20,7 @@ permissions: {}
 jobs:
   codespell:
     name: Check for spelling errors
-    runs-on: ubuntu-latest
+    runs-on: verify
     steps:
       - uses: https://code.forgejo.org/actions/checkout@v3
         with:
diff --git a/.gitea/ISSUE_TEMPLATE/blank_issue_template.yml b/.gitea/ISSUE_TEMPLATE/blank_issue_template.yml
new file mode 100644
index 0000000000..49b7f38228
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/blank_issue_template.yml
@@ -0,0 +1,10 @@
+name: New Issue (Developers Only)
+description: A blank issue template for developers only. If you are not a developer, do not use this issue template. Your issue WILL BE CLOSED if you do not use the appropriate issue template.
+body:
+  - type: markdown
+    attributes:
+      value: |
+        **If you are not a developer, do not use this issue template. Your issue WILL BE CLOSED if you do not use the appropriate issue template.**
+  - type: textarea
+    attributes:
+      label: "Issue"
diff --git a/.gitea/ISSUE_TEMPLATE/bug_report.yml b/.gitea/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000000..041a4ff3bf
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,64 @@
+name: Bug Report
+description: File a bug report
+body:
+  - type: markdown
+    attributes:
+      value: Tech support does not belong here. You should only file an issue here if you think you have experienced an actual bug with suyu.
+  - type: checkboxes
+    attributes:
+      label: Is there an existing issue for this?
+      description: Please search to see if an issue already exists for the bug you encountered.
+      options:
+      - label: I have searched the existing issues
+        required: true
+  - type: input
+    attributes:
+      label: Affected Commit or Release
+      description: List the affected commits that this issue applies to.
+      placeholder: Mainline 1234 / Early Access 1234
+    validations:
+      required: true
+  - type: textarea
+    id: issue-desc
+    attributes:
+      label: Description of Issue
+      description: A brief description of the issue encountered along with any images and/or videos.
+    validations:
+      required: true
+  - type: textarea
+    id: expected-behavior
+    attributes:
+      label: Expected Behavior
+      description: A brief description of how it is expected to work along with any images and/or videos.
+    validations:
+      required: true
+  - type: textarea
+    id: reproduction-steps
+    attributes:
+      label: Reproduction Steps
+      description: A brief explanation of how to reproduce this issue. If possible, provide a save file to aid in reproducing the issue.
+    validations:
+      required: true
+  - type: textarea
+    id: log
+    attributes:
+      label: Log File
+      description: A log file will help our developers to better diagnose and fix the issue. Instructions can be found [here](https://suyu.dev/help/reference/log-files).
+    validations:
+      required: true
+  - type: textarea
+    id: system-config
+    attributes:
+      label: System Configuration
+      placeholder: |
+        CPU: Intel i5-10400 / AMD Ryzen 5 3600
+        GPU/Driver: NVIDIA GeForce GTX 1060 (Driver 512.95)
+        RAM: 16GB DDR4-3200
+        OS: Windows 11 22H2 (Build 22621.819)
+      value: |
+        CPU:
+        GPU/Driver:
+        RAM:
+        OS:
+    validations:
+      required: true
diff --git a/.gitea/ISSUE_TEMPLATE/config.yml b/.gitea/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000..0be63fdb7a
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,5 @@
+blank_issues_enabled: false
+contact_links:
+  - name: suyu Discord
+    url: https://discord.com/invite/suyu
+    about: If you are experiencing an issue with suyu, and you need tech support, or if you have a general question, try asking in the official suyu Discord linked here. Piracy is not allowed.
diff --git a/.gitea/ISSUE_TEMPLATE/feature_request.yml b/.gitea/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000000..c0c27fc0a6
--- /dev/null
+++ b/.gitea/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,28 @@
+name: Feature Request
+description: File a feature request
+labels: "enhancement"
+body:
+  - type: markdown
+    attributes:
+      value: Tech support does not belong here. You should only file an issue here if you are requesting a feature you believe would make suyu better.
+  - type: checkboxes
+    attributes:
+      label: Is there an existing issue for this?
+      description: Please search to see if an issue already exists for the feature you are requesting.
+      options:
+      - label: I have searched the existing issues
+        required: true
+  - type: textarea
+    id: what-feature
+    attributes:
+      label: What feature are you suggesting?
+      description: A brief description of the requested feature.
+    validations:
+      required: true
+  - type: textarea
+    id: why-feature
+    attributes:
+      label: Why would this feature be useful?
+      description: A brief description of why this feature would make suyu better.
+    validations:
+      required: true
diff --git a/src/suyu/main.cpp b/src/suyu/main.cpp
index 0d6189a8e9..19148fcfc3 100644
--- a/src/suyu/main.cpp
+++ b/src/suyu/main.cpp
@@ -1748,8 +1748,8 @@ void GMainWindow::AllowOSSleep() {
 }
 
 bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletParameters params) {
-    if (Loader::AppLoader_NRO::IdentifyType(Core::GetGameFileFromPath(vfs, filename.toStdString())) !=
-        Loader::FileType::NRO) {
+    if (Loader::AppLoader_NRO::IdentifyType(
+            Core::GetGameFileFromPath(vfs, filename.toStdString())) != Loader::FileType::NRO) {
         if (!CheckFirmwarePresence()) {
             QMessageBox::critical(this, tr("Component Missing"), tr("Missing Firmware."));
             return false;
@@ -1757,7 +1757,7 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa
 
         if (!ContentManager::AreKeysPresent()) {
             QMessageBox::warning(this, tr("Derivation Components Missing"),
-                                tr("Encryption keys are missing. "
+                                 tr("Encryption keys are missing. "
                                     "In order to use this emulator, "
                                     "you need to provide your own encryption keys "
                                     "in order to play them."));