Open-source feed/ranking algorithm for VaboBD — an Facebook-like social platform for Bangladesh and South Asia.
Status: scaffold only. No code yet — the MVP pipeline below is the design to implement.
The pipeline shape is inspired by X's open-source x-algorithm (Home Mixer pipeline concept), but the MVP is heuristic only — no AI/ML. The architecture deliberately keeps the ML scorer as a swappable step 3, so AI/ML can be added later without restructuring the pipeline (REQUIREMENT.md §10).
-
Candidate sources (parallel)
- In-network: recent posts from followed accounts (Postgres)
- Out-of-network: trending/recent posts from non-followed accounts (Postgres)
-
Pre-scoring filters — already-seen (Redis set per user), blocked/muted accounts, age limit, reported/flagged content
-
Scoring (heuristic)
score = (w1 × recency_decay) + (w2 × like_count) + (w3 × comment_count) + (w4 × is_following) − (w5 × already_seen_penalty)Weights are config values, tunable like production defaults in x-algorithm.
-
Selection — sort by score, take top N
-
Post-selection filters — dedup, final block/report check
- Computed real-time, at request time — no background cron/pre-compute.
- Backed by Redis caching (follow list, recent-posts pools, seen-posts set); Postgres remains the source of truth but is not hit on every request.
- Scoring weights and visibility filtering (block/mute/report) mirror Instagram's approach.
docs/— public docs for this repo (design notes, weight tuning guidance) — to be filled during implementation.
| Repo | Purpose |
|---|---|
| VaboBD | Root repo — project requirements and docs |
| VaboBD-web | Next.js frontend |
| VaboBD-backend | Go backend |
TBD — see root repo license note.