Index: src/services/ensurePrimarySite.js
===================================================================
--- src/services/ensurePrimarySite.js	(revision 9b851e76ec36009f3d5dcd9d5a2ad61982facd77)
+++ src/services/ensurePrimarySite.js	(revision 6d3e2c100bdd039fe8e36935dcbfc4a5ef8631d3)
@@ -2,13 +2,13 @@
 import db from '../config/database.js';
 
-// Een Klonkt-instance hoort ALTIJD een primaire site te hebben — die draagt de
-// identiteit (titel, thema, profiel) en is het ankerpunt in solo/hub/circle.
-// De register-flow maakt er al één aan, maar een via een script aangemaakte
-// beheerder (of een om wat voor reden dan ook lege sites-tabel) liet de
-// instance zonder site achter: geen instellingen, dashboard liep dood.
+// A Klonkt instance should ALWAYS have a primary site — it carries the identity
+// (title, theme, profile) and is the anchor point in solo/hub/circle mode.
+// The register flow already creates one, but an admin created via a script
+// (or an empty sites table for any reason) left the instance without a site:
+// no settings, dashboard would crash.
 //
-// Deze helper draait bij boot (en is idempotent): zodra er een beheerder is
-// maar nog geen enkele site, maakt 'ie een standaard-site aan, eigendom van de
-// eerste god/admin. Tenancy-onafhankelijk — geldt voor solo, hub én circle.
+// This helper runs at boot (and is idempotent): as soon as there is an admin
+// but no site yet, it creates a default site owned by the first god/admin.
+// Tenancy-agnostic — applies to solo, hub, and circle.
 
 function defaultTitle() {
@@ -20,5 +20,5 @@
       if (label) return label.charAt(0).toUpperCase() + label.slice(1);
     }
-  } catch { /* val terug op generiek */ }
+  } catch { /* fall back to generic */ }
   return 'Mijn site';
 }
@@ -26,13 +26,13 @@
 export function ensurePrimarySite() {
   const count = db.prepare('SELECT COUNT(*) AS c FROM sites').get().c;
-  if (count > 0) return null; // er is al een site — niets te doen
+  if (count > 0) return null; // a site already exists — nothing to do
 
   const owner = db.prepare(
     "SELECT id FROM users WHERE role IN ('god','admin') ORDER BY created_at LIMIT 1"
   ).get();
-  if (!owner) return null; // nog geen beheerder -> geen eigenaar, niets aanmaken
+  if (!owner) return null; // no admin yet -> no owner, nothing to create
 
   const siteId = uuid();
-  const slug = 'main'; // niet gereserveerd; in solo wordt de primaire site sowieso gepind
+  const slug = 'main'; // not reserved; in solo mode the primary site is always pinned anyway
   db.prepare(`
     INSERT INTO sites (
