diff --git a/build/fietsje/def.bzl b/build/fietsje/def.bzl
new file mode 100644
index 0000000..65997f6
--- /dev/null
+++ b/build/fietsje/def.bzl
@@ -0,0 +1,73 @@
+#  Copyright 2020 The Monogon Project Authors.
+#
+#  SPDX-License-Identifier: Apache-2.0
+#
+#  Licensed under the Apache License, Version 2.0 (the "License");
+#  you may not use this file except in compliance with the License.
+#  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing, software
+#  distributed under the License is distributed on an "AS IS" BASIS,
+#  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#  See the License for the specific language governing permissions and
+#  limitations under the License.
+
+load(
+    "@io_bazel_rules_go//go:def.bzl",
+    _go_context = "go_context",
+    _go_rule = "go_rule",
+)
+load(
+    "@bazel_skylib//lib:shell.bzl",
+    "shell",
+)
+
+def _fietsje_runner_impl(ctx):
+    go = _go_context(ctx)
+    out_file = ctx.actions.declare_file(ctx.label.name + ".bash")
+    substitutions = {
+        "@@GOTOOL@@": shell.quote(go.go.path),
+        "@@FIETSJE_SHORT_PATH@@": shell.quote(ctx.executable.fietsje.short_path),
+    }
+    ctx.actions.expand_template(
+        template = ctx.file._template,
+        output = out_file,
+        substitutions = substitutions,
+        is_executable = True,
+    )
+    runfiles = ctx.runfiles(files = [
+        ctx.executable.fietsje,
+        go.go,
+    ])
+    return [DefaultInfo(
+        files = depset([out_file]),
+        runfiles = runfiles,
+        executable = out_file,
+    )]
+
+_fietsje_runner = _go_rule(
+    implementation = _fietsje_runner_impl,
+    attrs = {
+        "fietsje": attr.label(
+            default = "//build/fietsje",
+            executable = True,
+            cfg = 'host',
+        ),
+        "_template": attr.label(
+            default = "//build/fietsje:fietsje.bash.in",
+            allow_single_file = True,
+        ),
+    },
+)
+
+def fietsje(name):
+    runner_name = name + "-runner"
+    _fietsje_runner(
+        name = runner_name,
+    )
+    native.sh_binary(
+        name = name,
+        srcs = [runner_name],
+    )
