diff --git a/flake.lock b/flake.lock
index ed2ccf1b9645e55a2a38f6cc9f9c87b18bdb535b..c8375b84bfec027e469bef800b9cc0ea0477715f 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,20 @@
 {
   "nodes": {
+    "flake-utils": {
+      "locked": {
+        "lastModified": 1678901627,
+        "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=",
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6",
+        "type": "github"
+      },
+      "original": {
+        "owner": "numtide",
+        "repo": "flake-utils",
+        "type": "github"
+      }
+    },
     "nixpkgs": {
       "locked": {
         "lastModified": 1659446231,
@@ -18,6 +33,7 @@
     },
     "root": {
       "inputs": {
+        "flake-utils": "flake-utils",
         "nixpkgs": "nixpkgs"
       }
     }
diff --git a/flake.nix b/flake.nix
index e4e30d6fb9ae48b6bc6ebe61b0459bd1931c161c..0a800e17ad1027a2304f064bfc6cabf62c174a84 100644
--- a/flake.nix
+++ b/flake.nix
@@ -3,12 +3,14 @@
     nixpkgs = {
       url = github:NixOS/nixpkgs?ref=nixos-21.11;
     };
-  };
-  outputs = { self, nixpkgs }: {
-    packages = {
-      x86_64-linux = {
-        docs = nixpkgs.legacyPackages.x86_64-linux.callPackage ./docs.nix { };
-      };
+    flake-utils = {
+      url = github:numtide/flake-utils;
     };
   };
+  outputs = { self, nixpkgs, flake-utils }:
+    flake-utils.lib.eachDefaultSystem (system: {
+      packages = {
+        docs = nixpkgs.legacyPackages.${system}.callPackage ./docs.nix { };
+      };
+    });
 }