Atmospheric doesn’t have to be an app

I've been thinking about tools for publishers lately and am on my way home from an amazing Protocols for Publishers event where I finally got to meet some AT Proto developers and learn from publishers who are doing great work with decentralized social tools. This isn't a post about that event but it's very timely!

Here's a brilliant bon mot from Matias Capeletto , one of many sharp devs building in the Atmosphere, that got my gears turning:

This is exactly right! Not everything needs to be a full-blown app, you can add social features to your website without having to give up control or data to a centralized platform.

Make Bluesky your comments section

Here's a simple way to start bringing your site into the Atmosphere without having to write any backend code: turn replies on Bluesky into the comments on your site. Bluesky alum Emily Liu wrote about this a few years ago and since then plenty of solutions have sprung up .

As a bonus, you inherit all of the features baked into Bluesky, like composable moderation and the thermonuclear block, to help you manage the response when your post goes viral.

I mentioned you don't have to write any backend code for this, which might have a you asking a few more questions, like: don't browsers typically forbid you from making client-side API calls to another domain? Typically that's true — and for good reasons! — thanks to the same-origin policy baked into browsers. But Bluesky allows anyone to make an API request to a post, even via JavaScript in the browser, with a permissive CORS header.

So, you can publish a blog post, post it on Bluesky, and then add the replies as comments on the post. Your site is a bit more Atmospheric with just a few lines of JavaScript.

Publish into the Atmosphere

I've written before about standard.site , a community effort that launched late last year to define lexicons for longer form posts, like blogs. AT Protocol-native apps like Leaflet (where this blog is published), pckt , GreenGale , and the soon-to-launch Offprint already support the standard. site lexicons out of the box, but any website can add them.

In fact, Steve Simkins recently launched a tool called Sequoia for websites to publish standard.site lexicons, including via static site generators like 11ty. He even put together a slick video to show how it works. And if you are running an Astro-powered site, this package from @chaosgreml.in bundles several AT Protocol features together.

What does "publishing into the Atmosphere" mean right now? It's actually different from cross posting to Bluesky, which would create a post on Bluesky but only expose a reference back to your original site. Publishing via a lexicon like standard.site means you are actually creating records in your own repository/PDS with these custom schemas where it can be indexed, searched, found by discovery apps. That ecosystem is small right now but growing fast and the more posts we add, the more useful it becomes.

(And there's no requirement that the full text of your posts needs to go into the lexicon. If you're building a membership site, you could still post a preview so that it's discoverable in the Atmosphere and then point people back to your site where they can join and read the full post!)

Add login with OAuth

If you want to add any social features to your website, the first thing you're going to need is some way for people to authenticate who they are. Building your own authentication setup means managing identities, plus people have to sign up for another thing. Adding "Sign in with..." widgets locks you into the centralized platforms that have fenced in the web.

Letting folks login with their AT Protocol handle means you can offer a streamlined approach while letting people maintain control over their identity. Today, for the vast majority of cases, that means folks will likely log in with their Bluesky handle, but it doesn't have to mean Bluesky only. Anyone who's signed up for a Tangled account or created a page on Blento has an Atmospheric handle that they also use.

The good folks at selfhosted.social are even showing how developers can use their infrastructure to create new accounts that don't rely on Bluesky to create a seamless experience. Sites like Deck Belcher (killer name!) and plyr.fm are already using for new account creation while still being able to tap into the 40+ million people with Bluesky accounts.

Adding OAuth to your site is probably the most involved not-an-app setup you could undertake, we've got a guide here with sample code in Go, Python, and JavaScript.

Like and subscribe

Once people can log in via the atmosphere, you can start to layer on social features that make sense for your site.

You might want to give people a way to signal that they like a post, either with a binary yes/no or maybe a Statusphere-like panoply of emoji . The wizards behind the very rapidly-progressing next-generation JavaScript package registry npmx.dev just added a like feature to every package — show your favorite JavaScript library some love.

And Newsreading app Sill added bookmarks using a community lexicon that makes those saved posts interoperable with other protocol apps .

Practical decentralization

All of these features are additive and don't require you to tear down your existing app or start from scratch. You can add Atmospheric features as they make sense for your site, and as more sites become a part of the Atmosphere the entire network gets richer.

You don't have to be zealously committed to decentralization, or even have much of an opinion about it other than it lets you take part in a wider web while maintaining control and ownership.

I started this post stealing a smart quote, so I'll end by stealing another one from my colleague Samuel that I think nicely sums up the Atmospheric approach to building.