diff --git a/apps/update-sources/src/node-modules.ts b/apps/update-sources/src/node-modules.ts
index e676b6f3..8f8eb6e7 100644
--- a/apps/update-sources/src/node-modules.ts
+++ b/apps/update-sources/src/node-modules.ts
@@ -17,7 +17,17 @@ const updatePackageJson = async(workspaceDir: string, updates: object) => {
     const outdated = JSON.parse(npmRun(['outdated', '--json'], workspaceDir));
 
     const updateDeps = (deps: string) => {
-        Object.keys(currentPackageJson[deps]).forEach((dep) => {
+        Object.keys(currentPackageJson[deps]).forEach(async(dep) => {
+            if (dep === 'astal') {
+                const latestCommit = JSON.parse(spawnSync('curl',
+                    ['-s', 'https://api.github.com/repos/Aylur/astal/commits/main'],
+                    { shell: true }).stdout.toString()).sha;
+
+                currentPackageJson[deps][dep] = `https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?${latestCommit}`;
+
+                return;
+            }
+
             if (PINS.has(dep)) {
                 currentPackageJson[deps][dep] = PINS.get(dep);
 
diff --git a/modules/ags/config/default.nix b/modules/ags/config/default.nix
index 2b6ef420..818acdca 100644
--- a/modules/ags/config/default.nix
+++ b/modules/ags/config/default.nix
@@ -1,3 +1,3 @@
 {
-  npmDepsHash = "sha256-wnii50pin2kJLcVtSOIBKvoK/5afoyd4j+IHz2DqjhA=";
+  npmDepsHash = "sha256-gXWuEQ0QY4NCrgH/9cvAe8i9FOGVRz8dlBEwM5FCCaY=";
 }
diff --git a/modules/ags/config/package-lock.json b/modules/ags/config/package-lock.json
index ee4c2775..c3e42b44 100644
--- a/modules/ags/config/package-lock.json
+++ b/modules/ags/config/package-lock.json
@@ -10,7 +10,7 @@
             "dependencies": {
                 "@eslint/js": "9.22.0",
                 "@stylistic/eslint-plugin": "4.2.0",
-                "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?main",
+                "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?69efb4c91e590adcb5a3d8938454f987982e3891",
                 "eslint": "9.22.0",
                 "eslint-plugin-jsdoc": "50.6.6",
                 "fzf": "0.5.2",
@@ -583,7 +583,7 @@
             "license": "Python-2.0"
         },
         "node_modules/astal": {
-            "resolved": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?main",
+            "resolved": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?69efb4c91e590adcb5a3d8938454f987982e3891",
             "integrity": "sha512-XoEDCYgw/ZpmXuss8OtAt85giNklhwtRGpRf2DGrfV0Ig7N6+0u43dLhcn79CJDOTf/AP6MEAH/S/plhcjejbg==",
             "license": "LGPL-2.1"
         },
diff --git a/modules/ags/config/package.json b/modules/ags/config/package.json
index a4490a8c..7727614b 100644
--- a/modules/ags/config/package.json
+++ b/modules/ags/config/package.json
@@ -3,7 +3,7 @@
     "version": "0.0.0",
     "main": "app.ts",
     "dependencies": {
-        "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?main",
+        "astal": "https://gitpkg.vercel.app/Aylur/astal/lang/gjs/src?69efb4c91e590adcb5a3d8938454f987982e3891",
         "@eslint/js": "9.22.0",
         "@stylistic/eslint-plugin": "4.2.0",
         "eslint": "9.22.0",