Atmospheric apps launcher (exploration)

I’m drafting this: Atmospheric Workspace OS

In summary, I love what @scottlanoue.com is cooking up with the Atmosphere OS. The road to an actual OS however is very long, and I think one way to arrive at something tangible sooner rather than later is a Rambox-like omniclient for atmospheric apps, aka an atmospheric apps launcher.

Most apps on the atmosphere don’t have the bandwidth to maintain a desktop distribution, even though many of these apps are useful in a workplace context, a few of which are even offline-first, like Reams by @hyl.st

What if we pooled our efforts to make one canonical Atmospheric Launcher app for the desktop (Windows, Mac, Linux)? Perhaps even starting web-first and going desktop from there; see the approach suggested by @disnetdev.com below.

There are different ways to go about this. The experience I’m reaching for is a downloadable desktop app that:

  • Only asks me to log into my atmosphere account(s) once, and then keeps me logged in, ideally with even greater persistence than the average browser experience (atmo apps have a tendency towards very short auth sessions).
  • facilitates local backups, key recovery, key rotations..
  • built-in widget for atproto calls
  • unified notifications
  • ???

Option 1: Tauri omniclient

Ferdium is a long-standing open source alternative to the likes of Rambox, which could be forked into an atmo launcher. I started exploring this with a Tauri fork of Ferdium called Ferx.

It’s pretty neat to see how easy it is to add additional apps to the client:

However, logins don’t work right. Ferx doesn’t have a built-in password storage and it also seems to run every app in a separate session, so even though I’ve already logged into one of these apps (Skyreader) with my atmo account, the rest don’t even know I already logged into my atmo account, which is a step down from the regular browser experience.

Option 2: Chrome derivative

This is the least proven option so far, but it’s how many of the Rambox-likes work, by simply sprinkling a thin additional layer on top of stock Chrome. This would be the same approach as the ideal long-term case that is Beaver, except the purpose of an atmospheric Chrome derivative would be an expedient time-to-market.

I’ve no idea how feasible it is to “simply layer some atmospheric stuff on top of Chrome”, but I keep being told we’re supposed to think more ambitiously in this brave new age of auto-coding. I’ve got my qualms about that but perhaps in this case that line of thinking is appropriate.

related:

Option 3: Web-first launcher

@disnetdev.com came up with another approach

so this is really interesting and got me thinking if you could do an atmospheric workspace of cooperating apps without needing a desktop app. a few tokens later…

requires apps to opt-in to framing and then follow a small protocol: atlauncher/docs/PROTOCOL.md at main · disnet/atlauncher · GitHub

by framing and being atproto aware lets you do cool things like real unread badges without scraping titles and at:// link handling that route to the appropriate app.


I’ve been chatting with @scottlanoue.com @hyl.st and @disnetdev.com about this and this is where we’re at so far.

9 Likes

one thing to call out: I think that regardless of the option (tauri/chrome/web-first) to get a true “log in once” experience we need something like FedCM (which is potentially happening? FedCM account selection prototype by devinivy · Pull Request #5618 · bluesky-social/atproto · GitHub). The atworkspaces prototype shows how you could facilitate account switching across multiple apps simultaneously but you still need to log in to each app with each account first since in atproto oauth every app is its own client with its own grant.

1 Like

So cool to read I am not the only one thinking about this :wink:

Here is a sample where I am at:

5 Likes

Was really taken by @disnetdev.com‘s idea around the atworkspace and have a internal instance able to run in at-workplace, though i still need to fix login to not use the pop up, and then implement the at-intents so we can share across applications.
I’m also interested in single login via fedCM, though I don’t know much about it currently.

Lately I’ve been installing PWAs on desktop as well, and been enjoying it, though I fear this may make the at-intents flow a little annoying.

Will continue to post updates here :slight_smile:

3 Likes

Tim’s approach (option 3) makes the launcher MVP reminiscent of self-hosting platforms like Cloudron or Yunohost:

Yunohost is just an apps-admin panel and a universal apps identity:

That’s also where this exploration begins to more clearly overlap with what @bmann.ca & co(op) has got going with atproto-oidc bridging (based on aip / aip-lite by @ngerakines.me ) for LaSuite:

Better than Infomaniak

Between Comail and LaSuite, we’ve suddenly got a credible alternative to the Google Workspace.

Or rather, an alternative to other ‘digital sovereignty suites’ with an anti-bigtech story, like Proton or Infomaniak. The latter isn’t very widely know, but they pull in nearly $100m annually by simply adding a thin veneer of branded UI on top of a massive suite of open source comms tooling, and then they sell it as the ‘grass-fed, homegrown Swiss comms stack’.

There’s nothing inherently wrong with what Infomaniak is doing; in fact, I wanna see it replicated in lots of other places, both at the nation state level and smaller. It just needs to be done more transparently and in direct collaboration with the commons infrastructure that supports the end-product.

I built a thing over on cavu.games which could be useful here.

Early documentation on the idea is here gamesgamesgamesgames.games Intent to Launch

Basic idea is that you login to a central service that proxies all the writes to your PDS and enforces a limited set of permissions and API calls.

This would require pretty broad changes to every app which I don’t like, but there’s maybe something resembling a login standard that’s closer to fedcm.

1 Like

My plan right now is that part of LaSuite will in fact move to being operational software for the co-op and community working groups.

Docs and Meet (video calls) have been extremely usable in practice and we’ve integrated into day to day already.

Drive (file storage) doesn’t really solve a problem for us right now (you can add attachments to Docs). But! I briefly pitched LaSuite on making this atproto native to also be an atmosphere account blog repo browser? This needs a lead, funding, and a file/blob lexicon.

I have a very hacked together system for restricting access with AIP and “groups” to give access to different apps, which is how Cloudron etc works (I’ve run Cloudron for many years).

The thing that is needed will be a groups primitive with spaces, and that is what allows you to build a launcher / dashboard. Making it so people can insert personal / multi org apps in here would be a thing.

Habitat will end up with something similar - an org and apps that are plugged into org spaces.

I am recruiting for our Community Infra Circle if anyone wants to be dev-ops-y with proxmox and ansible (and agents).

The (forked) LaSuite apps with atproto OIDC login will be available for anyone to participate in - Django and a very hackable stack. My main work has been further integration of handle native patterns.

LaSuite ALSO does not really have notifications. So a “dashboard” could also be a notifications aggregator.

2 Likes

wow, this thread is full of ambitious and inspirational people! this is a great idea and while the App Launcher/ Atmospheric OS is over my head, I could help/share/collaborate with anyone on universal atmospheric notifications. I got pretty far with getting them to work consistently when building out Courier where I leaned heavily on Fig’s Spacedust for event subscription and GO for high throughput, but that might not be the best way. If this sounds helpful or interesting I’d be glad to work together.
this got me thinking that maybe building a backend that could serve to any app that wanted this kind of functionality including this Atmospheric OS project.

3 Likes