diff --git a/danger/tailwindcss/Dangerfile b/danger/tailwindcss/Dangerfile
new file mode 100644
index 0000000000000000000000000000000000000000..2975d373abdcd3e832e1261581a3a87a5319f995
--- /dev/null
+++ b/danger/tailwindcss/Dangerfile
@@ -0,0 +1,72 @@
+# frozen_string_literal: true
+
+module Danger
+  class Tailwind
+    FRONTEND_INTERPOLATION_PATTERN = /gl-[0-9a-z-]+(\$\{|['"] ?\+)/
+    BACKEND_INTERPOLATION_PATTERN = /gl-[0-9a-z-]+(#\{|['"] ?\+)/
+
+    def initialize(helper, git)
+      @helper = helper
+      @git = git
+    end
+
+    def report_interpolated_utils
+      frontend_files_with_interpolated_utils = files_with_interpolated_utils(
+        frontend_tailwindy_files(@helper.all_changed_files), FRONTEND_INTERPOLATION_PATTERN)
+      backend_files_with_interpolated_utils = files_with_interpolated_utils(
+        backend_tailwindy_files(@helper.all_changed_files), BACKEND_INTERPOLATION_PATTERN)
+
+      return "" if frontend_files_with_interpolated_utils.empty? && backend_files_with_interpolated_utils.empty?
+
+      <<~MARKDOWN
+      ### Interpolated utils
+
+      The following files might contain interpolated utils:
+      #{format_files_list(frontend_files_with_interpolated_utils + backend_files_with_interpolated_utils)}
+
+      If you are leveraging CSS utilities, make sure they are written in full and not built via string
+      interpolation as that would prevent Tailwind CSS from generating them.
+      MARKDOWN
+    end
+
+    private
+
+    def frontend_tailwindy_files(files)
+      files.select do |file|
+        file.end_with?('.vue', '.js')
+      end
+    end
+
+    def backend_tailwindy_files(files)
+      files.select do |file|
+        file.end_with?('.html.haml', '.rb')
+      end
+    end
+
+    def files_with_interpolated_utils(files, pattern)
+      files.select do |file|
+        diff = @git.diff_for_file(file)
+        diff.patch.each_line.any? do |line|
+          line.start_with?('+') && line.match?(pattern)
+        end
+      end
+    end
+
+    def format_files_list(files)
+      files.map do |file|
+        "- `#{file}`"
+      end.join("\n")
+    end
+  end
+end
+
+danger_tailwind = Danger::Tailwind.new(helper, git)
+report = danger_tailwind.report_interpolated_utils
+
+unless report.empty?
+  markdown <<~MSG
+   ## Tailwind CSS
+
+   #{report}
+  MSG
+end