| Feature | What It Does |
|---|---|
| Keyword Filtering | Only shows posts mentioning words you care about |
| Like Threshold | Hides low-quality posts until they get enough likes |
| Keyword Groups | Organize keywords into tabs using [Group Name] syntax |
| Dark Mode | Switch between light, dark, or automatic theme |
| English Only | Filters out non-English posts |
New posts start with 0 likes. Instead of showing you everything immediately, the app waits and checks back later. This filters out spam and noise
Here's how the app decides when to check if a post has enough likes:
flowchart TD
A[New post appears on Bluesky] --> B{Does it contain\nyour keywords?}
B -->|No| SKIP[Ignored]
B -->|Yes| C[Added to waiting room]
C --> D[Post waits here\nwith 0 likes]
D --> E[App asks Bluesky:\nHow many likes now?]
E --> F{Enough likes yet?}
F -->|Yes!| G[show it]
F -->|Not yet| H[Calculate when\nto check again]
H --> I{How popular\nis it getting?}
I -->|Getting likes fast| J[Check again soon\n~20 seconds]
I -->|Getting likes slowly| K[Check again later\nup to 30 minutes]
I -->|Brand new post| L[Check in 30-60 sec]
J --> WAIT[Wait...]
K --> WAIT
L --> WAIT
WAIT --> OLD{Post older than\n6 hours?}
OLD -->|Yes| REMOVE[Remove from\nwaiting room]
OLD -->|No| E
| Situation | How Long to Wait |
|---|---|
| Brand new post (first 5 minutes) | 30–60 seconds |
| Post getting likes quickly | ~20 seconds |
| Post getting likes slowly | Up to 30 minutes |
| Check for posts ready to recheck | Every 5 seconds |
| Give up on post | After 6 hours |
The app watches how fast likes are coming in. Here's an example:
Example: You set minimum likes to 10. A post currently has 7 likes. Last time the app checked (30 seconds ago), it had 4 likes. That's 3 new likes in 30 seconds — pretty fast! The app calculates it only needs 3 more likes, and at this rate, that should take about 30 seconds. So it waits ~30 seconds before checking again.
flowchart TD
subgraph Step1["Step 1: What does the app know?"]
A["Current likes: 7"]
B["Previous likes: 4"]
C["Time since last check: 30 sec"]
D["You want minimum: 10 likes"]
end
subgraph Step2["Step 2: How fast is it growing?"]
E["New likes = 7 - 4 = 3 likes"]
F["Speed = 3 likes in 30 sec"]
end
subgraph Step3["Step 3: When will it be ready?"]
G["Still needs: 10 - 7 = 3 more likes"]
H["At this speed: 3 likes ÷ 3 per 30 sec = ~30 seconds"]
end
subgraph Step4["Step 4: Finalize the timer"]
I["Predicted wait: ~30 sec"]
I --> J{"Check the\npredicted time"}
J -->|"Under 20 sec"| K["Too frequent!\nBluesky limits API calls,\nso wait at least 20 sec"]
J -->|"Over 30 min"| L["Too long!\nPost might go viral\nwhile we're waiting.\nCap at 30 min"]
J -->|"20 sec – 30 min"| M["Looks good,\nuse predicted time"]
K --> N["Add ±10% random offset\nso thousands of posts\ndon't all check simultaneously"]
L --> N
M --> N
N --> O["✓ Check again in ~30 seconds"]
end
A --> E
B --> E
C --> F
E --> F
D --> G
A --> G
G --> H
F --> H
H --> I
[Group Name] on its own line to create filter tabs