Community index
12.9K communities · 114M members · 426K posts today
- Online now
- 1.3M
- My subscriptions
- 2
- Domains
- 16
Featured
Standalone site with a custom menuPHP Community
r/php
The best language in the world — and the most complained about
86.4kmembers 3,208Flagship
Vue Community
r/vue
The progressive JavaScript framework
52.1kmembers 1,904Flagship
Rust Community
r/rust
Safe, concurrent, fast
31.6kmembers 972Flagship
MySQL Community
r/mysql
The most popular open-source relational database
24.3kmembers 640Flagship
Linux Community
r/linux
Daily Q&A — real-world pitfalls.
852members 11
LLM Community
r/llm
Daily Q&A — real-world pitfalls.
564members 8
Keyboard Community
r/keyboard
Daily Q&A — numbers over vibes.
11.9Kmembers 231
Ubuntu Community
r/ubuntu
The most widely used Linux distribution
19.8kmembers 512Flagship
All communities
12.9K rowsHow a ten-thousand-row list holds up
This page is not just a pretty wall of cards — it maps to four engineering decisions that have to be made up front.
1 · Keyword recall
Search never goes through MySQL LIKE. Posts are written into Meilisearch on create/update; search returns an ID list which is then joined back for details. Chinese tokenisation and pinyin tolerance live there too.
2 · Keyset pagination
No OFFSET — at page 500 it would scan 30,000 rows. Instead the cursor carries the sort key of the last row on the previous page (hot_score + id).
3 · Render by viewport
Only the ~40 rows inside the viewport are mounted; the rest are recycled on scroll. Row height is fixed (this page deliberately normalises it) so virtual scrolling can measure correctly.
4 · Counts and aggregates
Numbers like "how many communities per domain" never hit a live query. A worker writes them into a Redis aggregate every 10 minutes, so opening the directory does not full-scan.