npmx.dev
Integrations

Atmosphere

npmx's role in the Atmosphere

What's the Atmosphere?

The Atmosphere is the interconnected web of apps that store and access data using the AT Protocol (atproto) – an open, decentralized network for building social applications.

For npmx, this means we can tap into a social graph shared by tens of millions of people. That gives us social features – comments, likes, threads – without having to build (or silo) a social network from scratch.


Architecture

Here's what makes npmx work as an Atmosphere app:

  1. Client – the npmx.dev site itself
  2. OAuth – how we authenticate with the network
  3. Constellation – a global atproto backlink index
  4. Lexicons – schema definitions for our data
  5. PDS – Personal Data Server for account hosting
  6. Standard Site Sync – keeps app data in sync with PDS
  7. Bluesky Social Graph – pulls in posts, comments, and threads

For the full picture, see the official atproto stack overview.

Client

The npmx app is a third-party browser for the npm registry, built around great developer experience and native-like performance. In Atmosphere terms, it's the 'client' – the place where you interact with your @npmx.social profile and everything else.

See the atproto App Views docs for more on how this fits together.

Personal Data Servers (PDS)

Your PDS is your home on the network – it hosts your account, stores your data, and handles identity.

Personal data servers, or PDSes, are your home in the cloud. They host your data, distribute it, manage your identity, and orchestrate requests to other services to give you your views.

Want to migrate to npmx's self-hosted PDS? The easiest way is PDS MOOver, built by @baileytownsend.dev. If you need help, hop into our Discord and check out the #pds channel.

See who's already on npmx.social on the PDS community page. For the protocol details, see the atproto PDS docs.

OAuth

To do anything on the Atmosphere, you need to prove who you are. We use OAuth so your identity is verified against your personal data server – npmx never sees your credentials.

OAuth is the primary mechanism in atproto for clients to make authorized requests to PDS instances.

See the atproto OAuth spec for the details.

Constellation

Constellation is our API orchestration layer and backend indexer. It bridges npmx's data structures with the wider atproto network – indexing backlinks, aggregating app-view data, and caching things so we don't hammer individual PDS instances during traffic spikes.

Lexicons

Lexicons are the glue that makes npmx data understandable to other atproto apps. We define custom lexicons for our record types – social features, package reviews, documentation comments, and so on.

Lexicon is a schema definition language used to describe atproto records, HTTP endpoints (XRPC), and event stream messages.

You can browse our Lexicons in the repo. We'll publish the formal schemas as they stabilize. See the atproto Lexicon spec for background.

Standard Site Sync

Standard Site Sync is the layer that translates npmx content – like a new blog post written in Markdown – into valid atproto records and pushes them to a PDS. It keeps everything in sync so that content you create on npmx.dev lives permanently in your data repository.

Bluesky Social Graph

We pull from the Bluesky App View via Constellation to surface social interactions right inside npmx. That means posts, comments, and threads show up on blog posts, you can like packages, and more. Down the road, we'd love to attach relevant articles to packages and show likes or reposts on technical content – all without leaving npmx.dev.


Why the Atmosphere?

Here's what being on the Atmosphere brings to an app like npmx:

  1. Blog posts – we can share short and long-form thoughts and have them live on the open network
  2. Comments – anyone can join the conversation on our content
  3. Discovery – people find npmx through the social graph, not just search engines
  4. Engagement – likes, reposts, and threads create a feedback loop between the app and the community

Resources

Copyright © 2026