Index: src/routes/activitypub.js
===================================================================
--- src/routes/activitypub.js	(revision 9946a68c3cdf4796d3e5ab4c7f6e3317e0f40984)
+++ src/routes/activitypub.js	(revision 6d7ea5203ae76d7089a4bc4f376b168682b257a4)
@@ -14,5 +14,5 @@
 import express from 'express';
 import { readFileSync } from 'fs';
-import db from '../config/database.js';
+import db, { isoSql } from '../config/database.js';
 import AP from '../services/ActivityPubService.js';
 import { apReadLimiter, apInboxLimiter } from '../middleware/rate-limit.js';
@@ -1176,5 +1176,5 @@
        AND IFNULL(ap_visibility, 'public') IN ('public', 'quiet')
        AND pinned IS NOT NULL AND pinned > 0
-     ORDER BY pinned DESC, COALESCE(published_at, created_at) ASC LIMIT 20`
+     ORDER BY pinned DESC, ${isoSql('COALESCE(published_at, created_at)')} ASC LIMIT 20`
   ).all(site.id);
   AP.sendAP(res, AP.buildFeatured(baseUrl(req), site, posts, { page: paginaNr(req) }));
Index: src/routes/admin.js
===================================================================
--- src/routes/admin.js	(revision 9946a68c3cdf4796d3e5ab4c7f6e3317e0f40984)
+++ src/routes/admin.js	(revision 6d7ea5203ae76d7089a4bc4f376b168682b257a4)
@@ -6,5 +6,5 @@
 
 import express from 'express';
-import db from '../config/database.js';
+import db, { isoSql } from '../config/database.js';
 import { renderPage } from '../middleware/render.js';
 import { requireAuth } from '../middleware/auth.js';
@@ -22,5 +22,5 @@
     SELECT slug, title, status, published_at, created_at, updated_at
     FROM posts WHERE site_id = ?
-    ORDER BY (status != 'published') DESC, COALESCE(updated_at, published_at, created_at) DESC
+    ORDER BY (status != 'published') DESC, ${isoSql('COALESCE(updated_at, published_at, created_at)')} DESC
     LIMIT ?
   `).all(siteId, limit).map((p) => ({
