Index: src/middleware/render.js
===================================================================
--- src/middleware/render.js	(revision a64f642ec61d1349904508f7af00155c05bd3c72)
+++ src/middleware/render.js	(revision ab544fd29596ce8734fe93bc1d317872adc0b665)
@@ -43,9 +43,17 @@
     db.prepare('SELECT 1 FROM sites WHERE owner_id = ? LIMIT 1').get(_u.id));
 
+  // De avatar van de SITE-EIGENAAR (niet de kijker!) — voor de PrutFolio-kop,
+  // zodat de artiest z'n eigen account-foto als sitefoto kan gebruiken.
+  const _site = data.site || res.locals.site || null;
+  const siteOwnerAvatar = (_site && _site.owner_id)
+    ? (db.prepare('SELECT avatar_url FROM users WHERE id = ?').get(_site.owner_id)?.avatar_url || null)
+    : null;
+
   // Common locals
   const locals = {
     user: _u,
     userOwnsSite,
-    site: data.site || res.locals.site || null,
+    siteOwnerAvatar,
+    site: _site,
     audioTracks: data.audioTracks || res.locals.audioTracks || [],
     siteUrlBase: res.locals.siteUrlBase || '',
Index: src/routes/hub.js
===================================================================
--- src/routes/hub.js	(revision a64f642ec61d1349904508f7af00155c05bd3c72)
+++ src/routes/hub.js	(revision ab544fd29596ce8734fe93bc1d317872adc0b665)
@@ -38,6 +38,8 @@
   const artists = db.prepare(`
     SELECT s.slug, s.title, s.tagline, s.profile_photo, s.accent,
+           u.avatar_url AS owner_avatar,
            (SELECT COUNT(*) FROM posts WHERE site_id = s.id AND status = 'published') AS post_count
     FROM sites s
+    LEFT JOIN users u ON u.id = s.owner_id
     ORDER BY s.created_at ASC
   `).all();
Index: src/views/pages/hub-home.ejs
===================================================================
--- src/views/pages/hub-home.ejs	(revision a64f642ec61d1349904508f7af00155c05bd3c72)
+++ src/views/pages/hub-home.ejs	(revision ab544fd29596ce8734fe93bc1d317872adc0b665)
@@ -38,6 +38,7 @@
         <% artists.forEach(function(a){ %>
           <a class="roster-card" href="/user/<%= a.slug %>">
-            <span class="roster-avatar"<% if (a.profile_photo) { %> style="background-image:url('<%= a.profile_photo %>')"<% } else { %> style="background:<%= a.accent || 'var(--accent)' %>;color:#fff"<% } %>>
-              <% if (!a.profile_photo) { %><%= (a.title || a.slug).charAt(0).toUpperCase() %><% } %>
+            <% var _ava = a.profile_photo || a.owner_avatar; %>
+            <span class="roster-avatar"<% if (_ava) { %> style="background-image:url('<%= _ava %>')"<% } else { %> style="background:<%= a.accent || 'var(--accent)' %>;color:#fff"<% } %>>
+              <% if (!_ava) { %><%= (a.title || a.slug).charAt(0).toUpperCase() %><% } %>
             </span>
             <span class="roster-name"><%= a.title %></span>
Index: src/views/partials/profile-header.ejs
===================================================================
--- src/views/partials/profile-header.ejs	(revision a64f642ec61d1349904508f7af00155c05bd3c72)
+++ src/views/partials/profile-header.ejs	(revision ab544fd29596ce8734fe93bc1d317872adc0b665)
@@ -37,8 +37,8 @@
        hx-push-url="<%= (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '' %>/"
        hx-indicator="#pcms-loading" aria-label="Home">
-      <% if (typeof user !== 'undefined' && user && user.avatar_url) { %>
-        <img src="<%= user.avatar_url %>" alt="">
-      <% } else if (site.profile_photo) { %>
+      <% if (site.profile_photo) { %>
         <img src="<%= site.profile_photo %>" alt="">
+      <% } else if (typeof siteOwnerAvatar !== 'undefined' && siteOwnerAvatar) { %>
+        <img src="<%= siteOwnerAvatar %>" alt="">
       <% } else if (site.enable_audio_player) { %>
         <span class="profile-photo-fallback profile-photo-fallback--music" aria-hidden="true">
