diff --git a/shells/default.nix b/shells/default.nix
index e03acd76..1e5dc324 100644
--- a/shells/default.nix
+++ b/shells/default.nix
@@ -7,6 +7,8 @@ with pkgs; {
   gnu = callPackage ./gnu.nix { };
   gnome = callPackage ./gnome.nix { };
   nix = callPackage ./nix.nix { };
+  nodejsStable = callPackage ./nodejs.nix { };
+  nodejsLatest = callPackage ./nodejs.nix { nodejs = nodejs_latest; };
   go = callPackage ./go.nix { };
   guile = callPackage ./guile.nix { };
   guile2 = callPackage ./guile.nix { guile = guile_2_2; };
diff --git a/shells/nodejs.nix b/shells/nodejs.nix
new file mode 100644
index 00000000..1788d3b7
--- /dev/null
+++ b/shells/nodejs.nix
@@ -0,0 +1,11 @@
+# Bundling everything for my fullstack (in JS) webdev needs.
+{ mkShell, nodejs, bun, esbuild, pnpm }:
+
+mkShell {
+  packages = [
+    nodejs
+    bun
+    esbuild
+    pnpm
+  ];
+}