Show HN: I made a tool to port tweets to Bluesky mantaining their original date
524 points
1 month ago
| 32 comments
| bluemigrate.com
| HN
Bluesky allows to backdate their posts with their API, so I made this tool to copy your twitter (X) profile to Bluesky keeping the backdated dates of your tweets, showing as if they were posted back then
Aurornis
1 month ago
[-]
Interesting tool, but I'm very surprised that they allow backdating posts.

Backdating posts opens up a world of social engineering scams. You can create an account that appears to have predicted a lot of past events, sports scores, or stock prices with timestamps prior to those events occurring. The scam is to create an account that appears to have great stock advice or sports betting predictions and then charge people for it.

reply
jer0me
1 month ago
[-]
I believe this is possible because of how the AT Protocol works. Bluesky shows a warning[1] on these posts and displays both times, but sorts them by the backdated time.

[1]: https://bsky.app/profile/bluemigrate.com/post/3lc3r4fqen62l

reply
mayneack
1 month ago
[-]
I think the reason it works that way is because they want strong guarantees for the future portability of your skeets. It's sort of a correction for Mastodon's reliance on server admins' goodwill.
reply
BolexNOLA
1 month ago
[-]
>skeets

I’m cackling over here. How have I never heard this when people talk about blue sky?

reply
OrsonSmelles
1 month ago
[-]
To the windoooooooooooooooooooow....
reply
__MatrixMan__
1 month ago
[-]
Surely this is what he was talking about. Lil John was decades ahead of his time.
reply
cookiemonsieur
1 month ago
[-]
A Lil Jon reference on a HN thread about Bluesky was most definitely not on my 2025 bingo card. But I'll take it.
reply
nextts
1 month ago
[-]
Talking of "Jon" and "Skeet", there is a fairly well known programmer called Jon Skeet. If you are a C# developer good chance he has answered you stack overflow question!
reply
miroljub
1 month ago
[-]
If you are a bit older, you'd remember the same guy fighting for Java in bloody flame wars against C and C++ on Usenet. When I first saw him as a C# devotee on Stack Overflow, I was surprised it's the same guy.
reply
Kye
1 month ago
[-]
Some people got the idea it has something to do with some song because (not an actual dictionary) Urban Dictionary said so when the actual meaning is "sky tweet."
reply
Larrikin
1 month ago
[-]
They need to come up with their own term or confirm they are OK that the name skeet is a sex act. You don't get to just pretend the term doesn't exist because you didn't listen to one of the most popular songs of that decade using an already well established term. It's also heavily used in one of the most popular comedy shows of that decade as well The meaning is well established
reply
brimwats
1 month ago
[-]
I mean, the CEO of bsky used skeet unironically in interviews so I'd say it's a-ok
reply
justinpombrio
1 month ago
[-]
> (not an actual dictionary) Urban Dictionary

<troll> The definition of dictionary is just "Words about words" (source: Urban Dictionary), so I'd say that Urban Dictionary qualifies. </troll>

reply
bobsmooth
1 month ago
[-]
UD has been quoted in court cases, it's absolutely a dictionary.
reply
account42
1 month ago
[-]
UD documents existing connotations of words and expressions. That you don't think it's an actual dictionary doesn't change the fact that those connotations exist.

"sky tweet" is also a stupid name since a tweet is already the name for a post on a very specific platform.

reply
delecti
1 month ago
[-]
I'm not sure I get why "sky tweet" is a stupid name. "Tweet" was a pretty arbitrarily chosen name for a post on Twitter, but now that "tweet" is a pretty established word, it seems reasonable to use a portmanteau based on that word for a platform based on that platform.

Though in practice I think "skeet" was a bit of a fad to be provocative, and most people just call them tweets, even on bluesky.

reply
cortesoft
1 month ago
[-]
The song didn’t create the word, it just popularized a word that was already in use when the song came out.
reply
albedoa
1 month ago
[-]
> not an actual dictionary

Go on, tell us what you think an "actual dictionary" is.

reply
Retr0id
1 month ago
[-]
hah, good one
reply
mayneack
1 month ago
[-]
People certainly talk about this _on_ bluesky. No idea how much it's escaped outside.
reply
wojciii
1 month ago
[-]
I use bluesky all the time and have yet to use the term "skeet".

I don't think it's important. What is important is using a sane environment. X is completely crazy.

reply
BolexNOLA
1 month ago
[-]
Oh I think it’s very important and it’s all we should talk about right now
reply
londons_explore
1 month ago
[-]
Make a community on X and only let sane people in.
reply
platz
1 month ago
[-]
can we just come up with one common term to to refer to all of my these between sites
reply
verdverm
1 month ago
[-]
"post"
reply
miroljub
1 month ago
[-]
"tweet"
reply
wojciii
1 month ago
[-]
No. Let twitter burn and be forgotten.
reply
miroljub
1 month ago
[-]
You mean like "Xerox"?
reply
AtomBalm
1 month ago
[-]
To the window, to the wall! To my social media feed I crawl!
reply
tekknik
1 month ago
[-]
does anybody in this thread actually know what skeet means? i’m laughing as well at the idea of a bunch of people thinking they’re getting back at twitter by skeeting on the internet.
reply
dietr1ch
1 month ago
[-]
It'd be cool if they also verified the dates to get rid of the warning of honest backdated posts.
reply
pimlottc
1 month ago
[-]
What constitutes an honest backdated post? How would they be able to verify it?
reply
tough
1 month ago
[-]
they could fetch the post reference on x.com with the real date, and store a zkProof of its existance, relying the verfiability-trust then to x not messing with them
reply
toomuchtodo
1 month ago
[-]
Or use the Wayback Machine? You can trust its captures, courts do. Queue archiving jobs per handle, backfill from the archives after the initial archiving request has completed.

https://katharinabrunner.de/2024/02/archiving-websites-the-i...

https://x.com/paulmcgorrery/status/1178561480385421312 (Dyno Nobel Inc v Orica Explosives Technology Pty Ltd (no 2) [2019] FCA 1552)

https://www.michbar.org/journal/Details/Old-websites-seldom-...

https://www.lexisnexis.com/community/insights/legal/b/though...

reply
arcticbull
1 month ago
[-]
Wouldn't that require a very expensive API contract that X would be quite uninterested in signing?
reply
pjc50
1 month ago
[-]
> they could fetch the post reference on x.com with the real date

Twitter posts are only available to authenticated users, and the API is really quite expensive now - that was one of the many reasons people have wanted to move off it!

reply
celticninja
1 month ago
[-]
Open a PR
reply
krainboltgreene
1 month ago
[-]
You going to donate your CPU for that? Only about a billion or ten tweets.
reply
dietr1ch
1 month ago
[-]
You don't need to migrate everything, just getting the ones from users that migrated from twitter would help a lot seeding Bluesky profiles.

You can also link Twitter to Bluesky with either OAuth, or a Twitter post with a Bluesky challenge to prove you have control of the account.

reply
pimlottc
1 month ago
[-]
That sounds like a lot of manual work, as I don’t expect Twitter to offer an API for departing users…
reply
rad_gruchalski
1 month ago
[-]
Not an API but if you're a departing user: https://www.theverge.com/23453703/twitter-archive-download-h.... Bottom line: it's possible to download all account history with tweets in JSON format with dates, and more.
reply
pimlottc
1 month ago
[-]
Sure, but now you're back to trust. Unless it's signed, which it doesn't sound like it is, anyone could fabricate their Twitter post history.
reply
kurisufag
1 month ago
[-]
nope. post here from 9/11 2001, no warning [0]. it's fine if they added a check recently to flag backdated posts, but there's no telling how many incorrectly-timed things went up before they added that ([0] is from about a year ago, fwiw). the whole early history of the platform is questionable, and it's just shoddy protocol design.

[0] https://bsky.app/profile/lul4.bsky.social/post/3kgaesbxs7f25

(if you work for bsky please don't add a flag to that, it's my favorite party trick)

reply
jer0me
1 month ago
[-]
Looking at the JSON data in dev tools, it looks like there are separate `createdAt` and `indexedAt` fields, the latter of which was probably a later addition. For your—likely pre-migration—post, both are set to 9/11. On more recent posts, they're separate dates.
reply
extraduder_ire
1 month ago
[-]
That post does indeed predate bluesky tracking index times, I remember seeing it before they announced that change. I believe it was motivated by other migration services becoming popular. Forward-dating was fixed even earlier, I think, since it might allow people to "pin" their posts to the top of reverse-chronological feeds.

Some of my favourite backdated posts are from the years 1776 and 1.

reply
pfraze
1 month ago
[-]
More specifically the reason we didn’t have an index time for that post was an architectural migration which lost our prior witness times. That was pretty early on. At this point we’d take pains to preserve those timestamps, and I’m fairly sure we will need to publish them for other folks to use at some point
reply
nidnogg
1 month ago
[-]
Very nice.
reply
jampa
1 month ago
[-]
You can still do that even without changing the timestamp. Back in the old days of the internet, people used to get famous by claiming they predicted all the results of the FIFA World Cup by posting every possible outcome and then deleting those where they were wrong. Then, they would publicize their account just before the final match, and people would go wild.
reply
spullara
1 month ago
[-]
before this people used to send out stock predictions by mail to power of 2 people with each prediction and its opposite, eventually you get down to a person who you have always sent the correct prediction.
reply
acomjean
1 month ago
[-]
That was a scam used for betting. Call this phone number for your free “lock”. Half got team a, half team b. They did it twice then asked those who were winning and kept calling to pay for the next prediction.
reply
spullara
1 month ago
[-]
oh that scales nicely
reply
BiteCode_dev
1 month ago
[-]
Just realized the French lottery is only 19 068 840 combinations. You could send spam to 19 millions people, each with a number saying you can predict the lottery, and if they send you 10 000 euros in BTC, you could give them the next one.
reply
rglullis
1 month ago
[-]
I am more surprised by how we got to this world where people think in terms of what software developers "allows" us to do, or not do.
reply
Aurornis
1 month ago
[-]
> in terms of what software developers "allows" us to do, or not do.

You can do whatever you want with the the software. It's right here: https://github.com/bluesky-social

You cannot do whatever you want on someone else's hosted website. They don't allow you to delete other users and edit other people's posts because everyone agrees that would make it useless.

reply
rglullis
1 month ago
[-]
> You cannot do whatever you want on someone else's hosted website

The whole thing with Bluesky and decentralized protocols is no server can enforce special rules.

Sure, they could come up with something that says "our PDS will not accept backdated events", but they will not be able to stop someone else to set up a server that does that without any issue.

reply
pfraze
1 month ago
[-]
Network authority models are more nuanced than “nobody can tell me what to do” vs “one person controls everything.”
reply
rglullis
1 month ago
[-]
Indeed, but you are not answering the question: how can you reconcile the idea that ATProto is meant to be decentralized (i.e, no single authority) and at the same time have rules that are enforced (purely by software, I'm not arguing that rules could be enforced socially) by any particular server?

You would need some form of distributed consensus mechanism, but then you either end up with some exclusive club to implement Paxos or you will need some blockchain-y solution, no?

reply
pfraze
1 month ago
[-]
Atproto and ActivityPub are both multi-polar governance, though AP more aggressively so (though we hope not for long as we pursue some lower-cost execution models for the appview). Consequently the realpolitik is, what's the business logic of the applications with the most users.
reply
odo1242
1 month ago
[-]
Bluesky consists of PDSs and a central indexing server. Bluesky themselves can say that their indexing server won't accept backdated posts, thus making all posts on the Bluesky app itself have valid dates, but others would then be able to make another version of Bluesky with the same posts that also does accept backdated posts.
reply
rglullis
1 month ago
[-]
> a central indexing server.

Then can we drop the pretense that ATProto is actually usable without Bluesky's AppView? [0]

> posts on the Bluesky app itself have valid dates

Who's to say what is a "valid date" in a decentralized system that (in theory) does not have a central authority nor depends on a consensus mechanism?

[0]: https://news.ycombinator.com/item?id=42634786

reply
odo1242
1 month ago
[-]
ATProto is usable without Bluesky’s AppView. You just need to create another centralized indexing server of your own and have it index all PDSs. This is certainly less decentralized than other systems since there’s a barrier to entry (getting the compute power to index all PDSs), but that’s the tradeoff you make by not having server-specific namespaces like Mastodon does. They seem to also make their AppView implementation open-source, which seems to show their goodwill.

You do still get the benefits of being able to interoperate between different apps that may not know each other exist without the disadvantages of having server-specific namespaces, which is of course the point.

“A valid date” would be determined by said server (BlueSky’s or yours). You could choose to write a server that enforces consistent dates or one that does not, and the definition of a valid date would be different per AppView.

I acknowledge the other way of doing it which ActivityPub uses has some benefits as well.

reply
rglullis
1 month ago
[-]
ActivityPods implements ActivityPub vocabulary while using SOLID data stores. You get your identity and data, you can interact with other ActivityPub software and you do not need to rely or set up any centralized indexer.

There is no "goodwill". Bluesky's plan (from day one!) has been to create something that could have been used by Twitter to keep them as the gatekeeper of the data while removing them from any liability for custody. They know that their moat is on their expensive indexer and they will not take any measure that gives this power to end users.

reply
pfraze
1 month ago
[-]
One of our current projects is to create a partial sync model so that self hosted appviews can be run more cheaply. After that, it’s really just the cost of physics
reply
toyg
1 month ago
[-]
Surprised why? A culture based around systems with privileged "root" and "admins" was always going to be fundamentally hierarchical. It was an accident of history that the network layer ended up getting developed in locations with a more horizontal culture (which partly explains why our network protocols are so loose and insecure). It took a big, conscious effort (Free Software) to force open at least some elements of it.

Without strong and deliberate efforts to maintain a culture of openness and freedom, IT is a heartless cager of men.

reply
blitzar
1 month ago
[-]
I fight for the Users!
reply
evbogue
1 month ago
[-]
Bluesky was developed with backdated posts as a stated goal, see Jay's original prototype: https://github.com/arcalinea/smor-serve
reply
ezfe
1 month ago
[-]
If you look at the imported posts, they have a badge that says the date they were imported and says the date on the post is unverified.
reply
evbogue
1 month ago
[-]
Yes, but this badge is generated at their Appview index layer and not at your PDS.
reply
chc4
1 month ago
[-]
If you are syncing data from another PDS, there is no way to verify that posts have an accurate date, unless you have some central ledger which is antithetical to allowing self-hosting and being distributed.
reply
evbogue
1 month ago
[-]
Correct. The trade-off here is on Bluesky you can delete or re-order your posts which you cannot do on a network with strict message ordering. Your PDS webmaster can also rewrite your messages for you if they become unhappy with your messaging.
reply
lukev
1 month ago
[-]
This isn't quite true. Your PDS can't rewrite your messages: all messages are signed with a key unique to your account.

That said, the PDS is effectively also your private key custodian. Most people who aren't nerds are happy to let Bluesky PBC manage their keys. But if that's your threat model, you should absolutely move to a self-managed PDS.

The protocol also actually allows you to manage your keys differently. You could in theory have a "read-only" PDS, and generate all your posts locally using a local key (conceptually much closer to a crypto wallet.)

In that scenario, the validity of posts as originating from a known identity is extremely strong.

reply
evbogue
1 month ago
[-]
Yes, and what if they had a tab in the Bluesky app where you generated a keypair, registered the pubkey at your PDS and then began signing messages in the app? You could rotate keys on demand and update the PDS every time you make a new one.
reply
pfraze
1 month ago
[-]
Originally that was the design. We just felt it wasn’t feasible as the primary operation.

The PLC registry supports an override key for adversarial migrations, which was our chosen alternative

reply
evbogue
1 month ago
[-]
I don't think it should be the primary operation, not with the scale that Bluesky has achieved. We need this in the Bluesky App so a handful of p2p weirdos can feel they are authentically using a distributed social platform without caesars and all of that.

I'll look into the registry override too, maybe I can hack something together around that.

reply
lukev
1 month ago
[-]
Yeah but if you lost your phone you'd be screwed.

There's ways around it... the identity mechanism supports multiple keys so you could have a backup in escrow.

But most people don't want to worry about key management at that level. Hell, I know exactly how everything works, and key management still scares me. The consequences of a mistake are huge.

reply
evbogue
1 month ago
[-]
Yes, that key is screwed because it's lost, stolen, at the bottom of the river, etc. But this is when you generate a new key and store that pubkey at your PDS so the Appview can find and index your new posts from your new phone. It's the same thing that happens when I reinstall Debian on my Thinkpad and upload a new ed25519 pubkey to Github so I can push again.

Edit: or we could backup the key.

reply
chc4
1 month ago
[-]
Your PDS webmaster has a signing key for your repo, because they for all intents and purposes are you. That's the trust structure of how PDS' are setup. If you don't trust someone else to modify your repo don't give them your private (sub)key.

The fact it's a subkey means that you are also able to rotate the key that the PDS has access to and modify your repo back to pre-defaced state if need be.

reply
evbogue
1 month ago
[-]
Exactly, this is the benefit of having a Bluesky!

Imagine if Github worked this way, then I wouldn't have to worry about storing my ssh keys on my local machine. Imagine the possibilities if Github could pull my repo instead of me having to go through all that darned trouble of pushing it.

reply
toomuchtodo
1 month ago
[-]
Take snapshots with the Internet Archive and have that be canonical/source of truth?
reply
latexr
1 month ago
[-]
As demonstrated by the Waddle Dee Knows case.

https://arstechnica.com/gaming/2022/02/how-to-become-a-fake-...

reply
lazzlazzlazz
1 month ago
[-]
One of the many flaws of AT Protocol.
reply
donohoe
1 month ago
[-]
This is neat but I choose not to do this when it was clear the API allowed it. I was on Twitter for over 17 years and I think 99% of what I posted is useless and not noteworthy.

I welcome the blank slate that Bluesky provides.

reply
brailsafe
1 month ago
[-]
Incidentally, I'm kind of surprised or maybe dissapointed that people want to move onto an alternative after being on what seems like a largely pointless platform from probably their teens well into their 30s or equivalent timespan. It's nice to have a clean break and let the past be the past when it comes to social media. When Facebook died, I was quite happy to just let my account rot, checking in occasionally to see if I got any messages from my Gen X relatives or whatever. When I first deleted my Twitter account, I used the 't' cli and their built-in export to backup my account in case I ever wanted to re-activate it, and the urge has never come up. I'm still on Instagram but barely post, it's just brainrot, I'll let it die when it dies. Proor to deleting the Twitter account nearly 10 damn years ago, I'd been convincing myself it was useful, so much so that I'd be a pariah if I weren't on there, but I realized I didn't need any of it, and tossed it away. Much like high school friends, it seems important to let life carry on without dragging all the baggage of past me along for the ride.
reply
Rendello
1 month ago
[-]
I was on Twitter briefly despite knowing better. It was great to connect with fellow programmers doing creative things, and having blocked the sidebar and all political hashtags, it was a net positive for a while. Ultimately though, it incentivizes people to post every "clever" thought that pops into their brains, and after posting hundreds of your own clever thoughts and reading tens of thousands of other people's, it instills in one the urge to live alone in the mountains under a vow of silence.

Though… it occurs to me that my cursed "cleverness" may have followed me to HN.

reply
brailsafe
1 month ago
[-]
Ya, I followed a similar path; it quickly became something habitual, and I realized that I couldn't avoid the preachy political crap from even people I would otherwise probably align with. It felt like I was chronically checking it, and nearly always being bombarded with messaging about what I was supposed to be mad about that day, whereas if I'd not been on the platform I probably wouldn't have regularly fluctuation intense emotions about irrelevant issues.

HN is kind of a bad habit, but it's just a forum to me, I don't follow people, people aren't following me, I don't need to be signup up in order to find out what's going on in municipal government, it's just discourse about common interests if that's what I want. I can get a weekly digest and I know that's quite enough if that's the relationship I want to have with it, and everyone sees the same content.

reply
Rendello
1 month ago
[-]
I agree, that's how I feel exactly about both forums. My cleverness-on-HN remark was auto-referring to my cheeky vow-of-silence comment, which I felt proud of while writing and then a little stupid about while posting ;)
reply
donohoe
1 month ago
[-]
I hear you. I certainly post much less and am happier for that. I like the emerging community there but I’m nowhere near as absorbed.
reply
davely
1 month ago
[-]
I like the blank slate analogy. I'm in the same boat.

I have tens of thousands of tweets (why, oh why) but personally have no desire to move them over. I realize that's important for some people. For me, it's enough to just download the archive and save it somewhere, in case I ever need to reference it again.

reply
blitzar
1 month ago
[-]
I have been deleting my tweets every year anyway.
reply
sMarsIntruder
1 month ago
[-]
So the plan is moving from a centralised platform to another centralised platform? As a loop? :)
reply
throwaway150
1 month ago
[-]
This is something I don't understand either. Why is everyone so eager to move from one centralized platform to another? Sounds counterproductive to me.

Btw do you have any good suggestions for distributed platforms? Would Mastodon be considered a distributed platform?

reply
diggan
1 month ago
[-]
> Why is everyone so eager to move from one centralized platform to another?

Personally, I'm eager because it's not just another centralized platform but a sufficiently distributed one. Most of the infrastructure you need for ATProto, you can run yourself today.

Mastodon/ActivityPub is neat too, but personally I don't find it as easy to find interesting stuff there, especially if you try to run your own solo instance and need to make sure you connect to interesting parts of the ActivityPub-net.

reply
rglullis
1 month ago
[-]
> Most of the infrastructure you need for ATProto, you can run yourself today.

Citation needed. Without the AppView and their relays you are left only with your identity and your data, which by itself is not a social media/messaging platform.

reply
pfraze
1 month ago
[-]
…both of which you can run yourself
reply
riffraff
1 month ago
[-]
As I understand it, there's an argument that while in theory you can, in practice you cannot so easily, e.g. you needed 5 terabyte of storage for a relay already some months ago.

I think this[0] was on HN some time ago with good reasoning about bluesky offering a "potentially decentralized enough" while not actually being so.

0: https://dustycloud.org/blog/how-decentralized-is-bluesky/

reply
pjc50
1 month ago
[-]
> you needed 5 terabyte of storage for a relay

I have sixteen terabytes mirrored sitting next to my television. It's 2025. Sixteen terabytes is not that much any more.

But rather than the only options being "global megacorp" or "individual", I think people should consider the possibility of medium-sized collective organizations for doing this kind of thing. You could club together to run a PDS. There are more options for organizational scale than "huge" or "atomized".

reply
riffraff
1 month ago
[-]
I don't think you should see the 5T number as static, but rather as "it took a couple months and 20M users to get to 5TB", which projects to hundreds of terabytes of storage pretty quickly.

I agree 100% with you that we probably want mid-scale orgs to run relays and those would be able to run it without issues (I wrote "not so easy" rather than "impossible" :) ) but I think it's significant we haven't seen a single one popping up yet.

But again, the article I linked makes a very good point: Bluesky does not need to actually be decentralized as long as it is a "credible exit" that someone else could in theory run their own Relay/AppView, even if no-one does.

reply
DrammBA
1 month ago
[-]
> I have sixteen terabytes mirrored sitting next to my television. It's 2025. Sixteen terabytes is not that much any more.

I have a 512GB laptop and a 64GB phone, that's all the local storage I own.

reply
Jaxan
1 month ago
[-]
A 5TB drive would cost more than 100€. Definitely more than I would like to spend on joining a social network.
reply
odo1242
1 month ago
[-]
That would be the amount to create a new social network that interoperates with the old one. Joining a social network only requires hosting a PDS, not a relay (basically free)
reply
what
1 month ago
[-]
And how much would it cost me to run the app view?
reply
verdverm
1 month ago
[-]
An AppView is a bit more than just the code. In example, you have to do moderation, which involves paying people for a thankless, awful task. (unless you are just a thin client to Bluesky records and rely on their moderation)
reply
ibejoeb
1 month ago
[-]
There are couple of things going on in that question.

1. There's a contingent that does not like the management of X, so they want to move elsewhere.

2. The technology aspect of it is irrelevant in the decision making, because most people don't understand it.

3. Moreover, a truly free, federated system doesn't alleviate any of their complaints about the platform, because, in that case, they would be unable to effectively quarantine the others.

reply
alkonaut
1 month ago
[-]
Because X was (initially) good, while every attempt to make something distributed has been relatively bad.

I don't really care how the platform works so long as the content is the content I want. Nor does 99% of users. And that's the precise reason the centralized platforms are the good ones: that's where people are.

If a truly distributed platform could be created that had the content/people/appearance of the centralized one, then great. I'd want that. But if it would be slightly slower or harder to use, or lack the people/content of a centralized platform then I'm not interested.

Decentralized could be fine for communicating with a _community_ of some kind. But that's not why I'm on X/Bluesky. It's to drink from the firehose of the current times. If something happens in the world I want to see the actual people who drive those events. Read the instant comments of the biggest most famous commenters of the same events.

reply
wlonkly
1 month ago
[-]
> Why is everyone so eager to move from one centralized platform to another?

There's good content there. Distributed is better than centralized, but it doesn't matter if the people I'm interested in talking to and hearing from aren't there.

reply
sMarsIntruder
1 month ago
[-]
Mastodon and nostr are two good alternatives with pro and cons of course. nostr is probably and imho the best implementation, but at the moment it’s a bitcoiner echo chamber.
reply
bravoetch
1 month ago
[-]
The reasons I have heard are not related to it being a centralized platform. More that people like the features of bluesky over x.
reply
matijao
1 month ago
[-]
reply
skybrian
1 month ago
[-]
Maybe they don’t care as much as you do about whether a service is decentralized?
reply
mayneack
1 month ago
[-]
Platforms age/enshittify. Twitter wasn't the first, bluesky won't be the last.
reply
pjc50
1 month ago
[-]
People want something that feels as much like Twitter as possible, without the enshittification. Both in terms of stupid UX features and stupid political features.

Having been interested in how people use social communication systems since the BBS era, I'm pretty confident that most people don't really want fully distributed systems, they want a single system with good governance. Because governance is hard work and anarcholibertarianism makes it everyone's problem. However, "Exit, Voice, And Loyalty" applies here: by providing a theoretical Exit option in some sort of decentralization, even if someone never takes that option, they feel a benefit from having the option.

https://en.wikipedia.org/wiki/Exit,_Voice,_and_Loyalty

reply
ActorNightly
1 month ago
[-]
In terms of centralization, if you are in the tech sphere, you should have learned by now from the crypto fiasco that decentralization leads to abuse by people with money to game the system.

But in general, if you don't understand why people are moving to Bluesky, you probably need to be more in tune with US politics and realize we have a nazi in the white house who also happens to own Twitter.

reply
odo1242
1 month ago
[-]
You’re conflating decentralization with financialization. Just because something is decentralized (e.g. BitTorrent, Mastodon) doesn’t mean it’ll be abused by people with money. Decentralization just means “not keeping everything in one server / something controlled by a single person”
reply
ActorNightly
1 month ago
[-]
>Decentralization just means “not keeping everything in one server / something controlled by a single person”

Except that servers cost money, and internet is not free.

Im all for setting up mesh networks with appropriate protocols that are truly decentralized, but people have to be willing to accept lots of pain points and slowness along the way, which quickly makes people not care.

reply
1234letshaveatw
1 month ago
[-]
creeps want an echo chamber, got it thanks
reply
spankalee
1 month ago
[-]
Yes, the creeps who are own and stay on Twitter obviously want an echo chamber, as evidenced by their content promotion algorithms.
reply
ActorNightly
1 month ago
[-]
Come back to this comment when its 2028 and US doesn't have a federal election because Trump declares fraud and gives himself emergency powers.
reply
1234letshaveatw
1 month ago
[-]
bet
reply
bee_rider
1 month ago
[-]
I don’t think they want one, they are just ending up with one naturally as the normal people leave Twitter.
reply
user3939382
1 month ago
[-]
AFAIK it’s SaaPS - software as a political statement
reply
martin82
1 month ago
[-]
It's even worse... you move from a centralized platform that has reach and is highly relevant to one that has zero reach and is a closed off and completely irrelevant echo chamber.
reply
est
1 month ago
[-]
the ATProto missed a lot by using websocket.

If it allows polling static pages, then everyone can host their timeline on Github Pages or something. That would be much better decentralized.

reply
oellegaard
1 month ago
[-]
What is the appeal of Bluesky? I'm surprised to see how much traction it has, when Mastodon already exists and works quite well technically - it seems that Bluesky is simply better at marketing?
reply
lxgr
1 month ago
[-]
It's a much better protocol in practice, in my view.

Mastodon is server/instance centric and permanently anchors your identity to a given server. On Bluesky, you can use any domain you control DNS for as your handle, since content hosting and identity management are decoupled at the protocol layer.

On top of that, hosting is also decoupled from aggregation/discovery, which allows for things like global search that are intrinsically hard on Mastodon.

reply
genewitch
1 month ago
[-]
> Mastodon is server/instance centric and permanently anchors your identity to a given server. On Bluesky, you can use any domain you control DNS for as your handle, since content hosting and identity management are decoupled at the protocol layer.

What does this mean? I can host my own fediverse instance, and have, three times.

reply
rglullis
1 month ago
[-]
It means that your identity is tied to the server. If you ever got tired of running your server and decided to just use someone else's server, you can not just bring your keys and make a DNS change to point to the new place.
reply
mariusor
1 month ago
[-]
Just because there isn't such a mechanism in use currently, doesn't mean that there's something preventing ActivityPub actors using the same type of DNS pointing to DID, or IRI mechanism ATProtocol is using.
reply
rglullis
1 month ago
[-]
There are some extensions proposed, but to this day all AP actors are controlled by the server. No ActivityPub software today is built in a way where the client can provide their own keys. They are all generated in the server.

Even the "Client-to-Server" AP spec is written in a way where the "client" does not interact with the outside web, but always initiates every interaction through the outbox hosted by the server.

I'm not saying this just for pedantry. I'm saying this because I actually wrote a server that implements ActivityPub according to the spec [0], and realized that identity portability is not possible unless you deliberately break away from the AP spec.

[0]: https://activitypub.mushroomlabs.com

reply
mariusor
1 month ago
[-]
I am not convinced that it can't be done. (Saying this also as someone that wrote a spec compliant ActivityPub server: https://github.com/mariusor/fedbox)

Nothing says you can't extend an actor to provide for a did: based identity which gets stored wherever you want to. I think the main dev of Mitra[1] is someone that's exploring very strongly in this direction.

[1] https://mitra.social/

reply
lxgr
1 month ago
[-]
I'd consider the effort of migrating the entire ecosystem to a fundamentally different identity resolution mechanism somewhat of a barrier.
reply
mariusor
1 month ago
[-]
Allowing for extensions to the current ActivityPub/ActivityStreams vocabulary is one of the tenants of the specification. Nothing says everyone must implement everything.
reply
lxgr
1 month ago
[-]
I don't see how this could be done in a backwards compatible way.

How would incompatible servers know to trust a server foo.com to publish posts for an account bar.com? How would they know where to look for bar.com's posts when their users search for it?

reply
genewitch
1 month ago
[-]
how many bluesky "servers" are there?
reply
rglullis
1 month ago
[-]
Look who is moving the goal posts!

We are talking about ActivityPub tying identity to the server. ATProto is designed from the ground to separate user data from your identity (through its Personal Data Servers), so the answer to your question is "many. There are many servers out there."

Bluesky has many issues (and I for one still think it has fundamental flaws that still make me prefer AP), but identity coupling is not one of them.

reply
genewitch
1 month ago
[-]
I think i just don't understand the distinction. I have a domain, so i set up my domain so i have an identity on bluesky. I'm with you on that part.

and then what? i can take my identity and do what with it? change PDS? but bluesky itself shows everyone that i am the same person?

i didn't move the goalposts, i just don't get the distinction everyone is making here with "identity", of course if i prove i own a domain i can verify, but i can do that on mastodon, too, I can add the below to my domain that will checkmark my username on mastodon. I assume if i move servers and want people to follow me, i will just do the same on that server, too; they know it's me because the service says so.

> <a rel="me" href="https://fosstodon.org/@picofarad">Mastodon</a>

that is all i have to do to prove i own that username on that instance - put that on a domain i own and add it to one of the user editable fields on my public profile.

so maybe you understand my confusion. i never received a bluesky invite nor do i want to pay (a couple mentions here of paying for it).

> Verifying your identity on Mastodon is for everyone. Based on open web standards, now and forever free. All you need is a personal website that people recognize you by. When you link to this website from your profile, we will check that the website links back to your profile and show a visual indicator on it. The link on your website can be invisible. The important part is rel="me" which prevents impersonation on websites with user-generated content. You can even use a link tag in the header of the page instead of <a>, but the HTML must be accessible without executing JavaScript.

i can also export all my followers, so when i join a new instance, i can direct message them all and let them know i've moved, and they can see it's the same person because the service says so, because i own the same domain.

reply
rglullis
1 month ago
[-]
> i can also export all my followers, so when i join a new instance, i can direct message them all and let them know i've moved

If ActivityPub had actually portable identities, you would be able to move instances without losing/moving your handle.

You as an user might have moved servers, but your identity did not.

How can we make an analogy? Let's say that you want to have a domain and you are hosting it on some cheap VPS provider. You just take your data, upload to their server and point the domain to their IP address. Let's say that six months later the cheap VPS goes down and you completely lose access to the server. You want to move. What do you do? You sign up to another VPS provider, upload your data (assuming you have backups) and you simply change the DNS to point to the IP address of the new server.

If you want to do that anything like that with ActivityPub, you can only do it at the server level. If you are a "mere" user on instance mastodon.one you do not own, you are at the mercy of the admin. You can not take "genewitch@mastodon.one" and use it as a handle anywhere else. Conversely, you can not go to mastodon.social and sign up with your own domain or any other method of authentication. The only way they can serve anything for you is if you use the handle they assigned you.

With ATProto, identity is based on DIDs (decentralized identifiers), so you can change your PDS without having to change your identity. You can have a handle under your own control and tell Bluesky to host it for you, and you don't need to ask permission to them in case you change your mind and decide to move elsewhere.

reply
wikihasbsky
1 month ago
[-]
Can and Must are two different things. Wikipedia has a website, and owns the domain to that website. Their domain is the way they verifiy themselves on Bluesky. But they don't have a reason to run an instance, so they don't run one, and never will.
reply
lxgr
1 month ago
[-]
Yes, and in fact you have to, and from the very beginning, if you want to self-custody your identity.

That’s a high bar compared to just registering a domain and updating a DNS record.

reply
advisedwang
1 month ago
[-]
For me, it's pure network effect. The people I want to hear from and be heard by are on Bluesky but not Mastodon.
reply
shawabawa3
1 month ago
[-]
Had enough of shitty self hosted mastodon servers getting linked, makes me wary to click any mastodon link because they are so likely to be dead

Imo that's a complete killer to adoption. The vibe people get from it is that it's always down, they don't care that "oh just switch to another shard" that's too much effort

reply
imhoguy
1 month ago
[-]
Yeah, it should be content addressable and replicated by Favourite (Like) similarly how IPFS pining works, then your post would die when the last hoarder forgets about it.
reply
KoftaBob
1 month ago
[-]
Bluesky/AT Protocol hits a much better balance of mostly decentralized while having an intuitive user experience.

On the other hand, ask the average social media user to try to do the below tasks on Mastodon/ActivityPub, and you'll quickly see how half-baked and disjointed of a user experience it is.

- Search for posts or a user.

- Interact with a Mastodon post that's on a different instance than the one they're registered to.

- Figure out what to do if one day, they wake up and their instance has shut down.

reply
adamredwoods
1 month ago
[-]
Convenience factor. Bluesky is single site. Mastodon is multiple sites.
reply
unshavedyak
1 month ago
[-]
I also find Bluesky's underlying tech interesting. The more i looked into Mastodon the less interesting it felt. I especially didn't like that as a small Mastodon instance i'd struggle to get my updates fed into the larger instances and struggle to get updates as quickly. Instances prioritized updates to/from larger instances.

This was all quite early though and i'm sure i misunderstood things. Just answering the question as i personally perceived Mastodon.

On the non-tech side, i find Bluesky's model for moderation to be really neat. I hope it continues to expand in features/implementations.

reply
verdverm
1 month ago
[-]
Check out the User Intent proposal, it's kind of like robots.txt, not enforceable, but also richer in semantics

https://github.com/bluesky-social/proposals/tree/main/0008-u...

reply
curious_cat_163
1 month ago
[-]
I find the AT protocol interesting.

But, now they have network effects; > 30 million users -- that's a big market to build for.

reply
gls2ro
1 month ago
[-]
Here is one nice appeal:

Has a great and free API.

Now, Bluesky has this great API that allows you to do cool automated things on top of it. Twitter had it too, but they decided in the last 2, maybe 3 years, to play with the API so many times that there are no new coding tutorials that use Twitter API as an example. So except social media platforms, there are probably no more tools built on top of Twitter API as they damaged their reputation among developers. And they deserve it being so unfriendly towards developers.

reply
RicoElectrico
1 month ago
[-]
Mastodon is fragmented by design, federation is mostly theoretical even if mastodon.social displays many other instances' content and lets you interact with it.

You can't search across instances nor can you (afaik) maintain identity across them.

reply
yborg
1 month ago
[-]
Bluesky implements algorithmic feeds so content is easier to find. Mastodon mostly is original Twitter model - you have to follow accounts yourself. It's significant friction and filters 90% of normal people.
reply
genewitch
1 month ago
[-]
Algorithmic feeds, chicken soup for the soul.
reply
globular-toast
1 month ago
[-]
Centralised so easy to use. Why don't more people use PGP and web of trust? Convenience and security rarely align, and people will choose convenience every time.
reply
sergiotapia
1 month ago
[-]
it's a turbo left version of truth social. so people into that flock to use bluesky.
reply
nailer
1 month ago
[-]
Bluesky appeals to people that don’t wish to meet or interact with anyone from the other side of the aisle - like a left wing version of Truth Social.
reply
jer0me
1 month ago
[-]
This is very cool. These features would be useful:

  - If it isn't possible to transfer the video, I'd rather skip them than just posting a thumbnail
  - A way to mass-delete posts after a migration if I regret it
  - The option to add text (e.g. [Migrated from X]) to each post if it fits
As far as competitors, go https://blueark.app/ seems like the most complete. I remember seeing another one, a desktop app, but I can't remember what it was called.
reply
mentalgear
1 month ago
[-]
Much appreciated, but wouldn't this allow anyone to "migrate" somebody else's tweets over to bluesky, basically impersonate them with 1-click ? What's missing is some sort of verification.
reply
Karrot_Kream
1 month ago
[-]
Unreliable datetimes is just part of AT and something you need to deal with. The moment you start ingesting the firehose you'll see plenty of backdated or forward dated traffic. If you build feeds you need to be careful when using posted timestamps to sort feeds because of backdating and because there's no real centralized way to verify your timestamps. For my feeds I just reject posts that are beyond a certain delta from now and sort my feed by ingestion time rather than post time.

There's probably some sort of blockchain-based time-attestation like [1] that could help but this is beyond the scope of AT and something that probably needs a lot more thought before a serious proposal comes forth.

[1]: https://opentimestamps.org/

reply
robertlagrant
1 month ago
[-]
> something you need to deal with

Who is the "you" here?

reply
ncallaway
1 month ago
[-]
> The moment you start ingesting the firehose

Probably someone who started ingesting the firehose

reply
chipsrafferty
1 month ago
[-]
What is a firehose?
reply
odo1242
1 month ago
[-]
All posts being made on Bluesky, as they get indexed.

See https://firesky.tv

reply
mentalgear
1 month ago
[-]
PS: I had a similar migration idea when bsky came out, but never thought they would allow backdating.

I came to the conclusion that it would make sense to confirm a user's identity on the platform to migrate from (egress) by giving them a random word or sentence for them to post over there, so you can verify that their original profile is really theirs.

reply
darkwater
1 month ago
[-]
Well, if the source is publicly available, anyone can copy it anyway. So, you need anyway to announce on the original account where it has been migrated to.
reply
amyames
1 month ago
[-]
this can be done, and it’s suspect when someone’s done it to build a following and it’s not clear if they own the tweets.

I tail the firehose sometimes , filtering for post dates that don’t contain 2025. Bottom line this has been happening since day one and backdated/imported posts were about 1/16th or so of the overall post volume in any random sampling I’ve taken. It’s a lot.

But the few I spot checked , all checked out. The people importing their posts were all mentioning their new bluesky on LinkedIn or Twitter . I haven’t caught a spammer yet. It’s something I look at when I am extremely bored.

reply
nashashmi
1 month ago
[-]
Can I upload my archive of tweets that I exported from Twitter immediately after it changed ownership and subsequently deleted my Twitter profile?
reply
lloydjones
1 month ago
[-]
I made a similar tool a while back, https://pleasenox.com – Mine relies on a "poster" account doing the work rather than the current user's account.
reply
codeman001
1 month ago
[-]
Interesting tool but the main problem with BlueSky is that I get barely any interactions/reach compared to Twitter/X.
reply
klausjensen
1 month ago
[-]
It is all about which "circles" have migrated. A lot of the people I follow have reported that while having a lot fewer followers, they have a lot more interactions - and a LOT less bot-interference.
reply
aa-jv
1 month ago
[-]
Back in the early days of the Web, there was a company started that would allow anyone to annotate any web site - basically, you could go to any site, and add your own little notes to it, for others to view.

It didn't last long - there was some sort of rebellion against them as a service and it turned out they couldn't find a way to make money with it. (Akin to that push service that pushed news to everyones' screensavers, which seemed like a good idea at the time)

This feels like that.

I wonder how long it will last until the door is closed for folks to re-purpose others content in this way?

reply
dustedcodes
1 month ago
[-]
Am I the only one who finds it weird that people want to migrate their tweets? Is it just sentimental feelings or what is the purpose of that? To me tweets have always just been in-the-moment brain farts. People have tens of thousands of tweets with the vast majority being just completely irrelevant now and really rather uninteresting. This reminds me of people who keep all their school notebooks in shelves from when they were 5 years old, as if you'd ever go back and look at some scribbles from 50 years ago.
reply
hombre_fatal
1 month ago
[-]
Many people use Twitter for blogging, whether in the old tweet-storm style or the newly supported long-post style.

They would want to port over the content just like someone migrating from Wordpress to Jekyll.

reply
tekno45
1 month ago
[-]
the worst part of bluesky is all the people asking for it to be twitter.

That and people posting screenshots of their own tweets...

reply
MikePlacid
1 month ago
[-]
I see around 80% of videos on X (Twitter) to be from TikTok originally. Probably because TikTok allows you to save - and so to spread - videos you like but X doesn’t.
reply
LaPingvino
1 month ago
[-]
It literally comes from the original Twitter, it's meant to be what X killed in Twitter.
reply
pessimizer
1 month ago
[-]
Didn't come from Twitter, it came from Dorsey. He also said that it went badly astray early on, and abandoned it completely.

https://www.piratewires.com/p/interview-with-jack-dorsey-mik...

reply
extraduder_ire
1 month ago
[-]
It was initially created as a group inside of twitter. They spun it off into a separate company pretty early though.
reply
pfraze
1 month ago
[-]
Heh, this is kind of complicated. It was Dorsey's initiative. The project's goal was to produce a technology that Twitter could move to. However, nobody on the team was from Twitter.
reply
qoez
1 month ago
[-]
Found this related to this https://jymfox.com/bleetinthepast/ Fun to post from 0 BC
reply
rsynnott
1 month ago
[-]
But... there isn't a 0 BC! The Gregorian calendar goes straight from 1 BCE to 1 CE.

(That said, most datetime libraries, in practice, tend to behave very weirdly if you go back a few thousand years, if they'll put up with it at all...)

reply
garaetjjte
1 month ago
[-]
If you extend Gregorian calendar before 1582, I think it's reasonable to interpret numerical year number as 1 => AD 1, 0 => 1 BC, -1 => 2 BC (that would be proleptic Gregorian calendar with astronomical year numbering?)
reply
Am4TIfIsER0ppos
1 month ago
[-]
When they were removing the Christ from dates they should have just made it an integer.
reply
jokethrowaway
1 month ago
[-]
Nice tool and it's great to see BlueSky allows you to backdate posts!

My main problem with BlueSky is that I get barely any interactions compared to my old Twitter (which also wasn't stellar). It's becoming a tool to listen to a few good devs (which I periodically check on), while trying to ignore all the pr0n, but not a social network I can use.

Building an audience seems way harder.

reply
weinzierl
1 month ago
[-]
I imported all my Tweets into Bluesky a long time ago and all my Tweets kept their original date which has confused people.

For example:

https://bsky.app/profile/abu.guru/post/3la7w6bxkip2j

reply
SanjayMehta
1 month ago
[-]
Okay, this made me chuckle: “ i’m enjoying my japanese lessons so much i might start writing ruby”

https://bsky.app/profile/jdan.me/post/3lkoklkirgs27

reply
neilv
1 month ago
[-]
Is there some authoritative source for knowing when Bluesky posts were made, approximately?

(For example, does Bluesky themselves record the timestamp of when they first see a given message, and make this info available, either publicly or with subpoena/warrant?)

reply
dharmab
1 month ago
[-]
I think the import date is available in the API and client, separate from the posted date.
reply
gslepak
1 month ago
[-]
A tool like this for the Fediverse / ActivityPub would be awesome.
reply
zimpenfish
1 month ago
[-]
> A tool like this for the Fediverse / ActivityPub would be awesome.

Currently not ~~possible~~ that easy, sadly, because the Mastodon spec (which is basically what everyone uses) doesn't have the concept of backdated posts and, more importantly, even if you fudge your server to allow a date in your `Status` when posting[0], it'll still go "oh, this needs sending out to everyone"[1] as if it were a new post and let me tell you, the clients also do not know about backdated posts and things get confused real fast[2].

(I don't think it'd be a huge change to the spec to allow backdated statuses but getting consensus about how that actually works for, e.g., sending out, client handling, etc. would be a lot of work.)

[0] I did this on my Akkoma server to import 15 years of Twitter bot posts.

[1] Sadly my Elixir knowledge didn't extend far enough to be able to figure out how to prevent this for backdated posts.

[2] To the point where I and everyone else had to unsubscribe from the Fedi bot whilst it was doing the backimport.

reply
jaimehrubiks
1 month ago
[-]
The protocol should show a flag that states if the date was sent by the client. That way you allow this feature while at the same time you can warn users.
reply
MattSayar
1 month ago
[-]
Good stuff! I didn't mind the fresh start with BlueSky but it'll be nice to import my last hundred posts with the free trial.
reply
veilgen
1 month ago
[-]
This is interesting, but it raises concerns about the integrity of timestamps on Bluesky. Allowing backdated posts could lead to misuse, such as manipulating historical context or creating a false impression of long-term presence on the platform.

On the other hand, it could be useful for users who want to maintain a consistent archive of their content across platforms. But the question remains: should platforms allow this kind of timestamp manipulation?

reply
CharlesW
1 month ago
[-]
As an eX-user who deleted their footprint long ago, I imagine some people would be interested in doing this from an archive.
reply
avtar
1 month ago
[-]
reply
genevra
1 month ago
[-]
Awesome, the more people we can convince to switch from Twitter the better.
reply
taishikato
1 month ago
[-]
Ha interesting > Bluesky allows to backdate their posts with their API
reply
laimingj
1 month ago
[-]
reply
MortyWaves
1 month ago
[-]
Can you do the same for Mastodon? What about Mastodon to Bluesky?
reply
rglullis
1 month ago
[-]
This is only for your own tweets? What about replies / RTs?
reply
kristiandupont
1 month ago
[-]
Is there a way to delete all your tweets from X afterwards?
reply
dhosek
1 month ago
[-]
Sadly I’ve already deleted every single tweet I had under my Twitter account (other than a pinned tweet saying I’ve moved to BlueSky). It’s mostly symbolic, but I felt it was necessary.
reply
dragssine
1 month ago
[-]
It's cool idea, congrats
reply
cooper_ganglia
1 month ago
[-]
Now give me the tool that lets me import my Bluesky history to X! ;)
reply
artursapek
1 month ago
[-]
lol they let you spoof timestamps on this site?
reply
sMarsIntruder
1 month ago
[-]
It seems so, and it’s funny lol.
reply