Index: src/routes/posts.js
===================================================================
--- src/routes/posts.js	(revision 5045c30366c334b867cb852425f5cc48dcb1323b)
+++ src/routes/posts.js	(revision 78b6d8a72b391c1960a8488dc735fb03495bc209)
@@ -633,4 +633,15 @@
   }
   res.redirect('/tijdlijn?success=' + encodeURIComponent('Geboost 🔁'));
+});
+
+// Unboost (retract): send Undo(Announce) + clear the local flag.
+router.post('/tijdlijn/unboost', requireSiteManager, async (req, res) => {
+  const site = res.locals.site;
+  const note = (req.body.note || '').toString();
+  if (site && note) {
+    try { await ActivityPubService.sendInteraction(site, 'unboost', note, (req.body.author || '').toString()); } catch (e) { /* ignore */ }
+    ActivityPubService.unmarkBoosted(site.slug, note);
+  }
+  res.redirect('/tijdlijn?success=' + encodeURIComponent('Boost ingetrokken'));
 });
 
