skypicker.site

Sign in

Draw winners from a post’s likes or reposts. Sign in, paste the post link and choose how many people win.

Sign in to run the raffle. Each visitor uses their own API quota, so one giveaway never slows down another.

Works with Bluesky and any AT Protocol (Atmosphere) server.

FAQ

How does the draw work?

Paste a post link, choose a likes/reposts filter and a winner count. Your browser loads all available pages, removes duplicate accounts and draws distinct winners from that pool.

Who is eligible?

Choose likes only, reposts only, both (intersection), or either (union). Each account enters once. Replies do not count. The pool reflects the API responses collected during the draw.

Is the draw random?

The browser uses a partial Fisher–Yates shuffle with crypto.getRandomValues and rejection sampling to avoid modulo bias. Each account in the pool has the same chance. A signed result protects the recorded data; it does not prove that the browser ran a fair draw.

Why do I need to sign in?

OAuth lets the app use your own API quota to read posts and participants. Your password stays with your server and is never stored here. The session cookie is per domain, so switching languages may require signing in again.

What does the result link contain? Does it expire?

The signed v2 payload contains the creator DID, date, post URI and author handle, filter, like/repost totals, optional title, and winner DIDs, handles and names (up to 100 winners). Anyone with the link can read it. There is no expiry; changing the signing secret invalidates old links. The same link works on both domains.

Can I use another Atmosphere client or PDS?

Yes. OAuth supports accounts on any AT Protocol PDS. Post links can come from bsky.app, Witchsky, Deer, Blacksky, Northsky or any host using /profile/<actor>/post/<rkey>. at:// URIs for app.bsky.feed.post also work. The link host is never fetched.

skypicker.site · Host giveaways on Bluesky