Bluesky currently suffers from a link rot issue where changes to an individual or organization's username will be reflected in the URL, breaking all links to their account and posts in source fields.
The recommended solution is to use the artist's DID (decentralized identifier). However, finding your own DID by checking your account or getting an artist's DID by using a third-party service like commentpicker for each source link is tedious and sketchy. Instead, Tarrgon has created a userscript that automatically retrieves the DID permalink version of an account or post for you when you navigate to a page.
Compare the following URLs:
https://bsky.app/profile/quantamagazine.bsky.social
https://bsky.app/profile/did:plc:vfktz6qe6vy7serr3wqutpzt
Both of these links resolve to the same organizational account, but only the second will function if the organization's handle changes. The DID version functions as more of a permalink. It is not as robust as the Wayback Machine, but it is still a primary source and thus suitable for source fields.
Link to the userscript: https://gist.github.com/Tarrgon/c84f267a4f97314090b4870760b8fb8f
Wayback Machine link to the userscript in case the GitHub link breaks: https://web.archive.org/web/20250509034554/https://gist.github.com/Tarrgon/c84f267a4f97314090b4870760b8fb8f
See also the stickied post on obtaining full versions of Bluesky images instead of thumbnails, which contains instructions on how to install userscript manager extensions and add scripts.
A bot to automatically convert Bluesky posts to use DID versions is being investigated (not guaranteed). This userscript is being made available in the meantime to preserve a few more links and avoid unnecessary post change entries by the bot.