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
There's great interest in a decentralized Reddit alternative, especially surrounding the current API controversy. ATProto would be a great base layer for this.
The next step would be to build it, and that depends on ATProto allowing creating custom records in new collections/lexicons. When trying to create a new record it fails with Lexicon not found and when disabling validation it fails with Unvalidated writes are not yet supported.. I could temporarily fork ATProto and run a public test instance, but that would be a high barrier to entry if users want to try/test the new features. The UI for creating these new record would be provided by third-party clients.
A challenge for the "board" (that's how subreddits are called in the concept) architecture is that the board needs to store most user actions like upvotes to be efficient, but this would require them to be signed by both the user and the board which adds a lot of complexity. I think a simple and elegant solution would be that both the user AND the board publish a record in their repos with exactly the same rkey and cid. So for example if a user submits something (like a link) to a board, it's first stored in the board repo and then copied to the user repo. The integrity can be verified by checking both repos. All records have a field for the user and the board DID to prevent other users or boards from abusing this signature system. An interesting concept could also be the feature to fork repos and keep all data, but replace the admin team/moderators if the previous ones abused their power.
Boards will be services hosted somewhere and very similar to how feed generators work, except that they have a more complex API and a full repo. A requirement for this to work would be that XRPC calls to these board services are proxied by the users PDS and an auth header added which authenticates the user securely (important for moderation actions and more). A board publishes a profile record (like bluesky) which contains metadata about it and a list of HTTPS serviceEndpoints. They provide all relevant XRPC APIs for the board.
So this issue asks for the following changes in ATProto:
Allow custom lexicons/collections
Proxy XRPC API calls to a third-party API server with user auth
The text was updated successfully, but these errors were encountered:
There's great interest in a decentralized Reddit alternative, especially surrounding the current API controversy. ATProto would be a great base layer for this.
So I created a concept and recently updated it with some valuable feedback from @dholms and @ericvolp12: https://github.com/redsolver/atproto
The next step would be to build it, and that depends on ATProto allowing creating custom records in new collections/lexicons. When trying to create a new record it fails with
Lexicon not found
and when disabling validation it fails withUnvalidated writes are not yet supported.
. I could temporarily fork ATProto and run a public test instance, but that would be a high barrier to entry if users want to try/test the new features. The UI for creating these new record would be provided by third-party clients.A challenge for the "board" (that's how subreddits are called in the concept) architecture is that the board needs to store most user actions like upvotes to be efficient, but this would require them to be signed by both the user and the board which adds a lot of complexity. I think a simple and elegant solution would be that both the user AND the board publish a record in their repos with exactly the same rkey and cid. So for example if a user submits something (like a link) to a board, it's first stored in the board repo and then copied to the user repo. The integrity can be verified by checking both repos. All records have a field for the user and the board DID to prevent other users or boards from abusing this signature system. An interesting concept could also be the feature to fork repos and keep all data, but replace the admin team/moderators if the previous ones abused their power.
Boards will be services hosted somewhere and very similar to how feed generators work, except that they have a more complex API and a full repo. A requirement for this to work would be that XRPC calls to these board services are proxied by the users PDS and an auth header added which authenticates the user securely (important for moderation actions and more). A board publishes a profile record (like bluesky) which contains metadata about it and a list of HTTPS
serviceEndpoints
. They provide all relevant XRPC APIs for the board.So this issue asks for the following changes in ATProto:
The text was updated successfully, but these errors were encountered: