You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<!-- TODO: Preliminary work to record all of the steps involved with the initial ATProto work. Please feel free to update and revise as you see fit. -->
10
-
11
9
## Overview
12
10
13
-
_npmx.dev_ site architecture as it pertains to the ATProtocol ecosystem, the [Atmosphere](https://atproto.com/).
11
+
_npmx.dev_ site architecture as it pertains to the ATProtocol (ATProto) ecosystem, the [Atmosphere](https://atproto.com/).
14
12
15
13
---
16
14
17
15
## Atmosphere
18
16
19
-
The Atmosphere is the interconnected web of applications that all run on the ATProtocol. The primary benefit of this integration for nomx.dev are social features and connecting to the tens of millions of users ATProtocol on the social graph. Per the docs site:
17
+
The Atmosphere is the interconnected web of applications that all run on the ATProto. The primary benefits of this integration for _npmx.dev_ are the social features that connect us to the tens of millions of users on the ATProto social graph. Per the docs site:
20
18
21
19
> The AT Protocol is an open, decentralized network for building social applications.
22
20
23
21
---
24
22
25
23
## Architecture
26
24
27
-
These are the components that allow for _npmx.dev_ to exist as an app on the Atmosphere:
25
+
These are the essential components that allow for _npmx.dev_ to exist as an app on the Atmosphere:
28
26
29
-
1.**Domain** - _npmx.dev_ site
27
+
1.**App View** - _npmx.dev_ site
30
28
2.**OAuth** - Required for interacting with the Atmosphere
31
29
3.**Constellation** - A global atproto backlink index
32
30
4.**Lexicons** - Schema definition language
33
-
5.**Standard Site Sync** - Synchronizes app data with PDS
34
-
6.**Bluesky Social Graph** - Consume Bluesky posts/comments/threads
31
+
5.**PDS** - Personal Data Server for account hosting
32
+
6.**Standard Site Sync** - Synchronizes app data with PDS
33
+
7.**Bluesky Social Graph** - Consume Bluesky posts/comments/threads
34
+
35
+
For more details refer to the official ATProto docs [here](https://atproto.com/guides/the-at-stack).
35
36
36
-
### Domain
37
+
### App View
37
38
38
-
_npmx.dev_ site which serves as a third-party browser prioritized around high DX and native-like performance...
39
+
The _npmx.dev_ app is the frontend domain for the site which acts as a third-party browser for the extant [npmjs site](https://www.npmjs.com) but prioritized around high developer experience (DX) and native-like performance. As it concerns the idiomatic Atmosphere stack, it serves as the client entry point and enables user controls for `@npmx.social` profiles.
40
+
41
+
For more details refer to the official ATProto docs [here](https://atproto.com/guides/the-at-stack#app-views).
39
42
40
43
### OAuth
41
44
42
-
Necessary to ensure identities are observed...
45
+
Access to any ATProto affiliated entity requires an authneticated web presence, this is achieved via OAuth verification. OAuth is strictly necessary to ensure user identities are securely authenticated against their respective PDS without exposing credentials to _npmx.dev_ directly.
43
46
44
47
> OAuth is the primary mechanism in atproto for clients to make authorized requests to PDS instances.
45
48
46
-
https://atproto.com/specs/oauth
49
+
For more details refer to the official ATProto docs [here](https://atproto.com/specs/oauth).
47
50
48
51
### Constellation
49
52
50
-
Orchestration API layer that collects...stuff...
53
+
Constellation serves as the API orchestration layer and backend indexer. It acts as a bridge between _npmx.dev_ specific data structures and the wider ATProto network. Specifically, it indexes backlinks, aggregates app-view data, and manages the caching layer to reduce load on individual PDS instances during high-traffic events.
51
54
52
55
### Lexicons
53
56
54
-
Orchestration API layer that collects...stuff...
57
+
This is the glue that makes _npmx.dev_ data understandable to other ATProto apps. We utilize custom Lexicons to define the schema for _npmx.dev_ specific record types, such as our social features, package reviews, or documentation comments.
55
58
56
59
> Lexicon is a schema definition language used to describe atproto records, HTTP endpoints (XRPC), and event stream messages.
57
60
58
-
https://atproto.com/specs/lexicon
59
-
60
-
### Standard Site Sync
61
-
62
-
Synchronizes data changes from npmx.dev in the form of blog post MD files...
61
+
For more details refer to the official ATProto docs [here](https://atproto.com/specs/lexicon).
63
62
64
63
### Personal Data Servers (PDS)
65
64
66
65
The canonical source for a user identity, a PDS instance provides a substrate upon which to host user accounts and provide account management services.
67
66
68
67
> 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.
69
68
70
-
If you’re wanting to migrate to _npmx.dev_’s PDS then the primary means is to leverage [PDS MOOver](https://pdsmoover.com/moover/npmx.social), made by the community's own @bailey-townsend. If you need further support migrating please join the community [Discord](https://chat.npmx.dev) and refer to the `#pds` channel.
69
+
If you’re wanting to migrate to _npmx.dev_’s self-hosted PDS then the primary means is to leverage [PDS MOOver](https://pdsmoover.com/moover/npmx.social), made by the community's own <ahref="https://bsky.app/profile/baileytownsend.dev"target="_blank"rel="noopener noreferrer">@baileytownsend.dev</a>. If you need further support migrating then please join the community [Discord](https://chat.npmx.dev) and refer to the `#pds` channel.
71
70
72
71
For more details refer to the official ATProto docs [here](https://atproto.com/guides/the-at-stack#pds).
73
72
73
+
### Standard Site Sync
74
+
75
+
The mechanism for ensuring state consistency between _npmx.dev_ and our self-hosted PDS. Standard Site Sync acts as a specialized repository synchronization layer that translates changes from the _npmx.dev_ platform, such as when we publish a new blog post in the form of a Markdown file, into valid ATProto records that are then pushed to a user's PDS. This ensures that content created on _npmx.dev_ lives permanently in the user's data repository.
76
+
74
77
### Bluesky Social Graph
75
78
76
-
Collects and generates events to utilize Posts/Comments/Threads
79
+
We actively consume the Bluesky App View to integrate social interactions directly into the user experience. This allows us to utilize those events to display `Posts/Comments/Threads` on our blog posts, add likes to packages, and more. We hope to one day attach relevant articles to packages such as those by the author and see `likes` or `reposts` on technical articles, all without having to leave the _npmx.dev_ environment.
77
80
78
81
---
79
82
@@ -90,10 +93,10 @@ These are the components that allow for _npmx.dev_ to exist as an app on the Atm
90
93
91
94
## Resources
92
95
93
-
These are the components that allow for _npmx.dev_ to exist as an app on the Atmosphere:
0 commit comments