aboutsummaryrefslogtreecommitdiffstats
path: root/src/popular-feed.js
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-10-03 22:14:26 -0700
committerAdam Soltys <[email protected]>2026-10-03 22:14:26 -0700
commit8f49c7461e663e34d344ec1424cde7d6a365cbea (patch)
tree438569f9985d37df35895d697756747642fb6e40 /src/popular-feed.js
parent9cef505c9ee0565e7dabc193b3d52f3a8ef23331 (diff)
downloadcoinosv3-8f49c7461e663e34d344ec1424cde7d6a365cbea.tar.gz
coinosv3-8f49c7461e663e34d344ec1424cde7d6a365cbea.zip
Popular reads where the reactions are: ditto, nos.lol, primal, ours
Measured: ditto held 94% of distinct reactions (and keeps a month of them); damus capped asks at ~300, pruned in a day and added nothing. Everything (raw firehose) gets its own list without damus (empty answer to a bare kind-1 ask) or ditto (~30% Mostr-bridged posts). A saved list equal to the old or current defaults follows the defaults. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_011bvzKaZosXGHkigcGcSzAR
Diffstat (limited to 'src/popular-feed.js')
-rw-r--r--src/popular-feed.js11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/popular-feed.js b/src/popular-feed.js
index 999ebc1..351b16f 100644
--- a/src/popular-feed.js
+++ b/src/popular-feed.js
@@ -1,5 +1,14 @@
// Shared by the relay fallback and the server's public snapshot builder.
-export const PUBLIC_FEED_RELAYS = ['wss://relay.coinos.io', 'wss://relay.damus.io', 'wss://nos.lol', 'wss://relay.primal.net'];
+// Popular counts reactions, so it reads where the reactions are (measured
+// 2026-10-04 over 30 min: ditto alone held 774 of 823 distinct reactions and
+// 69 of the 74 posts two people touched; ditto + nos.lol had all 74; ditto
+// keeps them for a month, nos.lol/primal ~5 days, damus ~1 day and caps a
+// REQ at ~300). Ours stays in for coinos people's own activity.
+export const POPULAR_RELAYS = ['wss://relay.ditto.pub', 'wss://nos.lol', 'wss://relay.primal.net', 'wss://relay.coinos.io'];
+// Everything is every post: damus answers a bare kind-1 ask with nothing,
+// and ditto's posts are ~30% fediverse bridged in by Mostr — both left out.
+export const FIREHOSE_RELAYS = ['wss://relay.coinos.io', 'wss://nos.lol', 'wss://relay.primal.net'];
+export const PUBLIC_FEED_RELAYS = POPULAR_RELAYS; // the server's Popular snapshot
export function popularCandidates(reactions) {
const counts = new Map();
for (const r of reactions) {