How It Works

← Back to feed
  1. Bluesky sends every new post — the app receives them all in real-time
  2. The app checks each post — does it contain any of your keywords?
  3. Matching posts go into a waiting room — the app periodically checks how many likes they have
  4. Once popular enough, you see it — only posts with enough likes appear in your feed

Features

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

Why Wait for Likes?

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

The Hydration Process

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
      

Timing Details

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

How Does the App Know a Post Is Getting Popular?

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
      

Tips