Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision c73ac647e83e17754d2b5700371479eea7d031fa)
+++ src/routes/posts.js	(revision c9011316126f54bb7a22b2ce22abefc25d66f82a)
@@ -710,26 +710,6 @@
   }
 
-  // Comments: top-level + replies. Two-pass build: fetch all approved
-  // comments for the post, then group replies under their parent.
-  const commentRows = db.prepare(`
-    SELECT c.id, c.parent_comment_id, c.content, c.status, c.created_at,
-           c.author_id, u.username AS author_username,
-           COALESCE(u.avatar_url, (SELECT profile_photo FROM sites WHERE owner_id = u.id AND profile_photo IS NOT NULL ORDER BY is_primary DESC, created_at ASC LIMIT 1)) AS author_avatar
-    FROM comments c JOIN users u ON u.id = c.author_id
-    WHERE c.post_id = ? AND c.status = 'approved'
-    ORDER BY c.created_at ASC
-  `).all(post.id);
-  const topLevel = [];
-  const repliesById = new Map();
-  for (const c of commentRows) {
-    if (c.parent_comment_id) {
-      if (!repliesById.has(c.parent_comment_id)) repliesById.set(c.parent_comment_id, []);
-      repliesById.get(c.parent_comment_id).push(c);
-    } else {
-      topLevel.push(c);
-    }
-  }
-  for (const c of topLevel) c.replies = repliesById.get(c.id) || [];
-  const totalComments = commentRows.length;
+  // Native comments removed: social interaction is fediverse-only (see the
+  // "From the fediverse" section below).
 
   // Prev / next chronological (kept for back-compat — "post-nav" feature
@@ -818,6 +798,4 @@
     olderPost,
     relatedPosts,
-    comments: topLevel,
-    totalComments,
     fediverse,
     canManageSite,
