Index: src/routes/admin.js
===================================================================
--- src/routes/admin.js	(revision b50a885cfa81ab029ecb51fba763a6f18713fa5f)
+++ src/routes/admin.js	(revision f45fc82a7312244bd74ee11bc83e702369ba2f09)
@@ -12,4 +12,22 @@
 
 const router = express.Router();
+
+// Recente posts van één site, CONCEPTEN BOVENAAN, met mode-bewuste edit/view-URLs.
+// Lost op dat drafts (status != published) nergens terug te vinden waren: de
+// tijdlijn toont alleen gepubliceerde posts.
+function sitePosts(siteId, siteSlug, tenancy, limit = 60) {
+  const base = tenancy === 'hub' ? `/user/${siteSlug}` : '';
+  return db.prepare(`
+    SELECT slug, title, status, published_at, created_at, updated_at
+    FROM posts WHERE site_id = ?
+    ORDER BY (status != 'published') DESC, COALESCE(updated_at, published_at, created_at) DESC
+    LIMIT ?
+  `).all(siteId, limit).map((p) => ({
+    ...p,
+    isDraft: p.status !== 'published',
+    editUrl: `${base}/posts/${p.slug}/edit`,
+    viewUrl: `${base}/${p.slug}`,
+  }));
+}
 
 router.get('/', requireAuth, (req, res) => {
@@ -35,4 +53,5 @@
       mySite,
       mine,
+      posts: sitePosts(mySite.id, mySite.slug, 'hub'), // my-site is hub-only
     });
   }
@@ -41,7 +60,7 @@
 
   // De primaire/owner-site — in solo dé site, in hub de hoofdsite. Geeft de
-  // "Uiterlijk"-tegel z'n edit-link.
+  // "Uiterlijk"-tegel z'n edit-link + de posts/concepten-lijst.
   const primarySite = db.prepare(
-    'SELECT slug, title FROM sites ORDER BY created_at ASC LIMIT 1'
+    'SELECT id, slug, title FROM sites ORDER BY created_at ASC LIMIT 1'
   ).get() || null;
 
@@ -71,4 +90,8 @@
   `).all() : [];
 
+  // Posts/concepten van de primaire site (in solo = de site; in hub = de
+  // hoofdsite van de admin). Concepten staan bovenaan zodat ze vindbaar zijn.
+  const posts = primarySite ? sitePosts(primarySite.id, primarySite.slug, tenancy) : [];
+
   renderPage(req, res, 'pages/admin', {
     pageTitle: 'Beheer',
@@ -78,4 +101,5 @@
     stats,
     sites,
+    posts,
     users,
   });
Index: src/views/pages/admin.ejs
===================================================================
--- src/views/pages/admin.ejs	(revision b50a885cfa81ab029ecb51fba763a6f18713fa5f)
+++ src/views/pages/admin.ejs	(revision f45fc82a7312244bd74ee11bc83e702369ba2f09)
@@ -35,4 +35,23 @@
   </div>
 
+  <% if (typeof posts !== 'undefined' && posts && posts.length) { %>
+    <% var _drafts = posts.filter(function(p){ return p.isDraft; }).length; %>
+    <h2>Posts<% if (_drafts) { %> <span class="pl-draftcount"><%= _drafts %> concept<%= _drafts === 1 ? '' : 'en' %></span><% } %></h2>
+    <ul class="post-admin-list">
+      <% posts.forEach(function(p) { %>
+        <li class="pal-row<%= p.isDraft ? ' is-draft' : '' %>">
+          <a class="pal-title" href="<%= p.editUrl %>">
+            <% if (p.isDraft) { %><span class="pal-badge">Concept</span><% } %>
+            <span class="pal-name"><%= p.title || '(zonder titel)' %></span>
+          </a>
+          <span class="pal-actions">
+            <a class="pal-link" href="<%= p.editUrl %>">Bewerken</a>
+            <% if (!p.isDraft) { %><a class="pal-link" href="<%= p.viewUrl %>">Bekijk</a><% } %>
+          </span>
+        </li>
+      <% }); %>
+    </ul>
+  <% } %>
+
   <% if (sites && sites.length) { %>
     <h2>Sites</h2>
@@ -82,4 +101,18 @@
 .admin-tagline em { font-style: normal; opacity: 0.7; }
 
+/* Posts/concepten-lijst */
+.pl-draftcount { font-family: var(--font-ui, system-ui); font-size: 0.8rem; font-weight: 700; color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); padding: 0.1rem 0.55rem; border-radius: 99px; vertical-align: middle; }
+.post-admin-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
+.pal-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.7rem 0.9rem; border: 1px solid var(--rule); border-radius: 10px; background: var(--paper-2); transition: border-color 120ms; }
+.pal-row:hover { border-color: var(--accent); }
+.pal-row.is-draft { border-left: 3px solid var(--accent); }
+.pal-title { display: inline-flex; align-items: center; gap: 0.6rem; min-width: 0; color: var(--ink); text-decoration: none; font-weight: 600; }
+.pal-title:hover { color: var(--accent); }
+.pal-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.pal-badge { flex-shrink: 0; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); padding: 0.1rem 0.5rem; border-radius: 99px; }
+.pal-actions { display: flex; gap: 0.75rem; flex-shrink: 0; }
+.pal-link { color: var(--ink-muted); font-size: 0.85rem; text-decoration: none; white-space: nowrap; }
+.pal-link:hover { color: var(--accent); text-decoration: underline; }
+
 /* Quick-links grid — mobile-first.
    auto-fit + minmax means: as many equal columns as fit, each at least 140px.
Index: src/views/pages/my-site.ejs
===================================================================
--- src/views/pages/my-site.ejs	(revision b50a885cfa81ab029ecb51fba763a6f18713fa5f)
+++ src/views/pages/my-site.ejs	(revision f45fc82a7312244bd74ee11bc83e702369ba2f09)
@@ -16,4 +16,23 @@
     <div class="stat-card"><div class="stat-num"><%= mine.published %></div><div class="stat-label">Gepubliceerd</div></div>
   </div>
+
+  <% if (typeof posts !== 'undefined' && posts && posts.length) { %>
+    <% var _drafts = posts.filter(function(p){ return p.isDraft; }).length; %>
+    <h2 class="ms-posts-title">Posts<% if (_drafts) { %> <span class="pl-draftcount"><%= _drafts %> concept<%= _drafts === 1 ? '' : 'en' %></span><% } %></h2>
+    <ul class="post-admin-list">
+      <% posts.forEach(function(p) { %>
+        <li class="pal-row<%= p.isDraft ? ' is-draft' : '' %>">
+          <a class="pal-title" href="<%= p.editUrl %>">
+            <% if (p.isDraft) { %><span class="pal-badge">Concept</span><% } %>
+            <span class="pal-name"><%= p.title || '(zonder titel)' %></span>
+          </a>
+          <span class="pal-actions">
+            <a class="pal-link" href="<%= p.editUrl %>">Bewerken</a>
+            <% if (!p.isDraft) { %><a class="pal-link" href="<%= p.viewUrl %>">Bekijk</a><% } %>
+          </span>
+        </li>
+      <% }); %>
+    </ul>
+  <% } %>
 </div>
 
@@ -32,3 +51,18 @@
 .stat-num { font-size: 2rem; font-weight: 700; color: var(--accent); line-height: 1; font-family: var(--font-display, serif); }
 .stat-label { color: var(--ink-muted); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; margin-top: 0.25rem; }
+
+/* Posts/concepten-lijst */
+.ms-posts-title { font-family: var(--font-display, serif); font-size: 1.4rem; margin: 2rem 0 0.75rem; }
+.pl-draftcount { font-family: var(--font-ui, system-ui); font-size: 0.8rem; font-weight: 700; color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); padding: 0.1rem 0.55rem; border-radius: 99px; vertical-align: middle; }
+.post-admin-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.4rem; }
+.pal-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.7rem 0.9rem; border: 1px solid var(--rule); border-radius: 10px; background: var(--paper-2); transition: border-color 120ms; }
+.pal-row:hover { border-color: var(--accent); }
+.pal-row.is-draft { border-left: 3px solid var(--accent); }
+.pal-title { display: inline-flex; align-items: center; gap: 0.6rem; min-width: 0; color: var(--ink); text-decoration: none; font-weight: 600; }
+.pal-title:hover { color: var(--accent); }
+.pal-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
+.pal-badge { flex-shrink: 0; font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--accent); background: color-mix(in srgb, var(--accent) 14%, transparent); padding: 0.1rem 0.5rem; border-radius: 99px; }
+.pal-actions { display: flex; gap: 0.75rem; flex-shrink: 0; }
+.pal-link { color: var(--ink-muted); font-size: 0.85rem; text-decoration: none; white-space: nowrap; }
+.pal-link:hover { color: var(--accent); text-decoration: underline; }
 </style>
