diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 000000000..076a8bb0a
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,37 @@
+[submodule "auth/thirdparty/sentry-dart"]
+	path = auth/thirdparty/sentry-dart
+	url = https://github.com/ente-io/sentry-dart.git
+	branch = sentry_flutter_ente
+[submodule "auth/flutter"]
+	path = auth/flutter
+	url = https://github.com/flutter/flutter.git
+	branch = stable
+[submodule "auth/assets/simple-icons"]
+	path = auth/assets/simple-icons
+	url = https://github.com/simple-icons/simple-icons.git
+[submodule "desktop/bada-frame"]
+	path = desktop/ui
+	url = https://github.com/ente-io/bada-frame
+	branch = release
+[submodule "desktop/thirdparty/next-electron-server"]
+	path = desktop/thirdparty/next-electron-server
+	url = https://github.com/ente-io/next-electron-server.git
+	branch = desktop
+[submodule "mobile/thirdparty/flutter"]
+	path = mobile/thirdparty/flutter
+	url = https://github.com/flutter/flutter.git
+	branch = stable
+[submodule "mobile/plugins/clip_ggml"]
+	path = mobile/plugins/clip_ggml
+	url = https://github.com/ente-io/clip-ggml.git
+[submodule "mobile/thirdparty/isar"]
+	path = mobile/thirdparty/isar
+	url = https://github.com/isar/isar
+[submodule "web/apps/photos/thirdparty/ffmpeg-wasm"]
+	path = web/apps/photos/thirdparty/ffmpeg-wasm
+	url = https://github.com/abhinavkgrd/ffmpeg.wasm.git
+	branch = master
+[submodule "web/apps/photos/thirdparty/photoswipe"]
+	path = web/apps/photos/thirdparty/photoswipe
+	url = https://github.com/ente-io/PhotoSwipe.git
+	branch = single-thread
diff --git a/auth/.gitmodules b/auth/.gitmodules
deleted file mode 100644
index 73fa8ce3d..000000000
--- a/auth/.gitmodules
+++ /dev/null
@@ -1,11 +0,0 @@
-[submodule "thirdparty/sentry-dart"]
-	path = thirdparty/sentry-dart
-	url = https://github.com/ente-io/sentry-dart.git
-	branch = sentry_flutter_ente
-[submodule "flutter"]
-	path = flutter
-	url = https://github.com/flutter/flutter.git
-	branch = stable
-[submodule "assets/simple-icons"]
-	path = assets/simple-icons
-	url = https://github.com/simple-icons/simple-icons.git
diff --git a/desktop/.gitmodules b/desktop/.gitmodules
deleted file mode 100644
index 153abdde5..000000000
--- a/desktop/.gitmodules
+++ /dev/null
@@ -1,8 +0,0 @@
-[submodule "bada-frame"]
-	path = desktop/ui
-	url = https://github.com/ente-io/bada-frame
-	branch = release
-[submodule "thirdparty/next-electron-server"]
-	path = desktop/thirdparty/next-electron-server
-	url = https://github.com/ente-io/next-electron-server.git
-	branch = desktop
diff --git a/mobile/.gitmodules b/mobile/.gitmodules
deleted file mode 100644
index 5fbafd7d9..000000000
--- a/mobile/.gitmodules
+++ /dev/null
@@ -1,10 +0,0 @@
-[submodule "thirdparty/flutter"]
-	path = thirdparty/flutter
-	url = https://github.com/flutter/flutter.git
-	branch = stable
-[submodule "plugins/clip_ggml"]
-	path = plugins/clip_ggml
-	url = https://github.com/ente-io/clip-ggml.git
-[submodule "thirdparty/isar"]
-	path = thirdparty/isar
-	url = https://github.com/isar/isar
diff --git a/web/.gitmodules b/web/.gitmodules
deleted file mode 100644
index c83980baf..000000000
--- a/web/.gitmodules
+++ /dev/null
@@ -1,8 +0,0 @@
-[submodule "apps/photos/thirdparty/ffmpeg-wasm"]
-	path = apps/photos/thirdparty/ffmpeg-wasm
-	url = https://github.com/abhinavkgrd/ffmpeg.wasm.git
-    branch = master 
-[submodule "apps/photos/thirdparty/photoswipe"]
-	path = apps/photos/thirdparty/photoswipe
-	url = https://github.com/ente-io/PhotoSwipe.git
-	branch = single-thread
\ No newline at end of file