diff --git a/common/nix.nix b/common/nix.nix
index 17c8f5d..f5b4c2f 100644
--- a/common/nix.nix
+++ b/common/nix.nix
@@ -46,5 +46,7 @@
   };
   programs.nix-ld.enable = true;
 
-  environment.systemPackages = with pkgs; [ nvd ];
+  environment.systemPackages = with pkgs; [
+    nvd
+  ];
 }
diff --git a/flake.lock b/flake.lock
index 9b112dc..b2cc97b 100644
--- a/flake.lock
+++ b/flake.lock
@@ -21,19 +21,19 @@
     "ghostty": {
       "inputs": {
         "nixpkgs-stable": [
-          "nixpkgs"
+          "nixpkgs-stable"
         ],
         "nixpkgs-unstable": [
-          "nixpkgs"
+          "nixpkgs-unstable"
         ],
         "zig": "zig"
       },
       "locked": {
-        "lastModified": 1728604055,
-        "narHash": "sha256-qFzvnwoWhGob+Huh3RlCxC+j16uF0LQKKV4dJxY4nDQ=",
+        "lastModified": 1729220096,
+        "narHash": "sha256-4erPSUsLVTTbdAXAjKfl7FpVxohmDSL0zWfewff7jcc=",
         "ref": "refs/heads/main",
-        "rev": "c26d1cb28eb5491e05ccbcff075a0eedd09ebaaa",
-        "revCount": 7679,
+        "rev": "913c4b5801b0d3881eabbe93dec5a2c40fefe65f",
+        "revCount": 7730,
         "type": "git",
         "url": "ssh://git@github.com/ghostty-org/ghostty"
       },
@@ -60,15 +60,15 @@
     "home-manager": {
       "inputs": {
         "nixpkgs": [
-          "nixpkgs"
+          "nixpkgs-unstable"
         ]
       },
       "locked": {
-        "lastModified": 1728726232,
-        "narHash": "sha256-8ZWr1HpciQsrFjvPMvZl0W+b0dilZOqXPoKa2Ux36bc=",
+        "lastModified": 1729174520,
+        "narHash": "sha256-QxCAdgQdeIOaCiE0Sr23s9lD0+T1b/wuz5pSiGwNrCQ=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "d57112db877f07387ce7104b5ac346ede556d2d7",
+        "rev": "e78cbb20276f09c1802e62d2f77fc93ec32da268",
         "type": "github"
       },
       "original": {
@@ -77,13 +77,29 @@
         "type": "github"
       }
     },
-    "nixpkgs": {
+    "nixpkgs-stable": {
       "locked": {
-        "lastModified": 1728492678,
-        "narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
+        "lastModified": 1729044727,
+        "narHash": "sha256-GKJjtPY+SXfLF/yTN7M2cAnQB6RERFKnQhD8UvPSf3M=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
+        "rev": "dc2e0028d274394f73653c7c90cc63edbb696be1",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "ref": "nixos-24.05",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
+    "nixpkgs-unstable": {
+      "locked": {
+        "lastModified": 1728888510,
+        "narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c",
         "type": "github"
       },
       "original": {
@@ -98,7 +114,8 @@
         "ghostty": "ghostty",
         "ghostty-hm": "ghostty-hm",
         "home-manager": "home-manager",
-        "nixpkgs": "nixpkgs"
+        "nixpkgs-stable": "nixpkgs-stable",
+        "nixpkgs-unstable": "nixpkgs-unstable"
       }
     },
     "systems": {
diff --git a/flake.nix b/flake.nix
index 07a7f01..13e0fd9 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,94 +2,65 @@
   description = "NixOS configuration";
 
   inputs = {
-    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+    nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
+    nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
 
     home-manager.url = "github:nix-community/home-manager";
-    home-manager.inputs.nixpkgs.follows = "nixpkgs";
+    home-manager.inputs.nixpkgs.follows = "nixpkgs-unstable";
 
     ghostty = {
       url = "git+ssh://git@github.com/ghostty-org/ghostty";
       inputs = {
-        nixpkgs-stable.follows = "nixpkgs";
-        nixpkgs-unstable.follows = "nixpkgs";
+        nixpkgs-stable.follows = "nixpkgs-stable";
+        nixpkgs-unstable.follows = "nixpkgs-unstable";
       };
     };
     ghostty-hm.url = "github:clo4/ghostty-hm-module";
   };
 
   outputs =
-    {
+    inputs@{
       self,
-      nixpkgs,
-      ghostty,
+      nixpkgs-unstable,
       ghostty-hm,
       home-manager,
       ...
-    }@inputs:
+    }:
     let
       inherit (self) outputs;
+      system = "x86_64-linux";
+      pkgs = nixpkgs-unstable.legacyPackages.${system};
+
+      mkHost =
+        modules:
+        nixpkgs-unstable.lib.nixosSystem {
+          specialArgs = {
+            inherit inputs outputs;
+          };
+          modules = [ ./common ] ++ modules;
+        };
 
       mkHome =
         modules:
         home-manager.lib.homeManagerConfiguration {
+          inherit pkgs;
+          extraSpecialArgs = {
+            inherit inputs outputs;
+          };
           modules = [
             ghostty-hm.homeModules.default
             ./home/common
           ] ++ modules;
-          pkgs = nixpkgs.legacyPackages.x86_64-linux;
-          extraSpecialArgs = {
-            inherit inputs outputs;
-          };
         };
-
-      mkHost =
-        modules:
-        nixpkgs.lib.nixosSystem {
-          specialArgs = {
-            inherit inputs outputs;
-          };
-          system = "x86_64-linux";
-          modules = [ ./common ] ++ modules;
-        };
-
-      supportedSystems = [
-        "x86_64-linux"
-        "aarch64-linux"
-      ];
-      forEachSystem =
-        f:
-        builtins.listToAttrs (
-          map (system: {
-            name = system;
-            value = f system;
-          }) supportedSystems
-        );
-      systemBits = forEachSystem (system: rec {
-        inherit system;
-        pkgs = import nixpkgs {
-          localSystem = system;
-          overlays = [ ];
-        };
-      });
-
-      forEachSystem' = f: forEachSystem (system: (f systemBits.${system}));
-      inherit (nixpkgs) lib;
     in
     {
       overlays = import ./overlays { inherit inputs outputs; };
 
-      devShells = forEachSystem' (
-        { system, pkgs, ... }:
-        {
-          default = pkgs.mkShell { packages = [ ]; };
-        }
-      );
-
-      homeConfigurations = {
-        "dln@dinky" = mkHome [ ./home/dln/dinky.nix ];
-        "dln@nemo" = mkHome [ ./home/dln/nemo.nix ];
-        "dln@pearl" = mkHome [ ./home/dln/pearl.nix ];
-        "lsjostro@nemo" = mkHome [ ./home/lsjostro/nemo.nix ];
+      devShell.${system} = pkgs.mkShell {
+        packages = with pkgs; [
+          just
+          nh
+        ];
       };
 
       nixosConfigurations = {
@@ -97,5 +68,12 @@
         nemo = mkHost [ ./hosts/nemo ];
         pearl = mkHost [ ./hosts/pearl ];
       };
+
+      homeConfigurations = {
+        "dln@dinky" = mkHome [ ./home/dln/dinky.nix ];
+        "dln@nemo" = mkHome [ ./home/dln/nemo.nix ];
+        "dln@pearl" = mkHome [ ./home/dln/pearl.nix ];
+        "lsjostro@nemo" = mkHome [ ./home/lsjostro/nemo.nix ];
+      };
     };
 }
diff --git a/home/common/devel.nix b/home/common/devel.nix
index 2ae0a64..61999ee 100644
--- a/home/common/devel.nix
+++ b/home/common/devel.nix
@@ -14,6 +14,7 @@
     ldns
     minio-client
     nil
+    nix-output-monitor
     nixd
     nixfmt-rfc-style
     nodejs_22
diff --git a/home/common/nix.nix b/home/common/nix.nix
index 3b66fd3..b1976e0 100644
--- a/home/common/nix.nix
+++ b/home/common/nix.nix
@@ -1,4 +1,8 @@
-{ outputs, ... }:
+{
+  pkgs,
+  outputs,
+  ...
+}:
 {
   nixpkgs = {
     config.allowUnfree = true;
diff --git a/home/dln/nemo.nix b/home/dln/nemo.nix
index 4a4f79a..1c38f16 100644
--- a/home/dln/nemo.nix
+++ b/home/dln/nemo.nix
@@ -24,7 +24,7 @@
     };
   };
 
-  home.packages = with pkgs; [ calibre ];
+  home.packages = with pkgs; [ stable.calibre ];
 
   programs.gpg.enable = true;
 
diff --git a/overlays/default.nix b/overlays/default.nix
index 1ab8f99..b058a14 100644
--- a/overlays/default.nix
+++ b/overlays/default.nix
@@ -13,6 +13,10 @@
   };
 
   unstable-packages = final: _prev: {
+    stable = import inputs.nixpkgs-stable {
+      system = final.system;
+      config.allowUnfree = true;
+    };
     unstable = import inputs.nixpkgs-unstable {
       system = final.system;
       config.allowUnfree = true;