In my last post "No Fork Required" I showed that it's possible to add an Atmosphere account on your Android and use it with participating apps, letting you log in without having to enter a password (or 2FA) every. single. time. you want to use your account. Obviously the next question rightfully becomes:
Well... soon, I hope!
What is an Atmosphere account, really?
skip to the next section if you're already familiar :)
I've skirted around this for the longest time because I think others have tried and are much better (like 's explainer) at explaining what an "Atmosphere account" means, so let's take a quick detour to make sure we're all on the same page.
You log in to Bluesky, Blacksky, Northsky, Eurosky, Selfhosted.Social, or other PDS, or even your own bespoke PDS (ahem https://pds.scottlanoue.com) using your Atmosphere account.
Why is it called an Atmosphere account? Well, that's because the incredible coined the term "Atmosphere" (3 years ago!) and this is the account that you use while using these applications:
Alright @jay.bsky.team @pfrazee.com @dholms.xyz @why.bsky.team @emily.bsky.team ..restofbskyteam hear me out network of ActivityPub servers = "fediverse" so federated AT Protocol / BlueSky = "ATmosphere" ;) okay sorry for pinging you all have a nice day
Microblogging platforms are not the only thing to which your Atmosphere account will give you access, there's actually an entire atstore ("at" being the ATProtocol or atproto) that uses your Atmosphere account, some of my personal favorites include:
tangled - a place for sharing code (git forge)
lexidraw - diagrams and drawings
grain - photo sharing
sifa - linkedin but without being awful
wisp.place - the fastest and easiest way to make a website
And so many more that I can't mention them all here. If you're curious, you can sleuth some of the data I've created across Atmosphere apps using the exquisite piece of software, PDSls:
(does your did have 67 in it??)
Going back a step, we can think of the Atmosphere account as a replacement for our Google or Microsoft or Apple or X or Facebook account. Every time that you use one of those accounts to create an account on a new service, you are giving part of the control of your identity away to these tech behemoths. Not great, in my opinion. Like I discussed in my first blog on the subject, "On an Atmosphere OS", you could randomly lose access to your centralized account at any moment, and with it, you could lose access to other services that depend on that login.
Atmosphere accounts are fundamentally different, as much as you are willing to understand who is in control. Let's say you're new to the Atmosphere and start by opening an account on Bluesky. Great! Welcome to the Atmosphere. Bluesky is now in control of your identity and account, and that is [good|bad] depending on who you ask.
Fortunately, it's not that hard to move your account/identity to somewhere that might make you more comfortable with who is in control, thanks to amazing tools like PDS Moover by . If you're feeling really ... motivated? you could go as far as hosting your own account, in which case, you are in control of your account's hosting. I don't plan on getting banned by Bluesky PBC, but if I was, well, you could find me using any other Atmosphere app that doesn't acknowledge Bluesky's moderation (double edged sword, but I'm not going to debate that in this article).
Okay I know that's not perfect, but I hope that clears up some confusion for one person out there. Even if it's my friends and family who probably still have a rough understanding of what I'm spending my days and nights working on. Shall we get to the point of this post?
What about iOS though?
When you log in to your Google account on your iPhone, the next time you log in to a Google app or an application that uses your Google credential, you don't have to enter a password (sometimes). Instead, you say: "Yes, I agree that Strava/Hipcamp/AllTrails/etc can use my Google account as my account for this service." It's super easy, it's super convenient, and it's driven me mad that the same isn't true of my Atmosphere account.
Basically, the thing I'm looking for is:
- 1.
Log in to my Atmosphere account once on my iPhone
- 2.
Install new Atmosphere app like Mu Social (congrats on the TestFlight launch!)
- 3.
App asks if I want to use my Atmosphere account from step #1
- 4.
Authorize the request + relevant OAuth grants, no additional password input
- 5.
Success
So I built that, and here it is in action, using a fork of the Bluesky app, instead of Mu (at least, steps 3-5 in action):
It works! Now let's talk about what is required before you can do the same.
I created a native iOS app called "Atmosphere Identity" where you sign into your Atmosphere account, it's not very pretty but it looks like this:
Then, in participating apps like the fork of Bluesky Social that I show above, you can choose "Continue with Atmosphere." A bottom sheet pops up, I choose my account and authorize access, then I'm signed in, woo!
I also built an account chooser that apps can open, which I then added to my Bluesky Social fork. On Android, I could register the account with the operating system ("device-level" identity). On iOS, I'm using Apple's built-in sign-in browser sheet, called ASWebAuthenticationSession. My account chooser is a webpage inside that sheet, and a registered callback URL returns the result to the app after authorization. This doesn't add an Atmosphere account to iOS Settings.
The first login on my iPhone uses standard OAuth. Then when I open an app to sign in, it asks my PDS for permission to use my account. My PDS remembers that I've signed in through the browser, so I can approve the access request without entering my password again.
On my PDS, I made the existing remember-login option start checked during Identity's initial sign-in. That's the setup shown here. When I tested my Bluesky-hosted account, it still asked for my password, so there's still some work left in figuring out why that account asks for my password again, but like said:
For now, this is a private TestFlight prototype that requires other apps to add the integration. I’d love to get the same experience working consistently across account providers and make it easier for app developers to support.
TL;DR: I built a prototype of using my Atmosphere account on iOS by using browser sessions, which is similar to how Google accomplishes the same flow on iOS (sauce).