Index: src/routes/linkbio.js
===================================================================
--- src/routes/linkbio.js	(revision 37edecd7c1a492799587f07cc44fb88fbd1567ee)
+++ src/routes/linkbio.js	(revision d7746798ec30f65765731ccbef3852624ec58f96)
@@ -1,12 +1,12 @@
 /**
- * Link-in-bio + klikstats (premium feature #6).
+ * Link-in-bio + click stats (premium feature #6).
  *
- *   GET /links          -> Linktree-achtige pagina met de profile_links van de site
- *   GET /links/go/:i     -> telt de klik (per url) en stuurt door naar de externe URL
+ *   GET /links          -> Linktree-style page with the site's profile_links
+ *   GET /links/go/:i     -> counts the click (per url) and redirects to the external URL
  *
- * Hergebruikt de bestaande sites.profile_links (JSON [{platform,url}]) + de
- * PLATFORMS-iconen/labels. Klikken landen in link_clicks (zie /admin/stats).
- * Open-redirect-veilig: /links/go/:i stuurt ALLEEN door naar een url die in de
- * eigen profile_links staat. Hub: via /user/:slug/links.
+ * Reuses the existing sites.profile_links (JSON [{platform,url}]) + the
+ * PLATFORMS icons/labels. Clicks are stored in link_clicks (see /admin/stats).
+ * Open-redirect safe: /links/go/:i ONLY redirects to a url present in the
+ * site's own profile_links. Hub: via /user/:slug/links.
  */
 
@@ -48,5 +48,5 @@
   if (!link || !link.url) return next();
   const url = String(link.url);
-  // Alleen externe http(s)- of mailto-links (geen open redirect / javascript:).
+  // Only external http(s) or mailto links (no open redirect / javascript:).
   if (!/^https?:\/\//i.test(url) && !/^mailto:/i.test(url)) return res.status(400).send('Bad link');
   try {
@@ -55,5 +55,5 @@
        ON CONFLICT(site_id, url) DO UPDATE SET clicks = clicks + 1, updated_at = CURRENT_TIMESTAMP`
     ).run(site.id, url);
-  } catch { /* telling mag de redirect nooit breken */ }
+  } catch { /* counting must never break the redirect */ }
   res.redirect(302, url);
 });
