diff --git a/apps/attestation-manager/.swcrc b/.swcrc
similarity index 88%
rename from apps/attestation-manager/.swcrc
rename to .swcrc
index f0831e454c02bece75b8b8b60ac59891a48fe7f2..dc58ed6c9fe390d18fd42afb22a7f2bb2ff09064 100644
--- a/apps/attestation-manager/.swcrc
+++ b/.swcrc
@@ -16,5 +16,5 @@
     "type": "es6"
   },
   "sourceMaps": true,
-  "exclude": [".spec.ts", ".e2e-spec.ts"]
+  "exclude": ["__tests__/.*.ts"]
 }
diff --git a/apps/attestation-manager/jest.config.js b/apps/attestation-manager/jest.config.js
index 1b2ee91fa88cada4d31ad3c2528291214de4aebe..d8d3f8cf132820cc2bf0c1e673364abeff857a4a 100644
--- a/apps/attestation-manager/jest.config.js
+++ b/apps/attestation-manager/jest.config.js
@@ -1,9 +1,8 @@
-/** @type {import('jest').Config} */
-
 import { readFileSync } from 'node:fs';
 
-const swcConfig = JSON.parse(readFileSync('./.swcrc', 'utf8'));
+const swcConfig = JSON.parse(readFileSync('../../.swcrc', 'utf8'));
 
+/** @type {import('jest').Config} */
 export default {
   moduleFileExtensions: ['js', 'ts'],
   testEnvironment: 'node',
diff --git a/apps/attestation-manager/nest-cli.json b/apps/attestation-manager/nest-cli.json
index 681ff0f833b6991dee64ef7d0a2c6d6c61caa77a..89bab11eefb1decc22ab4f9069be686e9b590de8 100644
--- a/apps/attestation-manager/nest-cli.json
+++ b/apps/attestation-manager/nest-cli.json
@@ -1,10 +1,13 @@
 {
+  "$schema": "https://json.schemastore.org/nest-cli",
   "collection": "@nestjs/schematics",
   "sourceRoot": "src",
   "compilerOptions": {
-    "builder": "swc",
-    "typeCheck": true,
-
-    "assets": ["**/*.prisma"]
+    "builder": {
+      "type": "swc",
+      "options": {
+        "swcrcPath": "../../.swcrc"
+      }
+    }
   }
 }
diff --git a/apps/attestation-manager/tsconfig.build.json b/apps/attestation-manager/tsconfig.build.json
index b7dacb2abdea4b9e891f9c09da23f3f788628561..3e5ab438230b6cbd30a5825fc562c485a89ff95d 100644
--- a/apps/attestation-manager/tsconfig.build.json
+++ b/apps/attestation-manager/tsconfig.build.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.build.json",
   "compilerOptions": {
-    "removeComments": false,
-    "declaration": true,
-    "sourceMap": true,
-
-    "incremental": true,
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/attestation-manager/tsconfig.production.json b/apps/attestation-manager/tsconfig.production.json
index 0f476e0e42f3cedfb4b8d2b22b48d2d1ce28df0f..45f85dfe5daf11a59e2fac464fa15940a2f50200 100644
--- a/apps/attestation-manager/tsconfig.production.json
+++ b/apps/attestation-manager/tsconfig.production.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.production.json",
   "compilerOptions": {
-    "composite": false,
-    "removeComments": true,
-    "declaration": false,
-    "sourceMap": false,
-
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/connection-manager/.swcrc b/apps/connection-manager/.swcrc
deleted file mode 100644
index f0831e454c02bece75b8b8b60ac59891a48fe7f2..0000000000000000000000000000000000000000
--- a/apps/connection-manager/.swcrc
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "jsc": {
-    "preserveAllComments": true,
-    "parser": {
-      "syntax": "typescript",
-      "tsx": false,
-      "decorators": true
-    },
-    "transform": {
-      "legacyDecorator": true,
-      "decoratorMetadata": true
-    },
-    "target": "es2022"
-  },
-  "module": {
-    "type": "es6"
-  },
-  "sourceMaps": true,
-  "exclude": [".spec.ts", ".e2e-spec.ts"]
-}
diff --git a/apps/connection-manager/jest.config.js b/apps/connection-manager/jest.config.js
index 1b2ee91fa88cada4d31ad3c2528291214de4aebe..d8d3f8cf132820cc2bf0c1e673364abeff857a4a 100644
--- a/apps/connection-manager/jest.config.js
+++ b/apps/connection-manager/jest.config.js
@@ -1,9 +1,8 @@
-/** @type {import('jest').Config} */
-
 import { readFileSync } from 'node:fs';
 
-const swcConfig = JSON.parse(readFileSync('./.swcrc', 'utf8'));
+const swcConfig = JSON.parse(readFileSync('../../.swcrc', 'utf8'));
 
+/** @type {import('jest').Config} */
 export default {
   moduleFileExtensions: ['js', 'ts'],
   testEnvironment: 'node',
diff --git a/apps/connection-manager/nest-cli.json b/apps/connection-manager/nest-cli.json
index 681ff0f833b6991dee64ef7d0a2c6d6c61caa77a..89bab11eefb1decc22ab4f9069be686e9b590de8 100644
--- a/apps/connection-manager/nest-cli.json
+++ b/apps/connection-manager/nest-cli.json
@@ -1,10 +1,13 @@
 {
+  "$schema": "https://json.schemastore.org/nest-cli",
   "collection": "@nestjs/schematics",
   "sourceRoot": "src",
   "compilerOptions": {
-    "builder": "swc",
-    "typeCheck": true,
-
-    "assets": ["**/*.prisma"]
+    "builder": {
+      "type": "swc",
+      "options": {
+        "swcrcPath": "../../.swcrc"
+      }
+    }
   }
 }
diff --git a/apps/connection-manager/tsconfig.build.json b/apps/connection-manager/tsconfig.build.json
index b7dacb2abdea4b9e891f9c09da23f3f788628561..3e5ab438230b6cbd30a5825fc562c485a89ff95d 100644
--- a/apps/connection-manager/tsconfig.build.json
+++ b/apps/connection-manager/tsconfig.build.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.build.json",
   "compilerOptions": {
-    "removeComments": false,
-    "declaration": true,
-    "sourceMap": true,
-
-    "incremental": true,
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/connection-manager/tsconfig.production.json b/apps/connection-manager/tsconfig.production.json
index 0f476e0e42f3cedfb4b8d2b22b48d2d1ce28df0f..a18350c45ae9d4a307b8681a66b85f14f0aed221 100644
--- a/apps/connection-manager/tsconfig.production.json
+++ b/apps/connection-manager/tsconfig.production.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.production.json",
   "compilerOptions": {
-    "composite": false,
-    "removeComments": true,
-    "declaration": false,
-    "sourceMap": false,
-
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test" ,"**/dist", "**/*spec.ts"]
 }
diff --git a/apps/proof-manager/.swcrc b/apps/proof-manager/.swcrc
deleted file mode 100644
index f0831e454c02bece75b8b8b60ac59891a48fe7f2..0000000000000000000000000000000000000000
--- a/apps/proof-manager/.swcrc
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "jsc": {
-    "preserveAllComments": true,
-    "parser": {
-      "syntax": "typescript",
-      "tsx": false,
-      "decorators": true
-    },
-    "transform": {
-      "legacyDecorator": true,
-      "decoratorMetadata": true
-    },
-    "target": "es2022"
-  },
-  "module": {
-    "type": "es6"
-  },
-  "sourceMaps": true,
-  "exclude": [".spec.ts", ".e2e-spec.ts"]
-}
diff --git a/apps/proof-manager/jest.config.js b/apps/proof-manager/jest.config.js
index 1b2ee91fa88cada4d31ad3c2528291214de4aebe..d8d3f8cf132820cc2bf0c1e673364abeff857a4a 100644
--- a/apps/proof-manager/jest.config.js
+++ b/apps/proof-manager/jest.config.js
@@ -1,9 +1,8 @@
-/** @type {import('jest').Config} */
-
 import { readFileSync } from 'node:fs';
 
-const swcConfig = JSON.parse(readFileSync('./.swcrc', 'utf8'));
+const swcConfig = JSON.parse(readFileSync('../../.swcrc', 'utf8'));
 
+/** @type {import('jest').Config} */
 export default {
   moduleFileExtensions: ['js', 'ts'],
   testEnvironment: 'node',
diff --git a/apps/proof-manager/nest-cli.json b/apps/proof-manager/nest-cli.json
index 681ff0f833b6991dee64ef7d0a2c6d6c61caa77a..89bab11eefb1decc22ab4f9069be686e9b590de8 100644
--- a/apps/proof-manager/nest-cli.json
+++ b/apps/proof-manager/nest-cli.json
@@ -1,10 +1,13 @@
 {
+  "$schema": "https://json.schemastore.org/nest-cli",
   "collection": "@nestjs/schematics",
   "sourceRoot": "src",
   "compilerOptions": {
-    "builder": "swc",
-    "typeCheck": true,
-
-    "assets": ["**/*.prisma"]
+    "builder": {
+      "type": "swc",
+      "options": {
+        "swcrcPath": "../../.swcrc"
+      }
+    }
   }
 }
diff --git a/apps/proof-manager/tsconfig.build.json b/apps/proof-manager/tsconfig.build.json
index 64f86c6bd2bb30e3d22e752295eb7c7923fc191e..3e5ab438230b6cbd30a5825fc562c485a89ff95d 100644
--- a/apps/proof-manager/tsconfig.build.json
+++ b/apps/proof-manager/tsconfig.build.json
@@ -1,4 +1,9 @@
 {
-  "extends": "./tsconfig.json",
-  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
+  "extends": "../../tsconfig.build.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "outDir": "./dist",
+    "rootDir": "./src"
+  },
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/proof-manager/tsconfig.production.json b/apps/proof-manager/tsconfig.production.json
index 0f476e0e42f3cedfb4b8d2b22b48d2d1ce28df0f..45f85dfe5daf11a59e2fac464fa15940a2f50200 100644
--- a/apps/proof-manager/tsconfig.production.json
+++ b/apps/proof-manager/tsconfig.production.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.production.json",
   "compilerOptions": {
-    "composite": false,
-    "removeComments": true,
-    "declaration": false,
-    "sourceMap": false,
-
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/shared/.swcrc b/apps/shared/.swcrc
deleted file mode 100644
index f0831e454c02bece75b8b8b60ac59891a48fe7f2..0000000000000000000000000000000000000000
--- a/apps/shared/.swcrc
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "jsc": {
-    "preserveAllComments": true,
-    "parser": {
-      "syntax": "typescript",
-      "tsx": false,
-      "decorators": true
-    },
-    "transform": {
-      "legacyDecorator": true,
-      "decoratorMetadata": true
-    },
-    "target": "es2022"
-  },
-  "module": {
-    "type": "es6"
-  },
-  "sourceMaps": true,
-  "exclude": [".spec.ts", ".e2e-spec.ts"]
-}
diff --git a/apps/shared/jest.config.js b/apps/shared/jest.config.js
index 1b2ee91fa88cada4d31ad3c2528291214de4aebe..d8d3f8cf132820cc2bf0c1e673364abeff857a4a 100644
--- a/apps/shared/jest.config.js
+++ b/apps/shared/jest.config.js
@@ -1,9 +1,8 @@
-/** @type {import('jest').Config} */
-
 import { readFileSync } from 'node:fs';
 
-const swcConfig = JSON.parse(readFileSync('./.swcrc', 'utf8'));
+const swcConfig = JSON.parse(readFileSync('../../.swcrc', 'utf8'));
 
+/** @type {import('jest').Config} */
 export default {
   moduleFileExtensions: ['js', 'ts'],
   testEnvironment: 'node',
diff --git a/apps/shared/nest-cli.json b/apps/shared/nest-cli.json
index 0a947a58e97e43e99b3e3464b02179459ac759c7..89bab11eefb1decc22ab4f9069be686e9b590de8 100644
--- a/apps/shared/nest-cli.json
+++ b/apps/shared/nest-cli.json
@@ -1,8 +1,13 @@
 {
+  "$schema": "https://json.schemastore.org/nest-cli",
   "collection": "@nestjs/schematics",
   "sourceRoot": "src",
   "compilerOptions": {
-    "builder": "swc",
-    "typeCheck": true
+    "builder": {
+      "type": "swc",
+      "options": {
+        "swcrcPath": "../../.swcrc"
+      }
+    }
   }
 }
diff --git a/apps/shared/tsconfig.build.json b/apps/shared/tsconfig.build.json
index b7dacb2abdea4b9e891f9c09da23f3f788628561..3e5ab438230b6cbd30a5825fc562c485a89ff95d 100644
--- a/apps/shared/tsconfig.build.json
+++ b/apps/shared/tsconfig.build.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.build.json",
   "compilerOptions": {
-    "removeComments": false,
-    "declaration": true,
-    "sourceMap": true,
-
-    "incremental": true,
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/shared/tsconfig.production.json b/apps/shared/tsconfig.production.json
index 0f476e0e42f3cedfb4b8d2b22b48d2d1ce28df0f..45f85dfe5daf11a59e2fac464fa15940a2f50200 100644
--- a/apps/shared/tsconfig.production.json
+++ b/apps/shared/tsconfig.production.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.production.json",
   "compilerOptions": {
-    "composite": false,
-    "removeComments": true,
-    "declaration": false,
-    "sourceMap": false,
-
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/ssi-abstraction/.swcrc b/apps/ssi-abstraction/.swcrc
deleted file mode 100644
index f0831e454c02bece75b8b8b60ac59891a48fe7f2..0000000000000000000000000000000000000000
--- a/apps/ssi-abstraction/.swcrc
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-  "jsc": {
-    "preserveAllComments": true,
-    "parser": {
-      "syntax": "typescript",
-      "tsx": false,
-      "decorators": true
-    },
-    "transform": {
-      "legacyDecorator": true,
-      "decoratorMetadata": true
-    },
-    "target": "es2022"
-  },
-  "module": {
-    "type": "es6"
-  },
-  "sourceMaps": true,
-  "exclude": [".spec.ts", ".e2e-spec.ts"]
-}
diff --git a/apps/ssi-abstraction/jest.config.js b/apps/ssi-abstraction/jest.config.js
index 1b2ee91fa88cada4d31ad3c2528291214de4aebe..d8d3f8cf132820cc2bf0c1e673364abeff857a4a 100644
--- a/apps/ssi-abstraction/jest.config.js
+++ b/apps/ssi-abstraction/jest.config.js
@@ -1,9 +1,8 @@
-/** @type {import('jest').Config} */
-
 import { readFileSync } from 'node:fs';
 
-const swcConfig = JSON.parse(readFileSync('./.swcrc', 'utf8'));
+const swcConfig = JSON.parse(readFileSync('../../.swcrc', 'utf8'));
 
+/** @type {import('jest').Config} */
 export default {
   moduleFileExtensions: ['js', 'ts'],
   testEnvironment: 'node',
diff --git a/apps/ssi-abstraction/nest-cli.json b/apps/ssi-abstraction/nest-cli.json
index 0a947a58e97e43e99b3e3464b02179459ac759c7..89bab11eefb1decc22ab4f9069be686e9b590de8 100644
--- a/apps/ssi-abstraction/nest-cli.json
+++ b/apps/ssi-abstraction/nest-cli.json
@@ -1,8 +1,13 @@
 {
+  "$schema": "https://json.schemastore.org/nest-cli",
   "collection": "@nestjs/schematics",
   "sourceRoot": "src",
   "compilerOptions": {
-    "builder": "swc",
-    "typeCheck": true
+    "builder": {
+      "type": "swc",
+      "options": {
+        "swcrcPath": "../../.swcrc"
+      }
+    }
   }
 }
diff --git a/apps/ssi-abstraction/tsconfig.build.json b/apps/ssi-abstraction/tsconfig.build.json
index b7dacb2abdea4b9e891f9c09da23f3f788628561..3e5ab438230b6cbd30a5825fc562c485a89ff95d 100644
--- a/apps/ssi-abstraction/tsconfig.build.json
+++ b/apps/ssi-abstraction/tsconfig.build.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.build.json",
   "compilerOptions": {
-    "removeComments": false,
-    "declaration": true,
-    "sourceMap": true,
-
-    "incremental": true,
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/apps/ssi-abstraction/tsconfig.production.json b/apps/ssi-abstraction/tsconfig.production.json
index 0f476e0e42f3cedfb4b8d2b22b48d2d1ce28df0f..45f85dfe5daf11a59e2fac464fa15940a2f50200 100644
--- a/apps/ssi-abstraction/tsconfig.production.json
+++ b/apps/ssi-abstraction/tsconfig.production.json
@@ -1,14 +1,9 @@
 {
-  "extends": "./tsconfig.json",
+  "extends": "../../tsconfig.production.json",
   "compilerOptions": {
-    "composite": false,
-    "removeComments": true,
-    "declaration": false,
-    "sourceMap": false,
-
     "baseUrl": ".",
     "outDir": "./dist",
     "rootDir": "./src"
   },
-  "exclude": ["node_modules", "dist", "**/*spec.ts"]
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
 }
diff --git a/package.json b/package.json
index 973e734dd3f6f350c54329a7daa02abc2dc76581..2c3442e32c9681b7bafd6e9ba66b17ca409cbe83 100644
--- a/package.json
+++ b/package.json
@@ -26,7 +26,7 @@
     "eslint-import-resolver-typescript": "^3.6.1",
     "eslint-plugin-import": "^2.29.0",
     "eslint-plugin-prettier": "^5.0.1",
-    "eslint-plugin-workspaces": "^0.9.0",
+    "eslint-plugin-workspaces": "^0.10.0",
     "husky": "^8.0.0",
     "lint-staged": "^15.1.0",
     "prettier": "^3.1.0"
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 33d3924ae78ff9ac06d26d5085e7ab170bceb11f..bbea83af8011fab14e49d30b49dbe690f6473d30 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -9,10 +9,10 @@ importers:
   .:
     devDependencies:
       '@commitlint/cli':
-        specifier: ^18.4.3
+        specifier: ^18.4.2
         version: 18.4.3(typescript@5.3.2)
       '@commitlint/config-conventional':
-        specifier: ^18.4.3
+        specifier: ^18.4.2
         version: 18.4.3
       '@typescript-eslint/eslint-plugin':
         specifier: ^6.12.0
diff --git a/tsconfig.build.json b/tsconfig.build.json
new file mode 100644
index 0000000000000000000000000000000000000000..8df0a4a5207fda297f984f04062e416893de7b9a
--- /dev/null
+++ b/tsconfig.build.json
@@ -0,0 +1,10 @@
+{
+  "extends": "./tsconfig.json",
+  "compilerOptions": {
+    "removeComments": false,
+    "declaration": true,
+    "sourceMap": true,
+    "incremental": true
+  },
+  "exclude": ["node_modules", "**/test", "**/dist", "**/__tests__", "**/*.spec.ts"]
+}
diff --git a/tsconfig.production.json b/tsconfig.production.json
new file mode 100644
index 0000000000000000000000000000000000000000..8cd30faa7e0a16bf41742b228cff2316b0bae9ef
--- /dev/null
+++ b/tsconfig.production.json
@@ -0,0 +1,9 @@
+{
+  "extends": "./tsconfig.build.json",
+  "compilerOptions": {
+    "composite": false,
+    "removeComments": true,
+    "declaration": false,
+    "sourceMap": false
+  }
+}