Skip to content(if available)orjump to list(if available)

Show HN: I made a tool to port tweets to Bluesky mantaining their original date

Show HN: I made a tool to port tweets to Bluesky mantaining their original date

53 comments

·March 18, 2025

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

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.

jer0me

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

dietr1ch

It'd be cool if they also verified the dates to get rid of the warning of honest backdated posts.

jampa

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.

spullara

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.

ezfe

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.

evbogue

Yes, but this badge is generated at their Appview index layer and not at your PDS.

chc4

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.

evbogue

Bluesky was developed with backdated posts as a stated goal, see Jay's original prototype: https://github.com/arcalinea/smor-serve

lloydjones

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.

mentalgear

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.

Karrot_Kream

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/

amyames

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.

jer0me

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.

nashashmi

Can I upload my archive of tweets that I exported from Twitter immediately after it changed ownership and subsequently deleted my Twitter profile?

oellegaard

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?

advisedwang

For me, it's pure network effect. The people I want to hear from and be heard by are on Bluesky but not Mastodon.

lxgr

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.

adamredwoods

Convenience factor. Bluesky is single site. Mastodon is multiple sites.

unshavedyak

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.

curious_cat_163

I find the AT protocol interesting.

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

RicoElectrico

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.

CharlesW

As an eX-user who deleted their footprint long ago, I imagine some people would be interested in doing this from an archive.

lopatamd

[dead]

MattSayar

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.

neilv

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?)

dharmab

I think the import date is available in the API and client, separate from the posted date.

null

[deleted]

amyames

[dead]

qoez

Found this related to this https://jymfox.com/bleetinthepast/ Fun to post from 0 BC

rsynnott

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...)

Am4TIfIsER0ppos

When they were removing the Christ from dates they should have just made it an integer.

jaimehrubiks

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.

tekno45

the worst part of bluesky is all the people asking for it to be twitter.

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

LaPingvino

It literally comes from the original Twitter, it's meant to be what X killed in Twitter.

pessimizer

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...