diff --git a/modules/matrix-homeserver/default.nix b/modules/matrix-homeserver/default.nix
index ee67cc5f69d1131e713b8aae33945c301c7f9ed6..00aa0db63fa09e2db6d9cf41ee29373b08d9e019 100644
--- a/modules/matrix-homeserver/default.nix
+++ b/modules/matrix-homeserver/default.nix
@@ -54,18 +54,17 @@ in {
 
     settings = mkOption {
       type = settingsFormat.type;
-      apply = recursiveUpdate cfg.defaultSettings;
       default = {};
       description = ''
         https://matrix-org.github.io/synapse/latest/usage/configuration/homeserver_sample_config.html
       '';
     };
 
-    defaultSettings = mkOption {
-      type = settingsFormat.type;
-      default = import ./settings.nix inputs;
+    recommendedSettings = mkOption {
+      type = types.bool;
+      default = false;
       description = ''
-        Default settings (i.e. *my* settings). Can be overwritten by setting them to '{}'.
+        Include recommended synapse settings, tuned for a small VPS instance with a few users (see 'recommended-settings.nix').
       '';
     };
 
@@ -189,14 +188,13 @@ in {
         assertion = !config.services.matrix-synapse.enable;
         message = "Cannot use services.matrix-synapse and queezle.matrix-homeserver at the same time.";
       }
+    ];
+
+    queezle.matrix-homeserver.settings = mkMerge [
+      (mkIf cfg.recommendedSettings (import ./recommended-settings.nix inputs))
       {
-        assertion = config.queezle.matrix-homeserver.settings ? max_upload_size;
-        message = "queezle.matrix-homeserver.settings.max_upload_size not set";
+        server_name = cfg.serverName;
       }
     ];
-
-    queezle.matrix-homeserver.settings = {
-      server_name = cfg.serverName;
-    };
   };
 }
diff --git a/modules/matrix-homeserver/postgresql.nix b/modules/matrix-homeserver/postgresql.nix
index 2fd2cfced9033679f6d4338c9eb6d4a6f4260440..6d2111d4640cc563b2228315f9d7e38baf9c0399 100644
--- a/modules/matrix-homeserver/postgresql.nix
+++ b/modules/matrix-homeserver/postgresql.nix
@@ -4,6 +4,7 @@ with lib;
 let
   cfg = config.queezle.matrix-homeserver;
 in {
+  # TODO dedicated enable
   config = mkIf cfg.enable {
     # postgresql database service
     services.postgresql = {
diff --git a/modules/matrix-homeserver/settings.nix b/modules/matrix-homeserver/recommended-settings.nix
similarity index 89%
rename from modules/matrix-homeserver/settings.nix
rename to modules/matrix-homeserver/recommended-settings.nix
index 2bdf726e38d9a92516ec6d2c574271deb4b6a013..3baab1bb9ead1888148b9126b2c4c5b6047b8959 100644
--- a/modules/matrix-homeserver/settings.nix
+++ b/modules/matrix-homeserver/recommended-settings.nix
@@ -16,9 +16,7 @@ in {
     global_factor = 4.0;
   };
 
-  # Set to default value because it needs to be configured on nginx
-  max_upload_size = "50M";
-
+  # Generate thumbnails matching the resolution requested by clients
   dynamic_thumbnails = true;
 
   url_preview_enabled = true;
@@ -44,14 +42,11 @@ in {
     "fec0::/10"
   ];
 
-  # TODO TURN
-
   enable_registration = true;
   registration_requires_token = true;
   bcrypt_rounds = 14; # Benchmarked to take >0.5s on an AMD Ryzen 9 5900X
 
-  # TODO Metrics
-
+  # Report anonymized usage statistics
   report_stats = false;
 
   trusted_key_servers = [
@@ -64,6 +59,4 @@ in {
       minimum_length = 16;
     };
   };
-
-  # TODO Push
 }