Ok so before you say I'm bad at looking at docs, I would like to say that the docs (https://nixos.org/manual/nix/stable/expressions/builtins.html) really do not make it clear what needs to have builtins (elemAt) and what doesn't (map)
diff --git a/src/home.nix b/src/home.nix
index f1c19df..806c755 100644
--- a/src/home.nix
+++ b/src/home.nix
@@ -13,7 +13,7 @@
             let 
                 callPackage = pkgs.newScope self;
             in map (f: {
-                name = elemAt (builtins.match "^(.*/)*(.*)\\.nix$" (toString f)) 1; 
+                name = builtins.elemAt (builtins.match "^(.*/)*(.*)\\.nix$" (toString f)) 1; 
                 value = callPackage (import f) { };
             }) packages
         )))