Index: src/views/partials/post-card.ejs
===================================================================
--- src/views/partials/post-card.ejs	(revision 7bc636b391c66ac399c33e54f7173a022c6a3cbd)
+++ 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>
         <% }); %>
