Index: src/routes/admin.js
===================================================================
--- src/routes/admin.js	(revision 6351545b08183045fe69f8d75db78b7e58951786)
+++ src/routes/admin.js	(revision a64f642ec61d1349904508f7af00155c05bd3c72)
@@ -8,10 +8,32 @@
 import db from '../config/database.js';
 import { renderPage } from '../middleware/render.js';
-import { requireGod } from '../middleware/auth.js';
+import { requireAuth } from '../middleware/auth.js';
 import { getTenancy } from '../services/SettingsService.js';
 
 const router = express.Router();
 
-router.get('/', requireGod, (req, res) => {
+router.get('/', requireAuth, (req, res) => {
+  const user = req.session.user;
+
+  // Niet-god: een artiest die een eigen site bezit krijgt een "Mijn PrutFolio"-
+  // dashboard, gescopet op z'n eigen site. Bezit 'ie geen site -> geen beheer.
+  if (user.role !== 'god') {
+    const mySite = db.prepare(
+      'SELECT * FROM sites WHERE owner_id = ? ORDER BY created_at ASC LIMIT 1'
+    ).get(user.id);
+    if (!mySite) return res.status(403).send('Geen beheer beschikbaar voor dit account.');
+
+    const mine = {
+      posts: db.prepare("SELECT COUNT(*) AS c FROM posts WHERE site_id = ?").get(mySite.id).c,
+      published: db.prepare("SELECT COUNT(*) AS c FROM posts WHERE site_id = ? AND status = 'published'").get(mySite.id).c,
+    };
+    return renderPage(req, res, 'pages/my-site', {
+      pageTitle: 'Mijn PrutFolio',
+      bodyClass: 'on-admin',
+      mySite,
+      mine,
+    });
+  }
+
   const tenancy = getTenancy();
 
