MacKuba

🍎 Kuba Suder's blog on Mac & iOS development

A complete guide to Bluesky 🦋

Categories: Social Comments: 1 comment

(Last update: 26 Mar 2024.)

For the past 10 months, I’ve been a pretty active user of Bluesky. I enjoy it a lot, and I’ve managed to learn a lot about how it works, what works well and what doesn’t, and also what’s likely coming next.

I’ve decided to write down some of the tips & tricks that I often give to friends when I send them an invite code, or the advice and answers that I sometimes give to people that I find in some feed asking about things.

This of course got much longer than I planned 😅 so if only have a moment, here’s a TLDR:

  • there are official iOS and Android apps, but you can also use bsky.app in the browser, or try e.g. Graysky, deck.blue, or Skeets
  • if your timeline feels empty, go to the “Feeds” tab, look for the “Discover New Feeds” section and look for some feeds on the topics that interest you (on the top list or in the search); follow these feeds, and then if you find some interesting people posting in those feeds, follow them too. You can also search for feeds on goodfeeds.co.
  • don’t be afraid to interact with people, repost good posts, like good comments, comment in threads and so on – that’s how you make friends! (but be nice :)
  • if you see too much NSFW stuff, look for “Content filtering” settings in the Moderation tab
  • everything you post here is very public, so don’t share anything too private 😏
  • if you own some cool domain name like “taylorswift.com”, you can set it as your handle
  • hashtags and word muting are now available; gifs, videos and post editing are planned, DMs and private profiles may be coming but not in near future
  • Jack Dorsey is not the CEO and does not run the company ;)

And now the long version:


What is Bluesky?

(A bit of history, skip if you’re not interested :)

Bluesky is a project started originally by Twitter (now an independent company), whose goal is to create a decentralized Twitter-like social network, or more generally, a platform for building various decentralized social networks.

The project was started in Dec 2019 by Jack Dorsey, former Twitter CEO. The basic idea was to design a protocol on which you could build something that would work like Twitter, but would not be under control of a single company that makes unilateral decisions about everything on it. It would be more like web and email, which are open standards that anyone can build on – any company can set up an email service or write an email app, and anyone can sign up for an account and start sending emails. There’s no one central authority on the Internet that can ban you from email altogether.

Such network would consist of many servers owned by different companies and people connecting together, and the idea was that eventually, Twitter itself could become a part of that network, as just one of its elements.

(If this all sounds a lot like the Mastodon social network, or “the Fediverse”, then you’re right – there are a lot of similarities between these two. However, Bluesky is built on a completely different system they’ve designed from scratch, called the AT Protocol or ATProto. They’re hoping that this will let them build some things better than they are done in Mastodon, making the network less confusing, more useful and more user-friendly. Bluesky does not directly connect with Mastodon servers and apps, although there are some “bridges” being worked on.)

After a research phase, in 2021 a team was chosen to build the platform and the Bluesky company was formally created. A woman named Jay Graber, formerly a developer at Zcash, was chosen as the CEO. Thankfully, Jay had the foresight at that point to insist that they’d set it up as an independent company, which was funded, but not controlled by Twitter. Had they not, it almost certainly would have been shut down last year after Elon’s Twitter takeover.

The team has been working on designing and building the pieces of the system throughout 2022, and in February 2023 they’ve launched a very early and rough beta and started slowly letting in some users who wanted to try it out and have signed up on a waitlist. However, the whole Elon thing happened in the meantime and that was a moment when everyone was looking for a Twitter alternative, so the interest has wildly exceeded expectations and they weren’t ready yet to take in everyone.

Since then, the user base has been gradually growing, with people being let in from the waitlist and existing users inviting their friends using invite codes. Meanwhile, the team had to speed some things up to adapt to the new situation and has been working hard on adding the most important features, and building up the backend to allow for more and more traffic. Finally, almost a year later, in the first week of February Bluesky has opened up for registrations from everyone.

The company

Bluesky is still a fairly small team at the moment. The dev team is probably something like a dozen people altogether, and that’s for the frontend, backend, protocol, servers and so on. So they just can’t add new features as fast as they’d like to, but they’re doing what they can.

The team members interact with people on the platform all the time, answering questions and just having fun in general. They’re also building almost everything in public – the source code of the app and servers is available on GitHub, so we can track in real time what they’re working on next, report bugs and sometimes submit code with some new features they can merge in.

The company is set up as a “public benefit corporation”, which basically means (in my non-US layman understanding) that it is a business and it’s meant to make profit, but that profit is not it’s only and main goal. It can and should have other, more noble goals that benefit the public, as the term implies, in this case: creating a protocol for decentralized social apps that everyone can build on.

At the moment, they don’t have a clear plan on how the company is going to make money on the platform – the general idea is to build some extra paid services on top for users and developers. They said they don’t plan to ever add ads and they promise they won’t “enshittify” the service in future. In any case, they’re explicitly building the network to be resilient even in the unlikely scenario that they themselves “turn evil” in the future – the network is meant to be “billionaire-proof”, impossible to completely take over by one guy with too much money. To quote the lead dev:

“Our culture doc includes the phrase “The company is a future adversary” to remind us that we won’t always be at the helm – or at our best – and that we should always give people a safe exit from our company. It’s weird at times to frame our priorities as protecting users from us, but that’s exactly what we’re trying to do.

The Bluesky team is made up of users. None of us come from big tech companies. We all came together because we were frustrated by the experience of feeling helpless about how our online communities were being run. We don’t want to give that same feeling to other people now that we’re the builders.

When we build an open protocol, we’re giving out the building blocks. We want to start from the premise that we’re not always right or best, that when we are right or best then it might not last, and that communities should be empowered to build away from us. Sometimes this can all feel very intangible and abstract, and for the average user the goal is to just feel like a good & usable network. But this is one big reason why we put all the Fancy Technology under the hood.

Also, contrary to what you might have heard, this isn’t “Jack Dorsey’s company”. Yes, he started it, but he isn’t running it, Jay Graber is. Dorsey is still on the board with 1/3 of the vote, but he was very little involved in the project after they started building. He basically gathered a team, gave them a lot of money and let them do their thing. In fact, he deleted his account on the platform last summer, after he was booed off it by the users, and now he’s mostly hanging out on Nostr instead.

Apps

Bluesky has an official mobile app for iOS and Android. It’s written in React Native, so it doesn’t feel fully native in all places and some system integration features take a while to be added – the reason is that they’ve started with a very small team at first (I think initially just one guy did all the frontend), so the only way they could do it was to build for both platforms & the web from one codebase.

At this point, after various improvements over the last months, the mobile app is mostly ok and gets better with every update, it’s also obviously the most feature-complete one. One issue is that it doesn’t support iPad yet.

There is of course also a web interface, at bsky.app, which is pretty good – this is the main UI that I use Bluesky with. At the moment it’s mostly meant to be used while logged in, although some pages like posts/threads and profile views can now be viewed unauthenticated.

But there is also a small but enthusiastic group of third party developers building various apps, tools and experimenting with the protocol. They’ve built several independent apps, libraries to access the API in various languages, and they often manage to build various new features in their apps before the team gets around to doing that in official apps.

Here’s a few of these apps (in various stages of development):

  • Graysky – probably the most advanced one, a mobile app, also in React Native
  • deck.blue – a web-based “Tweetdeck” column UI, written in Flutter
  • SkyFeed – a web app with a column UI that also lets you build custom feeds
  • Skeetdeck – another web-based, more lightweight “Tweetdeck”
  • Skeets – native iOS app with iPad support
  • Skychat, a webapp initially built to let people form a “chat” around a specific hashtag
  • Sora, a new multi-network client for iOS

Additionally, there is also a third party bridge service called SkyBridge that allows you to use Mastodon apps like Ivory to use Bluesky (although of course it only supports a subset of features).

How are things called here?

The app generally uses “neutral” terms like “post”, “repost”, “feed”, “timeline” and so on. That said, pretty early on someone came up with with the word “skeet” for posts, for “sky + tweet”, and it stuck, despite (or likely because of) the team’s protests. So the term is used pretty commonly, though maybe a bit ironically, despite being a bit controversial because of its existing, other slang meaning (see Urban Dictionary)…

The timeline/home feed is also sometimes called a “skyline”.

New users that have joined Bluesky recently are often called “newskies” – there is even a Newskies feed, which includes every new user’s first post (and only their first post).

On the opposite end, some folks sometimes jokingly call people with a long experience on the platform “Bluesky elders” (a reference to one post that was widely made fun of).

A “hellthread” is something that existed for some time in the spring of last year – the initial implementation of notifications notified you of any reply somewhere below your post or comment, to an unlimited depth. People have started creating extremely long and nested threads, which notified everyone involved of any reply, and there was no way to opt out of it. A certain community has formed around these hellthreads, of people who hang out together and sometimes waged wars in them. Eventually, the notifications were fixed, but due to protests, the devs have kept an option to still create hellthreads in one place, hardcoded in the app code. This was finally removed a few months later.

Feeds

Social networks generally include two kinds of feeds: a chronological one, showing all posts from the people you follow in order, and an algorithmic one, showing what the service thinks you will like (which often means though: what they think will bring them more profit). Centralized platforms generally push you towards an algorithmic feed and often make the chronological feed harder to reach (if at all). Mastodon on the other hand only includes chronological feeds and no algorithms.

Bluesky has both – and much, much more.

The default “Following” feed is a classic chronological feed, although with a twist – by default it shows you more replies from the people you follow than on Twitter or Mastodon. You can configure a lot of aspects of that feed in the settings (see the Settings section).

The “Discover” feed is Bluesky’s main algorithmic feed – it mixes some posts from the people you follow with some other popular posts from the platform. It’s not very sophisticated at the moment, so it doesn’t really provide any constant stream of engaging content (but neither does it provide a constant stream of influencers and brands like on Threads). They are asking for feedback and tweaking it, so maybe it will get better over time.

But that’s just the tip of the iceberg. Bluesky has built a system where anyone with a server and some knowledge of coding can implement their own algorithmic feeds that they can share with everyone else. A feed basically reads all new posts on Bluesky from a giant stream and decides which of them to keep and how to arrange them (this can be a shared feed, same for everyone, or a personalized feed that looks different to each user).

There are currently about 40 thousands of custom feeds (as of Feb 2024) made by the Bluesky community. Most of them are feeds matching by keywords – these are feeds on some specific topics like Linux, food, gardening, climate change, astronomy, and so on. They usually define some sets of words, phrases, hashtags, sometimes emojis, and include all posts that contain any of these, chronologically.

There are also various “top posts of the week / all time” feeds, posts using AI models to match some specific kinds of photos like pictures of cats, frogs, or moss, or personal algorithmic feeds that show you posts selected for you according to some specific idea: posts from your mutual follows, from your followers, posts with photos only, posts from your friends who post less than others, and so on. These are all feeds built by third party developers who just had an idea and implemented it, without having to register or apply anywhere or ask anyone for permission.

There is also a very popular web tool called SkyFeed, built by one German developer, which allows you to build some of the simpler feeds using a web form, without having to write code or host it yourself. This allowed a lot of people without programming knowledge to build their own feeds – currently around 85% of all feeds are built in and hosted by SkyFeed.

There is a feed search engine integrated in the official app, in the Feeds tab (the “Discover new feeds” section). You can also search for interesting feeds on these two external sites:

Goodfeeds also has a nice guide to feeds that describes them in more detail, there is also a blog post on Bluesky’s blog.

Safety & moderation

Like on most other networks, you can mute someone if you find them annoying, or you can block them if you find them really annoying. There is no way to mute words and phrases yet It’s also possible (since 28th Feb) to mute words, phrases or hashtags. There’s currently no way to mute something or someone for a specific period of time, but that will hopefully come at some point.

(Note, the blocking mechanism here is pretty aggressive, in that it also hides all previous interactions between the two users; so don’t be surprised if someone blocks you and your reply or quote “disappears” – it wasn’t deleted, just hidden.)

You can also create whole “moderation lists” for muting or blocking some groups of people at once, which can be shared with others. This is meant to let various communities on Bluesky build their own “defences”, by collecting lists of people who are unpleasant or annoying in some way and letting others mute or block them all at once before they come across them. (At the moment there’s no way to collaborate on a list with others in the app, a list can only have one author – though people figure out some ways around it.)

Bluesky itself seems to be pretty light on moderation so far, which some people criticise them for. That said, I think they generally get rid of obvious trolls pretty quickly, and I’ve personally only ever come across a few of those. Things might start changing now that registrations are open though. They claim to have around 20 people in the moderation team right now (as of February), which is about half the total company size.

The general high-level plan for moderation at Bluesky and on the AT Protocol is something they call “composable moderation”. It’s an idea that moderation will have many layers – from server operators including the Bluesky company, through various tools and services provided by other companies, organizations, and communities, ending with some ways to privately personalize your experience according to your personal needs. A lot of this is currently work in progress – the currently available parts are muting/blocking features and shareable moderation lists – but more more things like server operator’s tooling and so-called “labeller” services should be launching very soon.

You can read a bit more about how all the pieces fit together from the moderation perspective in this article by Rudy Fraser.

Privacy

One important thing from the privacy aspect that may not be obvious at first, which you need to be aware of: the underlying protocol on which Bluesky runs is extremely open. Anyone who knows how to code can write an app or tool that can read practically any data about anyone, without having to ask anyone for permission (since there’s no central authority that can require registration and payment to get API keys like on Twitter). This is by design, because all the different pieces of the network that make it work, apps, tools and services, need to be able to access the data to provide their functionality, and we want everyone to be able to build those to keep the network decentralized and not controlled by one corporation.

This has both advantages and disadvantages. For a developer, it means that the only limit is your time and imagination (and maybe API rate limits). You can build feeds that show all posts with cat photos, a bot that responds to the text “/honk” with a random photo of a goose, implement some new features before the Bluesky team gets around to that, count the statistics of how the percentage of languages used in posts has changed over time, and whatever else you can think of. You don’t have any monthly quotas or paid plans.

For a user though, this means that everything you do is very public – kind of like it was on Twitter, just more so, because there are fewer restrictions.

Specifically, all of these are publicly accessible (even if they aren’t all displayed in the official app):

  • your posts
  • your likes
  • the photos you’ve attached to posts
  • all the handles you’ve previously used (you can’t delete those)
  • the list of people you follow
  • the list of people you block (!)
  • the user lists and moderation lists (mute/block lists) that you’ve created
  • which moderation lists (yours or others’) you are blocking people with

And these things are private and known only to you (and the apps and tools that you’ve explicitly granted access to your account):

  • the people you’re muting (individually or through lists)
  • the words, phrases, hashtags etc. that you’re muting
  • your selected languages and other preferences
  • your email address, birthday and phone number
  • who invited you and who you have invited
  • the custom feeds that you’ve saved or pinned
    • one caveat though: the provider of the feed knows when you are opening it

The difference between muting and blocking is because muting is simply a filter applied only for you – nobody else needs to know that you’ve asked your app to hide some of the posts. On the other hand, blocking is inherently a two-way thing – that other person, their app/server and any other pieces of the network that process their posts need to be aware of the block, so that they can prevent them from interacting with you. So the fact that the block exists needs to be publicly known.

Now, what all of this can mean in practice:

  • anyone can download anyone’s posts and do various targeted or global analysis on it, track your likes and contact graph and so on
  • if you are posting personal photos, especially NSFW photos or photos that can be geolocated, anyone can be downloading all of them automatically
  • some (any) companies can potentially train some kind of AI models on the data (speaking purely about technical possibility, not legality of course)
  • blocking someone only adds friction, but it can’t completely prevent them from seeing your posts (same as it always was on Twitter until recent changes, since you could always open a post in an “incognito” window)
  • there is no way to add a feature that would let you “lock” a profile for followers only, hiding your content from others, because all post data has to be public for the network to work
  • copies of any posts you delete might still remain on some third party servers

Some of this might sound scary, but most of this is or was always the case on other social networks too, those that have APIs at least – if you’re posting something publicly anywhere, you need to realize that anyone can record it forever. The main difference is that it’s easier to do it here, because the API has fewer restrictions than on centralized platforms, and that it’s currently not possible to do any semi-private content that’s visible to some people but not to others.

Account security

For logging in to third party apps and tools, there is currently a temporary system of “app passwords” in place. It will be replaced with something more robust (OAuth) soon.

At the moment, when you log in to an app other than the official one, you should use a special one-time password that you can generate in the official app (Settings / App Passwords). Those passwords look something like this: abcd-ef56-vxyz-qq34. You can generate a separate password for every tool and app that you log into.

An app password grants almost the same privileges as the main password, but without a few critical ones, and you can revoke it at any time from the Settings screen if you’re not using that app anymore, which disables access to your account for that app.

Two-Factor Authentication (2FA) is not available at the moment, but it’s also coming soon.

Handles & IDs

Bluesky has a really cool system of handles. They couldn’t have just used single-element handles like “@donaldtusk”, because that wouldn’t really make sense in a decentralized system. They also didn’t want to bind your account permanently to the name of the server you’re on like in Mastodon, where you’re e.g. “ivory@tapbots.social” and you can’t change that unless you make a new account.

So here’s what they’ve come up with: internally, your account is identified by a unique identifier called “DID” (Decentralized Identifier), which is an ugly string of random letters. To that DID you assign a handle, which you can switch at any moment to a different one, and any contacts, references and connections will (mostly) stay intact; and the handle is actually just any domain name, usually displayed with a “@“ at the beginning, but without any additional username before it.

By default, when you first join Bluesky (the current official server) you’re given a handle which is a subdomain of bsky.social, e.g. “dril.bsky.social”. This is a real domain name, you can type it into the address bar of the browser and it will redirect you to your profile on Bluesky.

But at any moment you can switch to a different handle by assigning any domain name that you own. It can a very short name like retr0.id, or something long with one of those quirky new TLDs like .horse or .computer, or it can even be a very official sounding domain like washingtonpost.com.

There are two ways to assign a domain, either via HTTP by putting a file in a specific place on the website hosted on the domain, or via DNS by putting a new entry in your domain configuration – the complete instructions are here. (BTW, Bluesky also runs a service that resells and automatically configures domains through a partnership with Namecheap, which is the first of possibly many premium services that they want to actually make money on.)

This also means that you don’t need to rush to “reserve your handle” at ***.bsky.social – because custom handles are cooler anyway 😎 (although be aware that if you change your handle from ***.bsky.social to a custom domain, that old handle becomes available for others again).

This system will also make it much easier to move between servers once there are independent ones out there – you will be able to transfer your whole account somewhere else, taking all your content and connections with you, because your DID identifier will stay the same.

What is this federation thing?

The goal of Bluesky is to be a network that consists of many, many servers run by a lot of different companies, organizations and people that connect with each other – that’s roughly what federation means. Initially, all the critical pieces were controlled by Bluesky PBC; however, this is now starting to change. The team has been working hard preparing everything needed for the launch for the last few months (which is partly why some of the more user-facing features had to wait), and now they’ve taken a big step towards federation by letting people migrate their accounts to self-hosted servers. This will be a gradual, controlled rollout, so that they have a chance to test how things are working, but the network is really starting to open up now.

If you’re worried that things will get more complicated, maybe you have some bad experiences from Mastodon – then don’t worry. They’ve specifically designed everything to be less confusing. The accounts on the platform have actually already been spread out on a number of separate servers for a while now (though all controlled by Bluesky) – they’ve been migrated sometime in November, and few people have noticed, because everything just kept working. Now, you will have an option to move your account to a server controlled by someone else, if you want to – but you’ll be able to just ignore the whole thing if you don’t care about it.

Note, Bluesky opening to federation does not mean that it will connect with Mastodon servers, since they use different, incompatible protocols. There is however a third party “bridge” being built that should become available in the coming months.

Search

Fully working search is a fairly recent addition, because it used to only return the first page, but it works pretty well right now. It’s a global search that returns anything that anyone has written with a given term chronologically, so like on Twitter (and not like on Mastodon). You can also add “from:some.handle” (without the @) to find only posts from someone, or “from:me” to search within your own posts.

One thing that doesn’t fully work yet is searching for hashtags. Hashtag search now works too! (released on 28th Feb)

Hashtags

Hashtags have been partially implemented since last autumn – the protocol specifications were ready and the official app was actually encoding hashtag data into posts for a few months, but it wasn’t displaying them in the UI (although that did work in some third party apps). Full support was finally added on 28th February. When you click on a hashtag you have an option to search for all posts with this hashtag, only posts from the given person, or to mute that hashtag.

One thing that’s defined in the protocol but not implemented yet is that hashtags will eventually have two forms: inline tags like on Twitter, and external tags which are shown below the post, which I think is the way they work on Tumblr (Mastodon also recently started showing trailing hashtags at the end of a post as somewhat separated visually from the text). You will be able to use either or both in a post according to your preference, and they will be interchangeable, with both being returned in the same search.

Settings

Some things that you may want to change in the settings:

  • Languages – turn on all the languages that you understand or want to see; Bluesky generally hides posts in languages that you don’t have enabled from most places like your home timeline or feeds. For your own posts, you set a post’s language yourself in the compose post window – you can switch between a few languages, and if you have the wrong one set when writing, a popup with a warning should appear.
  • Thread Preferences – you can choose to have threads sorted by newest, oldest or most liked comments; there is also an experimental nested (tree-like) thread view that I highly recommend enabling (although for longer threads you may want to use my tool Skythread instead :]
  • Home Feed Preferences – choose if you want to see replies, quotes, reposts etc. in the home feed.
    Unlike Twitter or Mastodon, where you only see replies in the feed if they are between two people you both follow, Bluesky by default shows you replies made by people you follow to anyone – but only when they have at least 2 likes. This is actually pretty nice when you don’t follow many people at the beginning, because it’s a great way to find new people to follow – but it may get too noisy when you follow a lot of active people.
    So you can set this according to your preferences – if you’re just starting, you can turn on replies to everyone even with 0 likes, and if you want to trim your timeline a bit, set it to “followers only” to make it work like on Twitter, and/or increase the likes threshold.
  • Content Filtering (in Moderation) – here you can set what kind of potentially objectionable content you may want to show or hide – generally various NSFW things. I’m not sure what the defaults are currently, but it’s worth checking and tweaking to your preferences. (Watch out, there can be quite a lot of somewhat NSFW content there that you can randomly come across in some feeds, although it’s generally hidden behind a content warning.)
  • “Require alt text before posting” – you can turn this on to always be reminded to set an alt text on photos (it’s generally considered nice to add the alt text to images whenever possible, for people who use tools like screen readers or VoiceOver)

Missing features

There are a few things missing on Bluesky that are available on some other networks. Some of these are limitations of the protocol, and some are just a matter of too much work and too few hands to do it – the team is still pretty small and they have a ton of things to build to catch up with more mature platforms (Mastodon) or those with more people and funds (Threads), and they need to prioritize and some things are always put off.

That said, in recent months they’ve started accepting outside contributions and some recent features have actually been submitted as PRs from external developers.

Some things that are still missing:

Private profiles / circles

Like I’ve mentioned in the Privacy section, the AT Protocol as built currently requires all data apart from your private settings to be completely public. There is no way to make something that you only share with some people but not others. There may very well be something like this in the future, because a lot of people are asking for this and the team wants to look into it – but they will have to first invent some other, separate way to share content in the protocol, which will take a lot of time and thinking. So it’s likely to come at some point, but not anytime soon, because it’s much harder than it may look.

DMs

For the same reason, there’s no way right now to allow you to send messages on Bluesky which are shared with someone else, but only with that one person. And again, everyone’s asking about it and the team would like to add it, but at this point they don’t even know how they’re going to do it yet. So it’s on the list, but it’s pretty far down the list.

GIFs & video

Another pretty obvious missing things are gifs (with a hard “g”) and video upload. These are on the list, but they will require some work and the team had other, higher priority things to do.

The problem with video is a lot higher bandwidth and storage use than with text and images, but more importantly, it’s also a lot more moderation work. There are all kinds of ugly things that people could upload in video form, and someone has to check it all if it’s reported…

Gifs should generally be easier to do at first glance, but in practice they’re just another form of video, just shorter and without audio, so the above problems also apply.

For now, they’ve added a way to embed e.g. YouTube videos and gifs from Giphy and Tenor, which will play inline inside a post when clicked, so it’s a pretty good workaround for now (for Giphy gifs, you need to paste a direct link to the image). This whole feature was actually implemented by a third party developer.

Post editing

This will definitely be added at some point, but it’s also a relatively complex feature, because of the need to store the previous versions of an edited post that you should be able to access somehow. They want to do it right and that will require some thinking on how to solve the problem in the most general way.

Soft-blocking / removing followers

There is an issue currently that there is no way to remove someone from your followers except by having them blocked. If you block-and-unblock them, what some people call “soft blocking”, they stay on the followers list. This is a current limitation of how follows are designed in the protocol – when someone follows you, they do it by adding a “follow record” to their account, and only they can update or delete their own records, you can’t do that from your side.

I think this is likely to get fixed at some point with some kind of workaround, but it’s not trivial to add and not high priority at the moment.

Polls

This might be a bit tricky, because we probably don’t want to have everyone’s poll choices public to everyone, and right now everything is public… But this is also one of those things that people ask about regularly, so I hope they’ll figure something out.

In the meantime, you can try a third party tool called poll.blue, which makes a post on Bluesky from your account with a link for each option and shows the results on their website.

Tracking quotes

Bluesky has had support for quote-posting like on Twitter since the beginning and quotes are widely used on the platform. However, there’s currently no way to see a list of all quotes of a given post (although you do get notified when someone quotes you).

I’ve added a quote search to my tool Skythread – paste the link to the post into the search bar and then look for a “quotes” link below the post when it loads, and click it to see the list of all quotes. Alternatively, there is also a feed of all quotes of all your posts made by @flicknow.xyz (but this only works for your posts).

Trends

It would be nice to have some kind of “currently trending” screen like on Twitter. I think it would make Bluesky a better place for learning quickly about current events and hot topics, which was something that Twitter was always good at, and make it easier to find interesting things to read.

It should be pretty easy to implement technically – there’s already a bot that someone made at @nowbreezing.ntw.app, which posts “tag clouds” of trending words & phrases every 10 minutes, other developers have also implemented it e.g. in Graysky, Skeets or SkyFeed. The main problem is probably in deciding (automatically) which trending words to promote and which should be hidden… it will probably require a lot of manual control at first to keep it safe.

Verification

It’s hard to implement verification in a decentralized network, but the good news is – there’s no need to! The system of domain names in handles serves as a way of verifying accounts.

If someone has a handle that matches the domain of e.g. some newspaper, organization or government branch that you recognize, you can assume that the account is operated by someone who was authorized by that entity. So e.g. @wyden.senate.gov is definitely US Senator Wyden (or at least his staff), and @nytimes.com is definitely The New York Times. No one has to manually verify their documents to vouch for them.

If you’re setting up an account for some well known organization, it’s highly recommended to switch to your domain as the handle from the start to make it clear that it’s an official account.

OAuth and 2FA

Coming soon, see the “Account security” section.

Longer posts

This seems to have been a conscious decision that the team wanted to create a medium that’s more like Twitter than like Mastodon when it comes to post length (although Jack Dorsey apparently disagreed). This isn’t a simple matter of a field length, because this affects the way people communicate, and allowing longer posts has advantages and disadvantages, it’s just a different text form. (See a comment from lead dev about this.)

So it looks like this won’t be changing – although there might later be other “apps” implemented on the AT Protocol that aren’t a part of Bluesky that will allow longer posts (even complete articles), and they might be somehow integrated into Bluesky in the future.

Bookmarks

It’s on the list, but no timeline at the moment.

Links on the profile, pinned posts, scheduling, disabling reposts per user…

I haven’t heard much about those, but I’m assuming it’s all coming at some point once they get through the hard stuff they’re busy with now.

Other tools

Finally, here are a few tools written by third party devs that you might find useful:

  • Firesky – a site that shows you a live feed of every single new post made on Bluesky – feels like watching the Matrix screen
  • Clearsky – lets you look up the list of all people that are blocking you (or someone else), or the mute/block lists that you’ve been added to
  • wolfgang.raios.xyz – also shows your blockers, block statistics and can generate “interaction circle” images that show who you mostly keep in touch with
  • Jaz’s Profile Cleaner – lets you delete old data (old posts etc.) from your account
  • PLC handle tracker or internect.info – these let you look up the DID of an account and how the assigned handle has changed in the past
  • Jaz’s post stats (and mine)
  • Atlas, a “bird’s eye view” map of Bluesky (warning, takes some time to load)
  • Skythread – a thread reader by yours truly, mentioned earlier :]
  • poll.blue - a tool that’s a bit of a workaround to make polls on Bluesky

--

And some other guides (some mentioned earlier in the blog post):


Thanks to Mozzius, Shreyan and Marshal for the feedback on the first draft :)

Changelog:

26 Mar 2024: added mention about handle history in the Privacy section

2 Mar 2024: hashtags and word muting are now available, updated the part about longer posts

23 Feb 2024: federation is live!

21 Feb 2024: search now returns results when you search for a hashtag.

1 comment:

Lou Plummer

Thanks for the tips and for your thread reader (bookmarked)!