Index: src/views/pages/circle-post.ejs
===================================================================
--- src/views/pages/circle-post.ejs	(revision 7917407ebdec315512ca9badca18040596ab36f6)
+++ src/views/pages/circle-post.ejs	(revision 2248cd205170dcacc008a9a13c91cb9cbd894974)
@@ -23,4 +23,16 @@
   <div class="cirkel-post-body"><%= post.body %></div>
 
+  <% if (post.tags && post.tags.length) { %>
+    <div class="cirkel-post-tags">
+      <% post.tags.forEach(function(t){ %>
+        <% if (post.sourceTagBase) { %>
+          <a class="cirkel-tag" href="<%= post.sourceTagBase %>/tag/<%= encodeURIComponent(t) %>" target="_blank" rel="noopener">#<%= t %></a>
+        <% } else { %>
+          <span class="cirkel-tag">#<%= t %></span>
+        <% } %>
+      <% }); %>
+    </div>
+  <% } %>
+
   <% if (post.originalUrl) { %>
     <p class="cirkel-post-readmore">
@@ -42,4 +54,7 @@
 .cirkel-post-cover { width: 100%; border-radius: var(--radius); margin: 0 0 1.5rem; display: block; }
 .cirkel-post-body { font-size: 1.05rem; line-height: 1.7; white-space: pre-wrap; color: var(--ink); }
+.cirkel-post-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1.25rem; }
+.cirkel-tag { font-size: .8rem; color: var(--ink-muted); background: var(--paper-2); border: 1px solid var(--rule); border-radius: 999px; padding: .15rem .6rem; text-decoration: none; }
+.cirkel-tag:hover { border-color: var(--accent); color: var(--accent); }
 .cirkel-post-readmore { margin-top: 2rem; padding-top: 1.25rem; border-top: 1px solid var(--rule); }
 .cirkel-post-readmore a { color: var(--accent); text-decoration: none; font-weight: 600; }
