diff --git a/flake.lock b/flake.lock
index 7097db1d..9ce97d68 100644
--- a/flake.lock
+++ b/flake.lock
@@ -24,32 +24,32 @@
         ]
       },
       "locked": {
-        "lastModified": 1702203126,
-        "narHash": "sha256-4BhN2Vji19MzRC7SUfPZGmtZ2WZydQeUk/ogfRBIZMs=",
+        "lastModified": 1702195709,
+        "narHash": "sha256-+zRjWkm5rKqQ57PuLZ3JF3xi3vPMiOJzItb1m/43Cq4=",
         "owner": "nix-community",
         "repo": "home-manager",
-        "rev": "defbb9c5857e157703e8fc7cf3c2ceb01cb95883",
+        "rev": "6761b8188b860f374b457eddfdb05c82eef9752f",
         "type": "github"
       },
       "original": {
         "owner": "nix-community",
-        "ref": "master",
+        "ref": "release-23.11",
         "repo": "home-manager",
         "type": "github"
       }
     },
     "nixpkgs": {
       "locked": {
-        "lastModified": 1702151865,
-        "narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=",
+        "lastModified": 1702233072,
+        "narHash": "sha256-H5G2wgbim2Ku6G6w+NSaQaauv6B6DlPhY9fMvArKqRo=",
         "owner": "nixos",
         "repo": "nixpkgs",
-        "rev": "666fc80e7b2afb570462423cb0e1cf1a3a34fedd",
+        "rev": "781e2a9797ecf0f146e81425c822dca69fe4a348",
         "type": "github"
       },
       "original": {
         "owner": "nixos",
-        "ref": "nixos-unstable",
+        "ref": "nixos-23.11",
         "repo": "nixpkgs",
         "type": "github"
       }
@@ -72,11 +72,28 @@
         "type": "github"
       }
     },
+    "nixpkgs-unstable": {
+      "locked": {
+        "lastModified": 1702151865,
+        "narHash": "sha256-9VAt19t6yQa7pHZLDbil/QctAgVsA66DLnzdRGqDisg=",
+        "owner": "nixos",
+        "repo": "nixpkgs",
+        "rev": "666fc80e7b2afb570462423cb0e1cf1a3a34fedd",
+        "type": "github"
+      },
+      "original": {
+        "owner": "nixos",
+        "ref": "nixos-unstable",
+        "repo": "nixpkgs",
+        "type": "github"
+      }
+    },
     "root": {
       "inputs": {
         "flake-parts": "flake-parts",
         "home-manager": "home-manager",
-        "nixpkgs": "nixpkgs"
+        "nixpkgs": "nixpkgs",
+        "nixpkgs-unstable": "nixpkgs-unstable"
       }
     }
   },
diff --git a/flake.nix b/flake.nix
index 4d6442d8..28de1ae1 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,8 +1,9 @@
 {
   inputs = {
     home-manager.inputs.nixpkgs.follows = "nixpkgs";
-    home-manager.url = "github:nix-community/home-manager/master";
-    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
+    home-manager.url = "github:nix-community/home-manager/release-23.11";
+    nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
+    nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11";
   };
 
   outputs = inputs@{ flake-parts, self, ... }:
diff --git a/system/nixos/configuration.nix b/system/nixos/configuration.nix
index 23f832a0..b6d05302 100644
--- a/system/nixos/configuration.nix
+++ b/system/nixos/configuration.nix
@@ -1,6 +1,8 @@
 { inputs, pkgs, system }:
 
 let
+  pkgsUnstable = inputs.nixpkgs-unstable.legacyPackages."${system}";
+
   configure-gtk = pkgs.writeTextFile {
     name = "configure-gtk";
     destination = "/bin/configure-gtk";
@@ -174,8 +176,7 @@ in
         monospace = [ "JetBrainsMono Nerd Font Mono" ];
       };
     };
-
-    packages = with pkgs; [
+    packages = with pkgsUnstable; [
       (nerdfonts.override {
         fonts = [
           "AnonymousPro"
diff --git a/system/shared/home-manager-packages.nix b/system/shared/home-manager-packages.nix
index df9a02cf..91f5506a 100644
--- a/system/shared/home-manager-packages.nix
+++ b/system/shared/home-manager-packages.nix
@@ -1,5 +1,7 @@
 { inputs, pkgs, ... }:
-
+let
+  pkgsUnstable = inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}";
+in
 with pkgs; [
   awscli2
   bottom
@@ -24,9 +26,9 @@ with pkgs; [
   lua
   mysql
   neofetch
+  pkgsUnstable.rustywind
   pv
   ripgrep
-  rustywind
   terraform
   tldr
   tree
diff --git a/system/shared/modules/neovim.nix b/system/shared/modules/neovim.nix
index 2273dd69..890c3f0c 100644
--- a/system/shared/modules/neovim.nix
+++ b/system/shared/modules/neovim.nix
@@ -1,6 +1,8 @@
 { inputs, pkgs, self, ... }:
 
 let
+  pkgsUnstable = inputs.nixpkgs-unstable.legacyPackages."${pkgs.system}";
+
   customVim = with self; {
     toggle-checkbox-nvim = pkgs.vimUtils.buildVimPlugin {
       name = "toggle-checkbox-nvim";
@@ -73,7 +75,7 @@ in
       customVim.vim-heritage
       customVim.vim-textobj-xmlattr
       customVim.vim-zoom
-      vimPlugins.vim-astro
+      pkgsUnstable.vimPlugins.vim-astro
       vimPlugins.vim-visual-star-search
 
       {
@@ -84,14 +86,13 @@ in
         '';
       }
 
+      pkgsUnstable.vimPlugins.harpoon
+      pkgsUnstable.vimPlugins.refactoring-nvim
       vimPlugins.comment-nvim
       vimPlugins.dial-nvim
       vimPlugins.gitsigns-nvim
-      vimPlugins.harpoon
       vimPlugins.impatient-nvim
-      vimPlugins.lualine-nvim
       vimPlugins.nvim-web-devicons
-      vimPlugins.refactoring-nvim
       vimPlugins.rest-nvim
       vimPlugins.undotree
       vimPlugins.vim-easy-align
@@ -110,6 +111,8 @@ in
       vimPlugins.vim-tmux-navigator
       vimPlugins.vim-unimpaired
 
+      vimPlugins.lualine-nvim
+
       {
         plugin = vimPlugins.vim-sort-motion;
         type = "lua";
@@ -151,8 +154,8 @@ in
       vimPlugins.nvim-treesitter-textobjects
 
       # LSP, linting and formatting
-      vimPlugins.conform-nvim
-      vimPlugins.none-ls-nvim
+      pkgsUnstable.vimPlugins.conform-nvim
+      pkgsUnstable.vimPlugins.none-ls-nvim
       vimPlugins.lsp-status-nvim
       vimPlugins.nvim-lspconfig
 
@@ -212,7 +215,6 @@ in
       ansible-language-server
       gopls
       lua-language-server
-      nixd
       nodePackages.intelephense
       nodePackages."@astrojs/language-server"
       nodePackages."@tailwindcss/language-server"
@@ -225,6 +227,7 @@ in
       nodePackages.vue-language-server
       nodePackages.yaml-language-server
       phpactor
+      pkgsUnstable.nixd
       rnix-lsp
       terraform-ls