rooteco / tweetscape

the supercharged twitter feed
https://prototype.tweetscape.co
GNU Affero General Public License v3.0
18 stars 2 forks source link

Redesign `ActivityPub` powered back-end #410

Open nicholaschiang opened 2 years ago

nicholaschiang commented 2 years ago

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.

nicholaschiang commented 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.

nicholaschiang commented 2 years ago

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.