Open nicholaschiang opened 2 years ago
Existing adapters for the ActivityPub
protocol:
The fact that those adapters already exist is the purpose of using this shared standard. If we write a bunch of super high performant Rust adapters from Twitter-to-ActivityPub
and vice versa, we'll be contributing back to the DeSo community.
ActivityPub
data into Postgres.ActivityPub
.ActivityPub
protocol we'll need to e.g. be compatible with Mastodon, add custom features (like multi-quotes, etc) that Twitter doesn't yet have, recreate all of Twitter's existing feature set, etc.Because what I'm thinking is that we can work on those adapters and fit the existing ActivityPub
spec to recreate as much of Twitter as possible and when it fails, we can extend it ourselves and then contribute back (e.g. opening a PR in the ActivityPub
spec working group repository or Mastodon) those feature changes. BlueSky is apparently still in the "research phase" of figuring out the best DeSo protocol for Twitter to use (or create)--we can expedite that process (kinda) by seeing exactly how the existing "standard" (ActivityPub
) holds up at a low-level when (re)-building Twitter and then sharing that journey with the BlueSky folks.
We'll want to structure our Postgres database like Mastodon to use ActivityPub data types that are the "standard-ish" for DeSo apps. Then, to support Twitter (and any other existing centralized social platform like Instagram or LinkedIn), we'll simply create an adapter that consumes that centralized platform's public (or undocumented) API and spits out ActivityPub compatible data types (that are then stored in Postgres via another ActivityPub-to-Postgres adapter).
Eventually, once BlueSky actually gets somewhere, we'll be able to plugin to their protocol and act as another client of BlueSky. Twitter's long-term vision (according to Jack Dorsey at least) is to simply become a client of that protocol (similarly to how Gmail is a client for SMTP). And then we'll simply be another ("better") client... just like Superhuman is a "better" client for SMTP.