diff --git a/danger/karma/Dangerfile b/danger/karma/Dangerfile
new file mode 100644
index 0000000000000000000000000000000000000000..36fa2356897683601609931e351dbb91f4c12f74
--- /dev/null
+++ b/danger/karma/Dangerfile
@@ -0,0 +1,49 @@
+# frozen_string_literal: true
+# rubocop:disable Style/SignalException
+
+def get_karma_files(files)
+  files.select do |file|
+    file.start_with?('ee/spec/javascripts', 'spec/javascripts')
+  end
+end
+
+new_karma_files = get_karma_files(git.added_files.to_a)
+
+unless new_karma_files.empty?
+
+  if GitlabDanger.new(helper.gitlab_helper).ci?
+    markdown(<<~MARKDOWN)
+    ## New karma spec file
+
+    New frontend specs should be
+    [written in jest](https://docs.gitlab.com/ee/development/testing_guide/frontend_testing.html#jest).
+
+    You have created the following tests, please migrate them over to jest:
+
+    * #{new_karma_files.map { |path| "`#{path}`" }.join("\n* ")}
+    MARKDOWN
+  end
+
+  fail "You have created a new karma spec file"
+
+end
+
+changed_karma_files = get_karma_files(helper.all_changed_files) - new_karma_files
+
+return if changed_karma_files.empty?
+
+warn 'You have edited karma spec files. Please consider migrating them to jest.'
+
+if GitlabDanger.new(helper.gitlab_helper).ci?
+  markdown(<<~MARKDOWN)
+    ## Edited karma files
+
+    You have edited the following karma spec files. Please consider migrating them to jest:
+
+    * #{changed_karma_files.map { |path| "`#{path}`" }.join("\n* ")}
+
+    In order to align with our Iteration value, migration can also be done as a follow-up.
+
+    For more information: [Jestodus epic](https://gitlab.com/groups/gitlab-org/-/epics/895)
+  MARKDOWN
+end
diff --git a/lib/gitlab_danger.rb b/lib/gitlab_danger.rb
index cf57b20790b115c5bb04edf8f850bd64292b8f58..29300d02985f2f1ebe2b984a00f50bd1005c8fb7 100644
--- a/lib/gitlab_danger.rb
+++ b/lib/gitlab_danger.rb
@@ -8,6 +8,7 @@ class GitlabDanger
     duplicate_yarn_dependencies
     prettier
     eslint
+    karma
     database
     commit_messages
   ].freeze
diff --git a/spec/lib/gitlab_danger_spec.rb b/spec/lib/gitlab_danger_spec.rb
index 18321541221d03d1d7aae3b1d57a1109121f0f92..d3d7357a0126bb467616b43830b5e319e3701785 100644
--- a/spec/lib/gitlab_danger_spec.rb
+++ b/spec/lib/gitlab_danger_spec.rb
@@ -9,7 +9,7 @@
 
   describe '.local_warning_message' do
     it 'returns an informational message with rules that can run' do
-      expect(described_class.local_warning_message).to eq('==> Only the following Danger rules can be run locally: changes_size, documentation, frozen_string, duplicate_yarn_dependencies, prettier, eslint, database, commit_messages')
+      expect(described_class.local_warning_message).to eq('==> Only the following Danger rules can be run locally: changes_size, documentation, frozen_string, duplicate_yarn_dependencies, prettier, eslint, karma, database, commit_messages')
     end
   end