Index: src/routes/activitypub.js
===================================================================
--- src/routes/activitypub.js	(revision e6c6e6f74ea19581f6f61944c055f61510b149dd)
+++ src/routes/activitypub.js	(revision 5143ccf71a67b09507bf3dc89dc40fb1c5fb90cc)
@@ -175,5 +175,6 @@
   if (!site) return res.status(404).end();
   if (owner) {
-    const items = db.prepare('SELECT actor_uri FROM ap_followers WHERE slug = ? ORDER BY created_at').all(site.slug).map((r) => r.actor_uri);
+    const uris = db.prepare('SELECT actor_uri FROM ap_followers WHERE slug = ? ORDER BY created_at').all(site.slug).map((r) => r.actor_uri);
+    const items = uris.map((u) => AP.buildActorRef(site.slug, u));   // name + avatar (shaer-aa3)
     return AP.sendAP(res, AP.buildFollowers(baseUrl(req), site, items.length, items));
   }
@@ -190,5 +191,5 @@
   if (owner) {
     let items = [];
-    try { items = db.prepare("SELECT actor_uri FROM ap_following WHERE slug = ? AND status = 'accepted' ORDER BY created_at").all(site.slug).map((r) => r.actor_uri); } catch { /* table may not exist */ }
+    try { items = db.prepare("SELECT actor_uri FROM ap_following WHERE slug = ? AND status = 'accepted' ORDER BY created_at").all(site.slug).map((r) => AP.buildActorRef(site.slug, r.actor_uri)); } catch { /* table may not exist */ }
     return AP.sendAP(res, AP.buildFollowing(baseUrl(req), site, items.length, items));
   }
