jyc.dev

Some takes about web devs!

Exploring Bluesky Numbers

Check it on WhiteWind

An investigation into user registration numbers on Bluesky and the AT Protocol, including different counting methodologies and interesting findings.

Understanding Your Place in the Bluesky Universe ๐ŸŒŒ

Ever wondered about your place in the Bluesky universe? ๐Ÿค” Like, "When did I actually join?" or "What's my user number?" Well, seat back and read - it's a bit more interesting (and complex) than you might think!

The Official Numbers ๐Ÿ“Š

According to bsky.jazco.dev, Bluesky is now home to millions of users! At the time of writing this article, we're looking at 18,587,493 users. Pretty impressive, right? ๐Ÿš€

The 10M Celebration Moment ๐ŸŽ‰

Remember when Bluesky hit 10 million users? That was huge! They rolled out this cool feature where you could see your exact position in the Bluesky timeline. You could even generate a fancy image showing your number - but only if you were part of the first 10M club!

The neat thing was how personal they made it - you could only peek at your own number, not anyone else's. โœจ

Check out this example:

"Nous sommes dรฉsormais plus de 10 millions sur Bluesky, et jโ€™รฉtais nยฐ99โ€ฏ654ย !"

Within 100K. Not bad... ๐Ÿ˜

[image or embed]

— NotPatrick (@notpatrick.com) September 17, 2024 at 9:50 AM

A Deep Dive into the Numbers ๐Ÿ”

My curiosity got me, so I dove into the PLC Directory. This is basically the big book of everyone who's ever been part of the AT Protocol system - we're talking about 25 million entries!

I had a lot of fun diving in the data, first pulled everything locally and stored it a raw json file. Then, I started to push entries to a postgres database (Like this I could play with data without thinking about pulling latency to plc directory). All this thanks to remult (but lets not focus on that right now ๐Ÿ˜‰)!

Here's what I discovered when crunching the numbers:

  1. Raw AT Protocol Numbers: Looking at creation timestamps where prev is null
  2. Bluesky-Only Numbers: Filtering out non-Bluesky stuff (bye bye beeboo and localhost! ๐Ÿ‘‹)
  3. Deduplicated Numbers: Clean up duplicate DIDs creation (I feel that it's a bug, it should probably never happen!)

For instance, a user might show up as:

  • Position in global directory: #16,725
  • Position in Bluesky-only: #15,178
  • Position after deduplication: #15,162

Here is the example:

oh wow, yeah the new one is wrong.

bsky.app/profile/notw... Official number 14,725

bsky.app/profile/notw... Yours: 16,360

[image or embed]

— Wes (@notwes.bsky.social) November 15, 2024 at 4:48 PM

Different Counting Methods ๐Ÿงฎ

I'm currently tracking two main numbers:

  • pos_atproto: Your spot in the whole AT Protocol universe
  • pos_bsky: Your position specifically in Bluesky's world

These numbers include everyone who ever registered, even if they later left or got banned. Think of it like yearbook photos - you're part of the history even if you transferred schools! ๐Ÿ“š

Today, in skyzoo.blue, I display your pos_atproto number. In a bit the 2 values will be available (only if you dig into details). I'm not sure if I should change the default number seen to the bsky one? Let me know what you think, tagging me, @jyc.dev.

Side note: For users with a did:web identifier, I also show the closest person who registered around the same time based on their first post. This gives did:web users a rough idea of their "position" in the timeline, even though they don't have a direct PLC number. (The position will end with "web")

The Mystery Delta โ“

Here's where it gets interesting - there's this quirky gap between different counting methods that I'm still trying to figure out.

At 2024-11-17T16:10:00.170373869Z:

  • plc directory: 19,442,992 Bluesky users
  • bsky.jazco.dev: 18,587,493

So what gives? Are some users missing from jazco's numbers? Should I be filtering more users out? I'm sticking with counting everyone who ever joined - it feels right to include everyone, even those who moved away! ๐Ÿ 

Conclusion ๐ŸŽฏ

The AT Protocol and Bluesky ecosystem is like a goldmine for data nerds like me! ๐Ÿค“ The transparency here is pretty unique - you don't get this kind of peek behind the curtain with other platforms.

Key takeaways:

  1. The PLC directory is our window into the platform's growth story ๐Ÿ“ˆ (expect to see a chart soon!)
  2. Different counting methods tell different stories
  3. The number gaps raise some great questions about what makes a user?! An active User?!

Want to explore more? Check out the PLC Directory or bsky.jazco.dev - and keep an eye out for these features coming to skyzoo.blue!

Drop me a line if you have thoughts on these numbers - I'd love to geek out about it with you! ๐Ÿ’ฌ


So we are 18M or 19M already?! ๐Ÿค”