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
Copy file name to clipboardExpand all lines: docs/starter-templates/custom-feeds.mdx
+8-8Lines changed: 8 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -17,14 +17,14 @@ Custom feeds work very simply: the server receives a request from a user's serve
17
17
A Feed Generator service can host one or more algorithms. The service itself is identified by DID, while each algorithm that it hosts is declared by a record in the repo of the account that created it. For instance, feeds offered by Bluesky will likely be declared in `@bsky.app`'s repo. Therefore, a given algorithm is identified by the at-uri of the declaration record. This declaration record includes a pointer to the service's DID along with some profile information for the feed.
18
18
19
19
The general flow of providing a custom algorithm to a user is as follows:
20
-
- A user requests a feed from their server (PDS) using the at-uri of the declared feed
21
-
- The PDS resolves the at-uri and finds the DID doc of the Feed Generator
22
-
- The PDS sends a `getFeedSkeleton` request to the service endpoint declared in the Feed Generator's DID doc
20
+
- A user requests a feed from the AppView using the at-uri of the declared feed
21
+
- (Currently, this request is proxied via the PDS, but it will hit the AppView directly in the future)
22
+
- The AppView resolves the at-uri and finds the DID doc of the Feed Generator
23
+
- The AppView sends a `getFeedSkeleton` request to the service endpoint declared in the Feed Generator's DID doc
23
24
- This request is authenticated by a JWT signed by the user's repo signing key
24
-
- The Feed Generator returns a skeleton of the feed to the user's PDS
25
-
- The PDS hydrates the feed (user info, post contents, aggregates, etc.)
26
-
- In the future, the PDS will hydrate the feed with the help of an App View, but for now, the PDS handles hydration itself
27
-
- The PDS returns the hydrated feed to the user
25
+
- The Feed Generator returns a skeleton of the feed to the AppView
26
+
- The AppView hydrates the feed (user info, post contents, aggregates, etc.)
27
+
- The AppView returns the hydrated feed to the user
28
28
29
29
For users, this should feel like visiting a page in the app. Once they subscribe to a custom algorithm, it will appear in their home interface as one of their available feeds.
30
30
@@ -72,7 +72,7 @@ Install dependencies with `yarn` and then run the server with `yarn start`. This
72
72
73
73
You'll notice that the `getFeedSkeleton` method returns a `cursor` in its response and takes a `cursor` param as input.
74
74
75
-
This cursor is treated as an opaque value and fully at the Feed Generator's discretion. It is simply passed through the PDS directly to and from the client.
75
+
This cursor is treated as an opaque value and fully at the Feed Generator's discretion. It is simply passed through the AppView directly to and from the client.
76
76
77
77
We strongly encourage that the cursor be _unique per feed item_ to prevent unexpected behavior in pagination.
0 commit comments