Index: src/routes/admin-sites.js
===================================================================
--- src/routes/admin-sites.js	(revision 8f2f97ce2ca4540506ee22910e99a093826a9555)
+++ src/routes/admin-sites.js	(revision d7746798ec30f65765731ccbef3852624ec58f96)
@@ -137,5 +137,5 @@
 }
 
-/** Geldige user-id voor owner-toewijzing, of null bij leeg/onbekend. */
+/** Valid user-id for owner assignment, or null if empty/unknown. */
 function validOwnerId(raw) {
   const id = (raw || '').toString().trim();
@@ -144,5 +144,5 @@
 }
 
-/** Geef een user admin-rechten op een site (idempotent upsert). */
+/** Grant a user admin rights on a site (idempotent upsert). */
 function grantSiteAdmin(siteId, userId) {
   db.prepare(`
@@ -152,5 +152,5 @@
 }
 
-/** Kandidaat-owners voor het owner-keuzeveld (god-only). */
+/** Candidate owners for the owner selector field (god-only). */
 function listOwnerCandidates() {
   return db.prepare('SELECT id, username, role FROM users ORDER BY username').all();
@@ -183,6 +183,6 @@
     bodyClass: 'on-admin',
     isNew: true,
-    // ?owner=<id> (vanaf de gebruikers-pagina: "geef deze user een Klonkt") wordt
-    // voorgeselecteerd; anders de aanmakende god.
+    // ?owner=<id> (from the users page: "give this user a Klonkt") is
+    // pre-selected; otherwise defaults to the creating god.
     site: { slug: '', owner_id: validOwnerId(req.query.owner) || req.session.user.id, ...siteEditableFields() },
     users: listOwnerCandidates(),
@@ -211,7 +211,7 @@
   const f = { ...siteEditableFields(), ...req.body };
 
-  // Owner: god mag de site aan een ANDERE gebruiker toewijzen — dit is de kern
-  // van hub-modus (elke gebruiker z'n eigen, zelf te beheren Klonkt). Leeg of
-  // ongeldig → de aanmakende god zelf.
+  // Owner: god may assign the site to a DIFFERENT user — this is the core of
+  // hub mode (each user their own self-managed Klonkt). Empty or invalid → the
+  // creating god themselves.
   const ownerId = validOwnerId(req.body.owner_id) || req.session.user.id;
 
@@ -242,6 +242,6 @@
   );
 
-  // De OWNER (niet per se de aanmaker) krijgt een site_members-admin-rij → zo komt
-  // 'ie door canAdminSite + de requireSiteManager-gates en beheert 'ie z'n site.
+  // The OWNER (not necessarily the creator) gets a site_members admin row → this
+  // lets them pass canAdminSite + requireSiteManager gates to manage their site.
   grantSiteAdmin(siteId, ownerId);
 
@@ -332,6 +332,6 @@
   );
 
-  // Owner (her)toewijzen — ALLEEN god. Een site-owner die z'n eigen site bewerkt
-  // kan de eigenaar niet wijzigen (het veld wordt voor niet-god ook niet getoond).
+  // (Re)assign owner — god ONLY. A site-owner editing their own site cannot
+  // change the owner (the field is not shown to non-god users either).
   if (req.session.user.role === 'god') {
     const newOwner = validOwnerId(req.body.owner_id);
@@ -345,7 +345,7 @@
 });
 
-// ==================== MAAK PRIMAIR ====================
-// God kiest welke site de primaire/hoofd-site is (de label-/bedrijfssite in hub;
-// in solo dé site). Precies één site is primair → eerst alles uit, dan deze aan.
+// ==================== MAKE PRIMARY ====================
+// God chooses which site is the primary/main site (the label/company site in hub;
+// in solo mode: the one site). Exactly one site is primary → clear all, then set this one.
 router.post('/:slug/make-primary', requireGod, (req, res) => {
   const site = db.prepare('SELECT id FROM sites WHERE slug = ?').get(req.params.slug);
