Index: src/server.js
===================================================================
--- src/server.js	(revision f99bbe8116e4b79bb4d4e5a814dca1b301133c64)
+++ src/server.js	(revision 69815b232bc91b7504ea8b28d3e2f66949f216ed)
@@ -63,4 +63,5 @@
 import adminEpkRoutes from './routes/admin-epk.js';
 import changelogRoutes from './routes/changelog.js';
+import ogRoutes from './routes/og.js';
 
 // SESSION_SECRET: use the env var if set. Otherwise auto-generate a strong one
@@ -222,4 +223,8 @@
 app.use(federationRoutes);
 
+// Themed OG cards (/og/:slug.png) — resolve the site by slug themselves, so they
+// run before resolveSite and need no site context.
+app.use('/og', ogRoutes);
+
 app.use(resolveSite);
 app.use(loadAudioTracks);
