Index: src/views/partials/post-card.ejs
===================================================================
--- src/views/partials/post-card.ejs	(revision 0c2228a9c4489c1c67d7c50a257243dee4569320)
+++ src/views/partials/post-card.ejs	(revision 7963a6e9c576b291e837823c55309d6bb470d2d9)
@@ -11,5 +11,6 @@
 //   Hover state on cover. Tap-target stays large.
 
-const _href      = '/' + post.slug;
+const _base      = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
+const _href      = _base + '/' + post.slug;
 const _hasCover  = !!post.cover_image_url;
 const _typeLabel = (post.type && post.type !== 'overig' && post.type !== 'post') ? post.type : '';
@@ -76,7 +77,7 @@
       <div class="post-list-tags">
         <% _tags.forEach(function(t) { %>
-          <a href="/tag/<%= encodeURIComponent(t) %>" class="tag-chip"
-             hx-get="/tag/<%= encodeURIComponent(t) %>?partial=1" hx-target="#pcms-main"
-             hx-swap="innerHTML" hx-push-url="/tag/<%= encodeURIComponent(t) %>"
+          <a href="<%= _base %>/tag/<%= encodeURIComponent(t) %>" class="tag-chip"
+             hx-get="<%= _base %>/tag/<%= encodeURIComponent(t) %>?partial=1" hx-target="#pcms-main"
+             hx-swap="innerHTML" hx-push-url="<%= _base %>/tag/<%= encodeURIComponent(t) %>"
              hx-indicator="#pcms-loading">#<%= t %></a>
         <% }); %>
Index: src/views/partials/post-tile.ejs
===================================================================
--- src/views/partials/post-tile.ejs	(revision 0c2228a9c4489c1c67d7c50a257243dee4569320)
+++ src/views/partials/post-tile.ejs	(revision 7963a6e9c576b291e837823c55309d6bb470d2d9)
@@ -7,12 +7,14 @@
 const _hasCover = !!post.cover_image_url;
 const _typeLabel = (post.type && post.type !== 'post') ? post.type : '';
+const _base = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
+const _href = _base + '/' + post.slug;
 %>
 <a class="grid-tile<%= _hasCover ? '' : ' grid-tile-gradient' %><%= _isPinned ? ' is-pinned' : '' %>"
-   href="/<%= post.slug %>"
+   href="<%= _href %>"
    <% if (_hasCover) { %>style="background-image: url('<%= post.cover_image_url %>'); --tile-hue: <%= _tileHue %>;"<% } else { %>style="--tile-hue: <%= _tileHue %>;"<% } %>
-   hx-get="/<%= post.slug %>?partial=1"
+   hx-get="<%= _href %>?partial=1"
    hx-target="#pcms-main"
    hx-swap="innerHTML"
-   hx-push-url="/<%= post.slug %>"
+   hx-push-url="<%= _href %>"
    hx-indicator="#pcms-loading">
 
