Skythread updates

Since last autumn, I’ve mostly been focused on database and server stuff (the Postgres migration) and Ruby coding (e.g. the firehose consumer optimizations. I also have a couple of JavaScript projects, mainly Skythread – I’ve been collecting a todo list of things to fix and add there, but I somehow couldn’t get myself to switch contexts and take a look at that project again. I’ve been procrastinating on this for months.

And somehow, one day I decided to just sit down and open Skythread again and start coding – and apparently starting was the hardest part, who would’ve guessed? 🙃

So here are the “fixes and improvements” I managed to make in the last ~1.5 months:

  • support for showing outline hashtags in post records
  • support for video embeds, which for now are rendered like images, as a “[Video]” link
  • clicking Tenor GIF embeds now loads and displays the GIF inline
  • you can look up URLs from e.g. deer.social, zeppelin.social and other forks of the Bluesky webapp just like with bsky.app; same goes for the Label Scanner (thx @lucidillusions.in and @roland.cros.by for the suggestion)
  • number of quotes of a post is shown in the post footer for all posts in the thread (which have any quotes), and not just for the root post
  • added an indicator in the post footer if replies are limited in a thread due to a thread gate
  • avatars are loaded lazily now, which should help with long threads with hundreds of posts, where CDN requests get rate-limited (it’s still not ideal, I’m planning to work on this a bit more)
  • bookmark 📌 comments are listed at the end
  • simplified the look of quotes on the quotes list a bit, so that more of them fit on the page at the same time
  • posts in quotes list and hashtag feed views now show an icon with the number of replies in the footer
  • fixed some annoying layout issues in some “hidden replies” threads (☣)
  • if hidden replies don’t load, there is now some info about why they didn’t
  • fixed being able to close the login dialog on pages that require login, like the timeline stats
  • whitespace is trimmed from login/password fields in the login form

Additionally, I’ve been working on a new set of features somewhat separate from the main thread view, locked behind a login gate, meant to provide various statistics and utilities for your account. I haven’t figured out the navigation part yet, so they’re only reachable through direct links for now, but here’s what I’ve built there so far:


  1. Posting statistics

A table displays Bluesky posting statistics, showing daily post metrics for various user handles over a 7-day period.

This tool lets you scan and analyze various timelines in other to estimate who posts how much on average. The main use case is either to scan your home timeline, to find out if maybe some people are adding a little bit too much content to it, and you could consider unfollowing them, or at least moving them to a list (as a workaround for no “turn off reposts” option yet); or to look closer at one or more specific people that you are considering following, to see how much they would add to the timeline if you follow them.

You can select the time range of how many days back to check, and there are four different modes:

  • scan home timeline
  • scan a list timeline, i.e. what you see when you pin a user list as a feed (list feeds don’t include reposts)
  • scan one or more specific users – look up the handles using autocomplete
  • scan your own profile timeline (what you post/repost)

Note: the “archive” of the home timeline that you can fetch from the Bluesky AppView is limited to some fixed number of recent posts, which I think includes all replies (even if they aren’t displayed). Depending on how many people you follow, you will only be able to fetch some amount of days back before you reach the end, likely not all 60 that the slider allows. For me the limit is usually about 3 weeks, but I’ve seen people say that they only get a few days worth of posts, or even less than one day (!).


  1. Like statistics

A table shows Like statistics for the past 30 days, listing accounts and the number of likes from and on a user's posts.

This one is for scanning likes – yours on posts and comments of others, and those you’ve received from them. Again, you select a time range to scan, and you get two tables, with the people you gave and got the most likes from recently. It can be a good way to find some people that you might have a lot in common with, but maybe aren’t following yet.


  1. Timeline search

Page which shows a search result for 'appview', displaying social media posts and replies that include that term.

And the third tool is a very “MVP”-version thingie for searching things you might have seen on your home timeline, but can’t find again. You need to first select a time range to fetch (right now it’s not saved anywhere, so you lose it after closing the page), and then type some word or phrase in the search field to show matching posts from what was fetched.

This is mostly just something that I built in <2 hours because someone asked about it, but it’s also a first piece of something bigger that I want to make later this summer. Stay tuned 😏

Kuba Suder @mackuba