Index: src/routes/admin-circle.js
===================================================================
--- src/routes/admin-circle.js	(revision 421c2d47017ae2891db2b8d62542cca09cf3c4ae)
+++ src/routes/admin-circle.js	(revision e579a9844cdcc6898157a46486534dc0b81b928f)
@@ -51,7 +51,12 @@
   const site = primarySite();
   if (!site) return res.redirect('/admin/circle?error=' + encodeURIComponent('Geen site gevonden'));
-  const url = (req.body.remote_url || '').toString().trim().replace(/\/+$/, '');
+  // Schema automatisch aanvullen: een kale domeinnaam → https://, een getypte
+  // http:// → https:// (federatie is bewust https-only, getekende feeds). Zo hoeft
+  // de gebruiker nooit zelf http(s):// te typen.
+  let url = (req.body.remote_url || '').toString().trim().replace(/\/+$/, '');
+  if (url && !/^[a-z]+:\/\//i.test(url)) url = 'https://' + url;
+  url = url.replace(/^http:\/\//i, 'https://');
   if (!/^https:\/\/[^\s/]+(\/[^\s]*)?$/i.test(url)) {
-    return res.redirect('/admin/circle?error=' + encodeURIComponent('Voer een geldige https-URL in'));
+    return res.redirect('/admin/circle?error=' + encodeURIComponent('Voer een geldig site-adres in (bv. voorbeeld.nl)'));
   }
   const label = (req.body.label || '').toString().slice(0, 80).trim() || null;
