Best Time to Post
What it does
Section titled “What it does”Best Time to Post answers two questions for any account, hour by hour across the week:
- When followers are active: it takes a random sample of 500 followers and looks at when they posted, replied, and reposted over the past 30 days.
- When posts get the most engagement: it looks at the account’s own posts from the past 90 days and averages the likes, replies, reposts, and quotes they got, by the hour they were posted.
Each answer is a heatmap: seven rows for Monday to Sunday, 24 columns for the hours, with stronger color for more. Above each heatmap, three cards suggest the best two-hour windows, such as Tue · 06–08: Busiest times for followers and Best-performing times for your posts. Point at or focus a card to dim every other hour on its heatmap.
All times are in your time zone, which the result names.
Before you start
Section titled “Before you start”- You do not need to sign in. It works for any public account.
- When you are signed in, the box is filled with your own handle.
- The address holds the account (
?q=), so a result is a shareable link. - A first result takes a minute or two: the tool reads up to 1,000 feeds. See Limits.
Step by step
Section titled “Step by step”- Open Best Time to Post.
- Type a handle, DID, or profile link in Handle, DID, or profile link, or keep your own handle if you are signed in.
- Choose Find best times.
- Wait while it works. The bar shows Reading posts, then Reading followers, then Sampling followers with a count such as 120 of 500 followers sampled. You can move to other BskyKit pages in the same tab meanwhile.
- Read the result: the line at the top names the account, the time zone, and when it was computed. Then When followers are active and When posts get the most engagement, each with its cards and heatmap.
- Choose Recompute later to work it out again with fresh data.
- To look at another account, type it and choose Find best times. To start over, choose Clear in the box.
Options
Section titled “Options”The tool has no filters. What you can read from the result:
When followers are active
Section titled “When followers are active”- The line says how many sampled followers were active, such as 341 of 500 sampled followers were active in the past 30 days. Inactive followers count for nothing.
- Each active follower counts equally, however much they post: their activity is spread over the week so that it adds up to one follower, and the heatmap shows the average. A cell’s value is its share of follower activity, such as 3.3%.
- Posts and replies count at the time they were written, reposts at the time of the repost. Likes are not counted.
- For an account with more than 10,000 followers, the sample is drawn from the newest 10,000, and the line says Sampled from the newest 10,000 followers.
When posts get the most engagement
Section titled “When posts get the most engagement”- The line says how many posts it is Based on: the account’s own posts from the past 90 days, up to 500. Replies and reposts are left out.
- A cell’s value is the average likes + replies + reposts + quotes per post published in that hour.
- Hours with fewer than 3 posts are hatched and never suggested, so one lucky post does not decide the result.
Suggested windows
Section titled “Suggested windows”Each set of cards shows the 3 best two-hour windows that do not overlap. A window can run from Sunday night into Monday morning.
Your own account
Section titled “Your own account”Signed in and looking at your own account, the tool uses the follower list kept from Follow Back when it is complete, so it does not read your followers again.
What gets changed
Section titled “What gets changed”Nothing: it only reads. Posts and followers are read from Bluesky’s public API (AppView).
The result (the heatmap values, the counts, the time zone, and when it was computed) is kept in this browser for up to 20 accounts, newest first. Coming back to an account shows its kept result at once, with Computed … ago; signed in, your own kept result opens as soon as you visit. The result stays until you clear your browser’s site data for bskykit.app. See Data on Your Device.
Nothing to undo: it only reads.
Limits
Section titled “Limits”- Followers: a random sample of 500, drawn from at most the newest 10,000 followers (100 requests of 100).
- Follower activity: the past 30 days. For each sampled follower, the tool reads one page of their feed (100 items), and a second page only if all of the first falls in the past 30 days. Four feeds are read at a time.
- Own posts: the past 90 days, up to 500 posts.
- In all, about 500 to 1,000 feed requests and up to 100 follower pages per result. As a guide, an account with about 2,000 followers took 86 seconds. Results are kept on the device so you do not have to wait again.
- Stop drops the computation. Nothing partial is kept, because the heatmap needs the whole sample.
- Accounts that Bluesky hides (labeled
!hideor!takedown) and accounts that ask to be shown only to people signed in to Bluesky are not read. Followers like that are left out of the sample, and a deleted or deactivated follower counts as inactive. - When Bluesky asks to slow down, or has a passing error, the tool waits and tries again up to five times, starting at 2 seconds and doubling.
Troubleshooting
Section titled “Troubleshooting”“Best times could not be computed”
Section titled ““Best times could not be computed””Bluesky kept failing after five tries. Nothing was kept. Choose Try again to start over.
“No follower activity in the past 30 days.”
Section titled ““No follower activity in the past 30 days.””None of the sampled followers posted, replied, or reposted in the past 30 days, or the account has no followers. There are no busiest times to suggest.
“No hour has 3 or more posts yet.”
Section titled ““No hour has 3 or more posts yet.””The account posted too little in the past 90 days for any hour to have 3 posts. The heatmap still shows the hours it has, hatched. Post more, then choose Recompute.
The result is old
Section titled “The result is old”A kept result shows at once instead of computing again. Choose Recompute for fresh data.
“Bluesky asked us to slow down. Trying again in … seconds.”
Section titled ““Bluesky asked us to slow down. Trying again in … seconds.””This is expected on a large sample. The tool waits and carries on by itself. See Limits & Pacing.
“This account asks to be shown only to people signed in to Bluesky, so BskyKit does not read it.”
Section titled ““This account asks to be shown only to people signed in to Bluesky, so BskyKit does not read it.””The account has chosen to be hidden from people who are signed out, and BskyKit respects that.

