Index: src/views/pages/favorites.ejs
===================================================================
--- src/views/pages/favorites.ejs	(revision 535f955817ec83f38e0bd69aafbc344a7f7c716a)
+++ src/views/pages/favorites.ejs	(revision 535f955817ec83f38e0bd69aafbc344a7f7c716a)
@@ -0,0 +1,21 @@
+<div class="container favorites-page">
+  <h1>Favorieten</h1>
+  <p class="fav-sub">Posts die je hebt geliket. Tik op het ♥ bij een post om 'm hier te bewaren.</p>
+
+  <% if (!posts || !posts.length) { %>
+    <p class="fav-empty">Je hebt nog geen favorieten. Open een post en tik op het hartje ♡.</p>
+  <% } else { %>
+    <ul class="post-list">
+      <% posts.forEach(function(p){ %>
+        <%- include('../partials/post-card', { post: p, siteUrlBase: (p._urlBase || '') }) %>
+      <% }); %>
+    </ul>
+  <% } %>
+</div>
+
+<style>
+  .favorites-page { max-width: 760px; margin: 3rem auto; padding: 0 1rem; }
+  .favorites-page h1 { font-family: var(--font-display, serif); font-size: 2rem; margin: 0 0 0.3rem; }
+  .fav-sub { color: var(--ink-muted); margin: 0 0 2rem; }
+  .fav-empty { color: var(--ink-muted); padding: 2rem 0; }
+</style>
Index: src/views/pages/post.ejs
===================================================================
--- src/views/pages/post.ejs	(revision 1e2e9e796a68983531a8d24e36c35e9319d25413)
+++ src/views/pages/post.ejs	(revision 535f955817ec83f38e0bd69aafbc344a7f7c716a)
@@ -31,4 +31,9 @@
       <% } %>
     </div>
+    <% if (post.status === 'published') { %>
+      <div class="post-like-row">
+        <%- include('../partials/like-button', { post: post, likedByMe: (typeof likedByMe !== 'undefined' && likedByMe), likeCount: (typeof likeCount !== 'undefined' ? likeCount : 0), loggedIn: !!user, loginNext: _base + '/' + post.slug }) %>
+      </div>
+    <% } %>
   </header>
 
@@ -250,4 +255,16 @@
 .post-content { font-family: var(--font-body, serif); font-size: 1.1rem; line-height: 1.7; color: var(--ink); }
 .post-content p { margin: 1.2em 0; }
+.post-like-row { margin-top: 1rem; }
+.like-btn {
+  display: inline-flex; align-items: center; gap: 0.45rem;
+  padding: 0.4rem 0.85rem; border: 1px solid var(--rule); border-radius: 999px;
+  background: var(--paper-2); color: var(--ink); font: inherit; font-size: 0.95rem;
+  cursor: pointer; text-decoration: none; transition: border-color 120ms, color 120ms, background 120ms;
+}
+.like-btn:hover { border-color: var(--accent); }
+.like-btn .like-heart { font-size: 1.1rem; line-height: 1; }
+.like-btn.is-liked { border-color: var(--accent); color: var(--accent); }
+.like-btn.is-liked .like-heart { color: var(--accent); }
+.like-btn .like-count { font-variant-numeric: tabular-nums; }
 .post-content h2 { font-family: var(--font-display, serif); font-size: 1.6rem; margin: 2rem 0 1rem; }
 .post-content h3 { font-family: var(--font-display, serif); font-size: 1.3rem; margin: 1.5rem 0 0.75rem; }
