Index: src/routes/account.js
===================================================================
--- src/routes/account.js	(revision e2c3d09c54bd06c4a04e4c72e4ff59aa9374b705)
+++ src/routes/account.js	(revision 746d98a771aa1e4a4241958d88582d516570cf4b)
@@ -14,4 +14,5 @@
 
 import express from 'express';
+import { listPlatforms, buildProfileLinks, parseProfileLinks } from '../services/PlatformIcons.js';
 import path from 'path';
 import fs from 'fs';
@@ -69,4 +70,9 @@
     pageTitle: 'Account',
     bodyClass: 'on-special',
+    // De profiellinks staan sinds 30-9 hier, bij je profiel, en niet meer op de
+    // Appearance-pagina (Robins verzoek).
+    pageJs: 'profile-links',
+    platforms: listPlatforms(),
+    profileLinks: editableSite ? parseProfileLinks(editableSite.profile_links) : [],
     account,
     hasPassword,
@@ -106,5 +112,7 @@
 function ownedSite(user) {
   if (!user) return null;
-  let site = db.prepare('SELECT id, title, tagline, slug, owner_id, profile_photo FROM sites WHERE owner_id = ? ORDER BY created_at LIMIT 1').get(user.id);
+  // profile_links hoort erbij sinds de links hier staan (30-9). Zonder die kolom
+  // toonde de pagina nul links, en wiste opslaan ze dus.
+  let site = db.prepare('SELECT id, title, tagline, slug, owner_id, profile_photo, profile_links FROM sites WHERE owner_id = ? ORDER BY created_at LIMIT 1').get(user.id);
   if (!site && user.role === 'god') {
     site = getPrimarySite(); // primary/main site as fallback
@@ -128,4 +136,19 @@
 });
 
+// ==================== PROFIELLINKS ====================
+// Sinds 30-9 hier en niet meer op Appearance: ze horen bij je profiel, naast je
+// naam, bio en foto. Dezelfde rechten als de site-naam hierboven: de eigenaar
+// van de site, of god.
+router.post('/links', requireAuth, (req, res) => {
+  const site = ownedSite(req.session.user);
+  if (!site) return res.redirect('/account?error=' + encodeURIComponent('Geen site om te bewerken.'));
+  if (site.owner_id !== req.session.user.id && req.session.user.role !== 'god') {
+    return res.redirect('/account?error=' + encodeURIComponent('Geen rechten om deze site te bewerken.'));
+  }
+  db.prepare('UPDATE sites SET profile_links = ?, updated_at = CURRENT_TIMESTAMP WHERE id = ?')
+    .run(buildProfileLinks(req.body), site.id);
+  res.redirect('/account?success=' + encodeURIComponent('Links bijgewerkt') + '#links');
+});
+
 // ==================== UPDATE BIO ====================
 const RESERVED_USERNAMES = new Set(['admin', 'account', 'auth', 'login', 'register', 'logout', 'user', 'users', 'api', 'fediverse', 'posts', 'media', 'audio', 'assets', 'cirkel', 'authorize_interaction']);
