Index: src/routes/circle.js
===================================================================
--- src/routes/circle.js	(revision c7c7f023909e388db24e374bf58d148dadf8492e)
+++ src/routes/circle.js	(revision c74565987caf12d910b2fb8dd439042dd0e2f94f)
@@ -33,4 +33,8 @@
   const posts = ActivityPubService.getCirkelPosts(site.slug, 80).map((r) => {
     const text = htmlToText(r.content);
+    // Show ONLY the title (the bold first line a Klonkt note carries), not the whole
+    // body. Title-less notes (e.g. plain Mastodon) fall back to a short text snippet.
+    const titleM = (r.content || '').match(/^\s*<p>\s*<strong>([\s\S]*?)<\/strong>/i);
+    const realTitle = titleM ? htmlToText(titleM[1]).trim() : '';
     const image = mediaImage(r.media_json);
     const name = r.author_name || r.author_handle || 'Onbekend';
@@ -38,5 +42,7 @@
       id: 'ap-' + r.id,
       slug: '',
-      title: text ? (text.length > 90 ? text.slice(0, 90) + '…' : text) : name,
+      title: realTitle
+        ? (realTitle.length > 90 ? realTitle.slice(0, 90) + '…' : realTitle)
+        : (text ? (text.length > 90 ? text.slice(0, 90) + '…' : text) : name),
       excerpt: '',
       cover_image_url: image ? image.url : null,
