Social Network

We have seen that NextGraph is organized around documents, and that we can share and collaborate on those documents with other users.

The internal mechanism of synchronization of the documents is based on a pub/sub, and this enables us to offer all the range of features and services that a Social Network offers.

Nowadays, all apps and content want to be shared with others (except the private content).

It would not make sense for us not to have integrated a social network in NextGraph, as the very nature of the web and the internet, is about sharing and communication.

The Social Network of NextGraph is based on our platform, that is secure and encrypted end-to-end, decentralized and P2P, and also enjoys the features of local-first that we offer.

Furthermore, as you understood NextGraph data model is based on the Semantic Web, we benefit from that very much, as the Semantic Web and Linked Data fits perfectly to the construction of a Social Network.

Our protocol is open source, our infrastructure is also open, as anybody can run their own broker, and we are basing all our work on established Open standards.

The only part that we had to design and implement ourselves, is the network protocol. We explained in the Encryption chapter why we had to create a new protocol and why we could not reuse an existing one. But this innovation was worth it!

As we also know that some existing protocols are widely used, we will strive to be compatible with them.

ActivityPub is the most famous OSS protocol for social network, and we have started a collaboration with the ActivityPods project in order to bring full compatibility of NextGraph with ActivityPub protocol, and also with the Solid standard! We also aim at harmonizing our frameworks so that apps developed for ActivityPods will also work on NextGraph framework and thus benefit from local-first and end-to-end encryption, and the reverse will also be true. Apps developed on NextGraph framework will also work on ActivityPods, and therefore be compatible with ActivityPub and Solid.

ActivityPods will act as a gateway between the world of HTTP and NextGraph, that has severed ties with HTTP for reasons explained in the Encryption chapter.

Later on, we also aim at being compatible with Nostr, BlueSky/ATproto and maybe more protocols too.

We believe that offering Social Network features in the heart of our framework is essential. Here is a list of the features that will soon be part of our framework and platform.

Stream

Each NextGraph Store comes by default with a Stream, which is a list of updates that anybody can subscribe to. (the private store doesn’t offer that, and in order to subscribe to the protected store, you need the link with the long secret key).

Subscribing to the stream is equivalent to “following” a profile.

The stream can be composed of any type of content.

In order to publish some content in your own stream, you just need to create a new document, and select the option “Send in current stream”. All your followers will then see this content when they consult their aggregated stream (accessible from the main screen of the app, with the icon of a thunder bolt). It works exactly the same as the feed of instagram or Mastodon.

Any document that has already been created, can be sent into the stream, with the “Share” menu of the Document menu.

It is also possible to “re-tweet” or “boost” something that we like, or to “quote and post” if we also want to add our own comment before reposting.

We can also “reply” to a Post, which is the equivalent of commenting, on other platforms.

We also differentiate between the content that the user wants to add permanently to their profile (this is what we call the homepage of the Store), and the content that should be sent to the stream (more like Stories, or announcements that new content has been added to the store). The stream is ephemeral, while the Store stays permanent.

Of course, it is also possible to like and react to all the content, and to share content in the DMs too.

Groups and chatroom

As we already explained in the Documents chapter, the user can create new groups and invite users to participate to that group.

This feature can be used to create chatrooms, and benefit from all the other features of NextGraph within this chat room : collaborative documents, organize into folders, work offline, end-to-end encryption etc…

This feature will come soon :)

One of the advantages of NextGraph, is that your social graph (the connections between you and other users), is stored in a graph in a decentralized way, and there is no central authority that can control or see this graph.

We give way too much power to some private companies like Meta or Twitter/X, when we use their platform. They can see the whole graph of all the social connections between people, globally, all over the planet. That’s a lot of interesting information, used for advertising, but also for political meddling, and also for surveillance by intelligence services.

With NextGraph, the social graph is distributed in the hands of each participant to the graph, that holds only the needed connections to the people they know, follow, like or interact with. Nobody can see the “big picture”. It is very good to protect everyone’s privacy!

But this has a negative side-effect. The global graph that Meta by example, maintains, enables them to be able to derive some useful information like recommendations, or specialized content that matches your interests.

We will overcome this caveat of not having access to the global graph, by enabling peer-to-peer traversal of the graph.

This will be possible very soon in NextGraph, thanks to the use of the Semantic Web and the features of “federated queries” that lets you query the data that is not on your machine, but instead, sits in the machine of your friends and contacts. If those other users give you the permission to do so, you will be able to search in their own graph too.

This is why NextGraph makes a strong separation between the data that is private and should always stay private, and the data that is public or protected. Public data can be queried by anyone, while protected data needs your permission.

With federated queries, we will be able to ask our friends for recommendation, and to see our social graph in a more meaningful way.

Because Meta stores all the global graph based on the data that we provide to this company (by clicking, liking, commenting, following, etc) that does not mean that the Meta company let us have access to the data that we generated. To the contrary. They keep this data for themselves and share it only with advertisers and other high-profile third-parties.

Here with NextGraph, we can finally regain control over our social graph and shared data, and if we are allowed by our peers, we can navigate this social graph freely.

And unlike ActivityPub, where everything is public and the system administrators of the Mastodon servers can see everything that we do, including reading our private DMs, with NextGraph, we all have end-to-end encryption by default. We also benefit from the local-first feature of NextGraph, which makes the apps work offline too. That’s very handy when traveling by example, as the whole social network app still works without internet, and will synchronize itself back when we are connected again.

Compatibility with Big Tech

Even though we really want to get rid of all the Big-Tech products and services, we understand that a level of compatibility with them will be need if we want the transition process to be fast and smooth.

Indeed, most of our contacts and friends today are still using the social networks and tools of Big-Tech.

If we want to reach them, we have to use the tools and platforms that they use, until they eventually switch to OSS tools and platforms, and specially, to NextGraph.

We are investigating how we could offer a certain level of compatibility with those platforms, so that users of NextGraph can also cross-post to Meta or X, and could also interact with their users (DMs, follow, etc).

It will not be easy, as those platforms do not offer APIs for us to connect to and have access to their users’ data.

Maybe one day the European Union will finally force them to open their APIs and force interoperability.

In the meanwhile, we are currently exploring ways to implement this already.

Another important tool would be the option to import all the content and contacts that someone has gathered through the years on a platform of big-tech, so it can be used in NextGraph, when that person decides to switch to our platform. Some big-tech platforms already offer the export option, and we would have to implement the import part.

It is important to understand that NextGraph does not need to implement an export feature, because with NextGraph, all your data is totally under your control already. It is local and you have it directly on your device, it is saved in some open standards like RDF, JSON or Markdown, and you can do whatever you want with it. Furthermore, if you decide at some point to use a different broker, or to self-host your own broker, all your data at NextGraph is absolutely portable and you can move your data to another broker without any bad consequence. Your documents and links have unique IDs that are not related to the broker where you store the data. That’s another advantage that no other platform or framework can offer, not even ActivityPub or Solid, which are all based on http and domain names, and that will break as soon as you change hosting provider. (I have experienced this myself. In Mastodon, the list of followers can easily be transferred, but you loose all your posts and DMs).

Welcome to NextGraph, that will soon offer all those Social Network features, and that already offers the best collaborative tools with offline-first and end-to-end encryption.