Index: CHANGELOG.md
===================================================================
--- CHANGELOG.md	(revision 5c27e8e21e9c060bb640fc102ab9e198ae52d07f)
+++ CHANGELOG.md	(revision 1080d14a82b0bf566e31aa37f3c30190e96e2869)
@@ -18,4 +18,6 @@
   ontbreekt er een nieuwere/oudere post, dan staat er een subtiele uitgegrijsde
   placeholder ("Nieuwste post" / "Oudste post") i.p.v. een lege plek.
+- Bij het openen van een gerelateerde/volgende post spring je nu naar boven van de
+  pagina (was: je bleef op de oude scrollpositie hangen).
 
 ## [1.0.0-beta.2] — 2026-06-19
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision 5c27e8e21e9c060bb640fc102ab9e198ae52d07f)
+++ src/views/shell.ejs	(revision 1080d14a82b0bf566e31aa37f3c30190e96e2869)
@@ -515,4 +515,14 @@
     } catch (_) {}
   });
+
+  // Spring naar boven na ELKE navigatie-swap van #pcms-main. De boost hierboven
+  // scrollt al, maar links met hun eigen hx-get (post-nav Newer/Older, post-kaarten)
+  // lopen NIET via de boost → zonder dit blijf je op de oude scrollpositie hangen
+  // bij het openen van een gerelateerde/volgende post. Alleen #pcms-main, zodat
+  // in-page swaps (comments e.d.) en de OOB-chrome-swap niet meescrollen.
+  document.body.addEventListener('htmx:afterSwap', function (evt) {
+    var t = evt.detail && evt.detail.target;
+    if (t && t.id === 'pcms-main') { try { window.scrollTo(0, 0); } catch (_) {} }
+  });
 })();
 </script>
