Index: src/services/ap-timeline.js
===================================================================
--- src/services/ap-timeline.js	(revision 76290bf80c10aee5bb719e7e1e1c056970316e3e)
+++ src/services/ap-timeline.js	(revision 8151340aee19dd0280b5185a8c3e9c56dc279653)
@@ -13,5 +13,10 @@
  * wireTimeline, hetzelfde injectiepatroon als guardianship en ap-c2s.
  */
-import db from '../config/database.js';
+import db, { isoSql } from '../config/database.js';
+
+// De helper woont sinds shaer-a937 in config/database.js: elke plek die
+// sorteert had hem nodig, en twee kopieen van dezelfde regel lopen uit elkaar.
+// Bovenaan, want de eerste statements hieronder gebruiken hem al.
+const STEMPEL = isoSql;
 
 // Het ene werktuig uit de dienstlaag. ActivityPubService vult het onderaan
@@ -26,5 +31,5 @@
   if (!_insTl) {
     _insTl = db.prepare('INSERT OR IGNORE INTO ap_timeline (id, slug, author_uri, author_name, author_handle, author_icon, author_url, content, url, published, media_json, nsfw, cw, created_at) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,CURRENT_TIMESTAMP)');
-    _listTl = db.prepare('SELECT * FROM ap_timeline WHERE slug = ? ORDER BY COALESCE(published, created_at) DESC LIMIT ? OFFSET ?');
+    _listTl = db.prepare(`SELECT * FROM ap_timeline WHERE slug = ? ORDER BY ${STEMPEL('COALESCE(published, created_at)')} DESC LIMIT ? OFFSET ?`);
     _delTl = db.prepare('DELETE FROM ap_timeline WHERE id = ?');
   }
@@ -119,5 +124,5 @@
       JOIN sites s ON s.id = p.site_id
       WHERE s.slug = ? AND i.kind = 'reply'
-      ORDER BY COALESCE(i.published, i.created_at) DESC LIMIT ?`).all(slug, limit || 60);
+      ORDER BY ${STEMPEL('COALESCE(i.published, i.created_at)')} DESC LIMIT ?`).all(slug, limit || 60);
   } catch { return []; }
 }
@@ -242,5 +247,4 @@
  * een leeftijd die twee uur verschilde per vorm.
  */
-const STEMPEL = (rauw) => `COALESCE(strftime('%Y-%m-%dT%H:%M:%SZ', ${rauw}), ${rauw})`;
 
 const CONVERSATION_UNION = `
@@ -425,5 +429,5 @@
       WHERE m.slug = ?
         AND NOT EXISTS (SELECT 1 FROM ap_timeline t WHERE t.slug = m.slug AND t.id = m.object_uri)
-      ORDER BY COALESCE(m.published, m.created_at) DESC LIMIT ?`).all(slug, limit || 60);
+      ORDER BY ${STEMPEL('COALESCE(m.published, m.created_at)')} DESC LIMIT ?`).all(slug, limit || 60);
   } catch { return []; }
 }
