diff --git a/build/analysis/BUILD.bazel b/build/analysis/BUILD.bazel
index bbb80d2..98a1563 100644
--- a/build/analysis/BUILD.bazel
+++ b/build/analysis/BUILD.bazel
@@ -1,6 +1,6 @@
 load("@bazel_skylib//rules:write_file.bzl", "write_file")
-load("@com_github_sluongng_nogo_analyzer//staticcheck:def.bzl", ALL_STATICCHECK_ANALYZERS = "ANALYZERS", format_staticcheck_analyzers = "staticcheck_analyzers")
 load("@io_bazel_rules_go//go:def.bzl", "nogo")
+load("//build/analysis/staticcheck:def.bzl", ALL_STATICCHECK_ANALYZERS = "ANALYZER_NAMES", filtered_staticcheck_analyzers = "filtered_analyzers")
 load(":def.bzl", "build_nogo_config", "exclude_from_checks", "exclude_from_external")
 
 # NOGO_PASSES contains all enabled analyzers that nogo should execute.
@@ -73,12 +73,12 @@
 # Combine all staticcheck analyzers with a list
 # of all globally disabled staticcheck analyzers
 # and append them to the nogo passes.
-NOGO_PASSES += format_staticcheck_analyzers(ALL_STATICCHECK_ANALYZERS + [
-    "-ST1000",  # at least one file in a package should have a package comment
-    "-ST1003",  # should not use ALL_CAPS in Go names; use CamelCase instead
-    "-QF1006",  # could lift into loop condition
-    "-QF1003",  # could use tagged switch
-    "-QF1008",  # Omit embedded fields from selector expression
+NOGO_PASSES += filtered_staticcheck_analyzers([
+    "ST1000",  # at least one file in a package should have a package comment
+    "ST1003",  # should not use ALL_CAPS in Go names; use CamelCase instead
+    "QF1006",  # could lift into loop condition
+    "QF1003",  # could use tagged switch
+    "QF1008",  # Omit embedded fields from selector expression
 ])
 
 NOGO_PASSES += [
diff --git a/build/analysis/staticcheck/BUILD.bazel b/build/analysis/staticcheck/BUILD.bazel
new file mode 100644
index 0000000..589f7c1
--- /dev/null
+++ b/build/analysis/staticcheck/BUILD.bazel
@@ -0,0 +1,25 @@
+load("@aspect_bazel_lib//lib:write_source_files.bzl", "write_source_files")
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+
+go_library(
+    name = "staticcheck_lib",
+    srcs = ["staticcheck.go"],
+    importpath = "source.monogon.dev/build/analysis/staticcheck",
+    visibility = ["//build/analysis/staticcheck:__subpackages__"],
+    deps = [
+        "@co_honnef_go_tools//analysis/lint",
+        "@co_honnef_go_tools//quickfix",
+        "@co_honnef_go_tools//simple",
+        "@co_honnef_go_tools//staticcheck",
+        "@co_honnef_go_tools//stylecheck",
+        "@co_honnef_go_tools//unused",
+        "@org_golang_x_tools//go/analysis",
+    ],
+)
+
+write_source_files(
+    name = "staticcheck_analyzers",
+    files = {
+        "analyzers.bzl": "//build/analysis/staticcheck/generate_analyzers:analyzers",
+    },
+)
diff --git a/build/analysis/staticcheck/README.md b/build/analysis/staticcheck/README.md
new file mode 100644
index 0000000..4a63402
--- /dev/null
+++ b/build/analysis/staticcheck/README.md
@@ -0,0 +1,3 @@
+# Staticcheck Nogo Compat
+This package is a replacement for https://github.com/sluongng/nogo-analyzer/, 
+which we previously used. 
\ No newline at end of file
diff --git a/build/analysis/staticcheck/analyzer/BUILD.bazel b/build/analysis/staticcheck/analyzer/BUILD.bazel
new file mode 100644
index 0000000..be9afe8
--- /dev/null
+++ b/build/analysis/staticcheck/analyzer/BUILD.bazel
@@ -0,0 +1,27 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library")
+load("//build/analysis/staticcheck:analyzers.bzl", "ANALYZER_NAMES")
+
+[
+    go_library(
+        name = analyzer,
+        srcs = ["analyzer.go"],
+        importpath = "source.monogon.dev/build/analysis/staticcheck/analyzer/" + analyzer,
+        visibility = ["//visibility:public"],
+        x_defs = {
+            "name": analyzer,
+        },
+        deps = ["//build/analysis/staticcheck:staticcheck_lib"],
+    )
+    for analyzer in ANALYZER_NAMES
+]
+
+go_library(
+    name = "analyzer",
+    srcs = ["analyzer.go"],
+    importpath = "source.monogon.dev/build/analysis/staticcheck/analyzer",
+    # Gazelle generated target that doesn't do anything,
+    # disable via incompatible.
+    target_compatible_with = ["@platforms//:incompatible"],
+    visibility = ["//visibility:private"],
+    deps = ["//build/analysis/staticcheck:staticcheck_lib"],
+)
diff --git a/build/analysis/staticcheck/analyzer/analyzer.go b/build/analysis/staticcheck/analyzer/analyzer.go
new file mode 100644
index 0000000..b082533
--- /dev/null
+++ b/build/analysis/staticcheck/analyzer/analyzer.go
@@ -0,0 +1,21 @@
+// Copyright The Monogon Project Authors.
+// SPDX-License-Identifier: Apache-2.0
+
+package staticcheck
+
+import (
+	"fmt"
+
+	"source.monogon.dev/build/analysis/staticcheck"
+)
+
+var (
+	name     string
+	Analyzer = staticcheck.Analyzers[name]
+)
+
+func init() {
+	if Analyzer == nil {
+		panic(fmt.Sprintf("staticcheck analyzer %q not found", name))
+	}
+}
diff --git a/build/analysis/staticcheck/analyzers.bzl b/build/analysis/staticcheck/analyzers.bzl
new file mode 100644
index 0000000..5f97fd0
--- /dev/null
+++ b/build/analysis/staticcheck/analyzers.bzl
@@ -0,0 +1,166 @@
+# Generated by //build/analysis/staticcheck/generate_analyzers
+# Do not modify!
+
+ANALYZER_NAMES = [
+    "QF1001",
+    "QF1002",
+    "QF1003",
+    "QF1004",
+    "QF1005",
+    "QF1006",
+    "QF1007",
+    "QF1008",
+    "QF1009",
+    "QF1010",
+    "QF1011",
+    "QF1012",
+    "S1000",
+    "S1001",
+    "S1002",
+    "S1003",
+    "S1004",
+    "S1005",
+    "S1006",
+    "S1007",
+    "S1008",
+    "S1009",
+    "S1010",
+    "S1011",
+    "S1012",
+    "S1016",
+    "S1017",
+    "S1018",
+    "S1019",
+    "S1020",
+    "S1021",
+    "S1023",
+    "S1024",
+    "S1025",
+    "S1028",
+    "S1029",
+    "S1030",
+    "S1031",
+    "S1032",
+    "S1033",
+    "S1034",
+    "S1035",
+    "S1036",
+    "S1037",
+    "S1038",
+    "S1039",
+    "S1040",
+    "SA1000",
+    "SA1001",
+    "SA1002",
+    "SA1003",
+    "SA1004",
+    "SA1005",
+    "SA1006",
+    "SA1007",
+    "SA1008",
+    "SA1010",
+    "SA1011",
+    "SA1012",
+    "SA1013",
+    "SA1014",
+    "SA1015",
+    "SA1016",
+    "SA1017",
+    "SA1018",
+    "SA1019",
+    "SA1020",
+    "SA1021",
+    "SA1023",
+    "SA1024",
+    "SA1025",
+    "SA1026",
+    "SA1027",
+    "SA1028",
+    "SA1029",
+    "SA1030",
+    "SA1031",
+    "SA1032",
+    "SA2000",
+    "SA2001",
+    "SA2002",
+    "SA2003",
+    "SA3000",
+    "SA3001",
+    "SA4000",
+    "SA4001",
+    "SA4003",
+    "SA4004",
+    "SA4005",
+    "SA4006",
+    "SA4008",
+    "SA4009",
+    "SA4010",
+    "SA4011",
+    "SA4012",
+    "SA4013",
+    "SA4014",
+    "SA4015",
+    "SA4016",
+    "SA4017",
+    "SA4018",
+    "SA4019",
+    "SA4020",
+    "SA4021",
+    "SA4022",
+    "SA4023",
+    "SA4024",
+    "SA4025",
+    "SA4026",
+    "SA4027",
+    "SA4028",
+    "SA4029",
+    "SA4030",
+    "SA4031",
+    "SA4032",
+    "SA5000",
+    "SA5001",
+    "SA5002",
+    "SA5003",
+    "SA5004",
+    "SA5005",
+    "SA5007",
+    "SA5008",
+    "SA5009",
+    "SA5010",
+    "SA5011",
+    "SA5012",
+    "SA6000",
+    "SA6001",
+    "SA6002",
+    "SA6003",
+    "SA6005",
+    "SA6006",
+    "SA9001",
+    "SA9002",
+    "SA9003",
+    "SA9004",
+    "SA9005",
+    "SA9006",
+    "SA9007",
+    "SA9008",
+    "SA9009",
+    "ST1000",
+    "ST1001",
+    "ST1003",
+    "ST1005",
+    "ST1006",
+    "ST1008",
+    "ST1011",
+    "ST1012",
+    "ST1013",
+    "ST1015",
+    "ST1016",
+    "ST1017",
+    "ST1018",
+    "ST1019",
+    "ST1020",
+    "ST1021",
+    "ST1022",
+    "ST1023",
+    "U1000",
+]
diff --git a/build/analysis/staticcheck/def.bzl b/build/analysis/staticcheck/def.bzl
new file mode 100644
index 0000000..97509dc
--- /dev/null
+++ b/build/analysis/staticcheck/def.bzl
@@ -0,0 +1,21 @@
+load(":analyzers.bzl", _ANALYZER_NAMES = "ANALYZER_NAMES")
+
+def _name_to_target(name):
+    return Label("//build/analysis/staticcheck/analyzer:" + name)
+
+def filtered_analyzers(filter):
+    """Returns a list of all analyzers without the ones provided as list."""
+    filtered = {
+        name: _name_to_target(name)
+        for name in _ANALYZER_NAMES
+    }
+    for name in filter:
+        filtered.pop(name)
+    return filtered.values()
+
+ANALYZER_NAMES = _ANALYZER_NAMES
+
+ANALYZER_TARGETS = [
+    _name_to_target(name)
+    for name in _ANALYZER_NAMES
+]
diff --git a/build/analysis/staticcheck/generate_analyzers/BUILD.bazel b/build/analysis/staticcheck/generate_analyzers/BUILD.bazel
new file mode 100644
index 0000000..0280cdb
--- /dev/null
+++ b/build/analysis/staticcheck/generate_analyzers/BUILD.bazel
@@ -0,0 +1,21 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_binary", "go_library")
+load(":def.bzl", "generate_analyzers")
+
+generate_analyzers(
+    name = "analyzers",
+    visibility = ["//build/analysis/staticcheck:__pkg__"],
+)
+
+go_library(
+    name = "generate_analyzers_lib",
+    srcs = ["main.go"],
+    importpath = "source.monogon.dev/build/analysis/staticcheck/generate_analyzers",
+    visibility = ["//visibility:private"],
+    deps = ["//build/analysis/staticcheck:staticcheck_lib"],
+)
+
+go_binary(
+    name = "generate_analyzers",
+    embed = [":generate_analyzers_lib"],
+    visibility = ["//visibility:public"],
+)
diff --git a/build/analysis/staticcheck/generate_analyzers/def.bzl b/build/analysis/staticcheck/generate_analyzers/def.bzl
new file mode 100644
index 0000000..2356103
--- /dev/null
+++ b/build/analysis/staticcheck/generate_analyzers/def.bzl
@@ -0,0 +1,25 @@
+def _generate_analyzers_impl(ctx):
+    analyzers_file = ctx.actions.declare_file("analyzers.bzl")
+
+    args = ctx.actions.args()
+    args.add("-out")
+    args.add(analyzers_file)
+
+    ctx.actions.run(
+        outputs = [analyzers_file],
+        executable = ctx.executable._generate_analyzers,
+        arguments = [args],
+    )
+
+    return [DefaultInfo(files = depset([analyzers_file]), runfiles = ctx.runfiles(files = [analyzers_file]))]
+
+generate_analyzers = rule(
+    implementation = _generate_analyzers_impl,
+    attrs = {
+        "_generate_analyzers": attr.label(
+            default = ":generate_analyzers",
+            executable = True,
+            cfg = "exec",
+        ),
+    },
+)
diff --git a/build/analysis/staticcheck/generate_analyzers/main.go b/build/analysis/staticcheck/generate_analyzers/main.go
new file mode 100644
index 0000000..bcf96ff
--- /dev/null
+++ b/build/analysis/staticcheck/generate_analyzers/main.go
@@ -0,0 +1,44 @@
+// Copyright The Monogon Project Authors.
+// SPDX-License-Identifier: Apache-2.0
+
+package main
+
+import (
+	"flag"
+	"fmt"
+	"log"
+	"maps"
+	"os"
+	"slices"
+	"sort"
+
+	"source.monogon.dev/build/analysis/staticcheck"
+)
+
+func main() {
+	out := flag.String("out", "", "The output file to write the list to")
+	flag.Parse()
+
+	if *out == "" {
+		log.Fatal("-out argument is required")
+	}
+
+	outFile, err := os.OpenFile(*out, os.O_CREATE|os.O_TRUNC|os.O_RDWR, 0655)
+	if err != nil {
+		log.Fatalf("failed opening file: %v", err)
+	}
+	defer outFile.Close()
+
+	const fileHeader = "# Generated by //build/analysis/staticcheck/generate_analyzers\n# Do not modify!\n\nANALYZER_NAMES = [\n"
+	fmt.Fprint(outFile, fileHeader)
+
+	analyzerNames := slices.Collect(maps.Keys(staticcheck.Analyzers))
+	sort.Strings(analyzerNames)
+
+	for _, name := range analyzerNames {
+		fmt.Fprintf(outFile, "    %q,\n", name)
+	}
+
+	const fileFooter = "]\n"
+	fmt.Fprint(outFile, fileFooter)
+}
diff --git a/build/analysis/staticcheck/staticcheck.go b/build/analysis/staticcheck/staticcheck.go
new file mode 100644
index 0000000..02c5b10
--- /dev/null
+++ b/build/analysis/staticcheck/staticcheck.go
@@ -0,0 +1,32 @@
+// Copyright The Monogon Project Authors.
+// SPDX-License-Identifier: Apache-2.0
+
+package staticcheck
+
+import (
+	"golang.org/x/tools/go/analysis"
+	"honnef.co/go/tools/analysis/lint"
+	"honnef.co/go/tools/quickfix"
+	"honnef.co/go/tools/simple"
+	"honnef.co/go/tools/staticcheck"
+	"honnef.co/go/tools/stylecheck"
+	"honnef.co/go/tools/unused"
+)
+
+// Analyzers contains all staticcheck analyzer passes
+// Copied from https://github.com/sluongng/nogo-analyzer/ under Apache 2.0
+var Analyzers = func() map[string]*analysis.Analyzer {
+	m := make(map[string]*analysis.Analyzer)
+	for _, analyzers := range [][]*lint.Analyzer{
+		quickfix.Analyzers,
+		simple.Analyzers,
+		staticcheck.Analyzers,
+		stylecheck.Analyzers,
+		{unused.Analyzer},
+	} {
+		for _, a := range analyzers {
+			m[a.Analyzer.Name] = a.Analyzer
+		}
+	}
+	return m
+}()
diff --git a/build/bazel/third_party.MODULE.bazel b/build/bazel/third_party.MODULE.bazel
index 2c22364..1f4f396 100644
--- a/build/bazel/third_party.MODULE.bazel
+++ b/build/bazel/third_party.MODULE.bazel
@@ -59,16 +59,6 @@
     ],
 )
 
-# Used to include staticcheck as nogo analyzer
-http_archive(
-    name = "com_github_sluongng_nogo_analyzer",
-    integrity = "sha256-Dca16GCU0IHgW80MPkH8J1ojmMZOVFN2FmE5QSGB8VA=",
-    strip_prefix = "nogo-analyzer-0.0.3",
-    urls = [
-        "https://github.com/sluongng/nogo-analyzer/archive/refs/tags/v0.0.3.tar.gz",
-    ],
-)
-
 # CockroachDB repository used for linter passes.
 COCKROACH_VERSION = "22.1.6"
 
