
ActivityPub could be the future - jaywink
https://blog.digitalscofflaw.com/articles/activitypub-could-be-the-future/
======
Vinnl
I like Mastodon and ActivityPub, and I like that they're seeing relatively
broad adoption. That said, I'm not hopeful for the future. If it ever actually
sees broad adoption beyond the tech community, all Facebook or whatever comes
next has to do is incorporate ActivityPub posts into Facebook, perhaps even
send back Facebook comments to those posts, but not publish Facebook-
originated content. At that point, you can either be on Facebook and follow
all your Facebook __and __ActivityPub friends, or use Mastodon or whatever and
only follow your ActivityPub friends.

And even if Facebook does not do that, if a particular ActivityPub client
becomes wildly popular, it could do the same, much like how Google Talk
started out as interoperable with XMPP, only to ditch it when Google Talk was
popular.

~~~
librexpr
I think that most instances would block Facebook if they tried to do something
like that. They'd have nothing to gain and everything to lose by allowing FB
to get away with it.

As for your other point, it's also possible it will go the way of GMail, which
is still compatible with other email providers. I think a large part of it
depends on how big ActivityPub gets before a GMastodon appears.

Email is pervasive and decently well diversified on the web, with multiple
email providers, and many businesses and users not being on GMail, partially
due to inertia (they already had an email before GMail became big). Maybe
GMail could afford to cut off emails from external providers, but it would be
a big risk, and it would definitely break a large part of the web.

If ActivityPub does the same, with websites integrating it into their user
experience, and news organizations and businesses self-hosting or joining
various instances, I expect it would gain the same kind of resilience as email
for when a GMastodon shows up.

So I'm not too pessimistic about this. The more pressing concern is increasing
adoption, IMO.

~~~
NoGravitas
GMail is starting to close off compatibility with other email providers, in
small ways. AMP for email[0], and GMail's Confidential Mode[1].

[0]: [https://techcrunch.com/2018/02/13/amp-for-email-is-a-
terribl...](https://techcrunch.com/2018/02/13/amp-for-email-is-a-terrible-
idea/) [1]: [https://www.eff.org/deeplinks/2018/07/between-you-me-and-
goo...](https://www.eff.org/deeplinks/2018/07/between-you-me-and-google-
problems-gmails-confidential-mode)

~~~
throwaway2048
Also its virtually impossible to be smaller than a few hundred mails to gmail
a day as a server and not have your mails instantly spamboxed. Yes, i have
gone through the laundry lists of things it could be, and stuff i should set
up.

It does not help.

------
orthecreedence
ActivityPub really needs some decoupling of identity from server. If a server
I'm using starts acting up, the answer is to move servers, right?

But, wait, my 50K followers from Server A won't be following me on Server B.
Essentially, you only get to pick your original server once, without having to
rebuild your network. So choose wisely!

This obviously isn't an easy problem to solve. You'd need to separate identity
from hosting, and have some way to look up "identity A is on server D" so
peope following identity A know where to get the content.

I truly believe it's essential to the success of the protocol, though.

~~~
chipotle_coyote
This is what the whole IndieWeb movement is about -- being distributed rather
than merely federated. I'm mildly concerned that the two camps seem to be
building their own protocols rather than working together (excepting the
existence of Bridgy Fed, perhaps).

~~~
toomim
Good point -- it would actually be simple to combine IndieWeb + Mastadon and
solve this problem.

IndieWeb's solution is to own your own domain: [https://indieweb.org/personal-
domain](https://indieweb.org/personal-domain). If you control your DNS, you
can move your data to a different back-end provider and just update your DNS
entries.

To combine this with Mastadon, just make your own domain, like
[https://chipotle.coyote](https://chipotle.coyote), and point it at Mastadon-
Server-A. Then if you want to move everything to Mastadon-Server-B, just copy
the data and update DNS.

~~~
drexlspivey
There is an open github issue with some discussion on this
[https://github.com/tootsuite/mastodon/issues/2668](https://github.com/tootsuite/mastodon/issues/2668)

~~~
toomim
Good find! Thanks!

------
edhelas
> XMPP spoke XML in an age of JSON

Damn, let's ditch all the XML protocols then, XHTML first :D

What does "age of JSON" means exactly? Those are two different technologies
for different purposes.

Even if XMPP tried to move to JSON, how can you do namespaces in JSON for
example?

You want ActivityPub in XMPP ? Just take Pubsub and put Atom in it, those are
two stable and proven technologies, they fits perfectly (it's just one
namespace in another) and with many many benefits.

Here is a news feed built on top of XMPP Pubsub
[https://nl.movim.eu/?node/pubsub.movim.eu/Movim](https://nl.movim.eu/?node/pubsub.movim.eu/Movim),
and yes there's also an Atom 1.0 feed generated from it, because it's easy to
just extract the (validated) Atom content from Pubsub and put it back to a
proper HTTP page.

~~~
PurpleRamen
> how can you do namespaces in JSON for example?

For what is this neccessary?

~~~
gmueckl
Nsmespaces allow XML file formats flexible and extensible in interesting ways:
each namespace is tied to an independent schema, allowing for a very natural
nesting of validatable XML in arbitrary formats. The namespaces avoid name
collision between XML tags from different schemas. The grandparent gave a good
example of this kind of nesting.

JSON is incapable of the same kind of nesting because there are no explicit
namespace to identify nested data formats and to avoid name collisions.

~~~
ekidd
XML namespaces do offer some nice possibilities. But the lack of official JSON
namespaces doesn't prevent you from doing something like:

    
    
        {
            "built_in": "value",
            "org.example.my_extension": "value"
        }
    

If you want to validate it, you might need to jump through some JSON schema
hoops, of course.

~~~
lolsal
It seems that would make JSON likely more verbose than XML.

------
est
We need a logo/badge for ActivityPub, just like the RSS icon, for awareness.

~~~
yRetsyM
[https://commons.wikimedia.org/wiki/File:ActivityPub-logo-
sym...](https://commons.wikimedia.org/wiki/File:ActivityPub-logo-symbol.svg)

From: [https://activitypub.rocks/](https://activitypub.rocks/) And:
[https://gitlab.com/dustyweb/activitypub.rocks/blob/master/st...](https://gitlab.com/dustyweb/activitypub.rocks/blob/master/static/images/ActivityPub-
logo-symbol.svg)

~~~
quadrangle
That logo is excellent!

Tangent: I hate the use of "rocks" as a generic "is great" trend in our
langage.

------
ShadowX53
I didn't get a clear understanding of what ActivityPub is from your article.

~~~
est
universal API for realtime feeds.

~~~
jtbayly
Where the feeds are bidirectional, no?

~~~
andypants
Not necessarily. With the right controls implemented, you can decide how much
you want your instance to interact with other instances, but it depends on the
implementation. I don't know if masotodon is able to control this, and it
might not make sense for them to do it.

In Peertube at least, you need to manually specify which other peertube
instances you want to 'follow'. Other instances can also unilaterally follow
your instance.

------
kickscondor
I don’t know. It feels like SOAP - or XML-RPC. These protocols that are just
layered on top of HTTP keep coming, but they never seem to gain adoption. In
part because - what are static websites supposed to do to participate?

This was the beauty of RSS. I didn’t love RSS, because it eliminated all the
styling from blog posts - but it did achieve real widespread usage.

~~~
NoGravitas
You _can_ syndicate static websites with ActivityPub, pretty much the same way
as you do with RSS, except you're generating JSON-LD (ugh) rather than XML
(ugh). I've seen a proof-by-example, but I don't have the URL where I can
easily find it. The downside is that Mastodon, the most used AP server,
doesn't provide a way of subscribing to a static AP feed (it might work if you
also had a simple webfinger script to point to it).

I actually like the 'eliminate all the styling' feature of RSS. It's kind of a
pleasure to read blog posts and news articles in my mobile feed reader (tt-rss
for android).

~~~
jtbayly
Except for when the content wasn’t included. That was the problem with RSS. It
could never decide whether it was supposed to be distributing the content or
distributing notifications of the content.

That decision was made by the drive for “pageviews” both by ad-driven pages
and others that just wanted to know how many people were reading.

~~~
CM30
It was also made because quite a few services used RSS feeds for uses like
auto posting bots and what not, where they got information from a blog/news
site and posted about on their forums/social media service. In those cases,
you didn't want it to post the full article.

------
StavrosK
I saw the article and thought I'd add ActivityPub support to my site, but it
looks like static sites can't really do ActivityPub, is that right? I'd need a
server to do the posting/receiving.

~~~
cjslep
While that's true of ActivityPub, the data format it uses (ActivityStreams,
which a form of JSON) could be hosted on a static site separate from the HTML
version people are reading, which would at least make the content reference-
able on the ActivityPub federated network.

~~~
pmlnr
Good. Can you please point me at working implementation examples?

~~~
jfreax
I also couldn't find a good tutorial, but another commenter here pointed to
this blog post: [https://blog.joinmastodon.org/2018/06/how-to-implement-a-
bas...](https://blog.joinmastodon.org/2018/06/how-to-implement-a-basic-
activitypub-server/)

Maybe it's a good starting point?

------
wslh
I wonder what is the best practice for building a search engine or mining data
around ActivityPub. Centralization comes naturally when a search engine or
analytics is needed.

I imagine a good search engine can be open sourced and data be available to
anyone to analyze but the eyeballs and ads will end up in a search engine like
Google.

~~~
mxuribe
Search - or more importantly, discovery of content - in a
decentralized/federated ecosystem is where google should experiment on a bit
more. This is where there is a gap in the decentralized/federated arena. (I
acknowledge this even though I am a proud supporter of decentralization!) If
google can bring value in this arena, then they can pivot their G+ product and
offer it as an underlying platform to provide ActivityPub clients, etc. It
could be used to undercut facebook, etc., and make G+ less of a ghost town.
For example, people use GSuite to use the gmail email front-end, but leverage
their own domain name. What if google pivots G+ to be an activityPub server,
allowing paying customers to leverage their own domain name (on google's
infrastructure) to interact with the fediverse? And for those users who don;t
know/care about decentralization, they think they're getting their own
"instance of a social network maintained by google". I think there is a market
for this.

------
jtbayly
Can somebody explain how blogging platforms are benefitted by activity pub and
why there isn’t a Wordpress plugin?

~~~
zaarn
I think some WP Plugins are in the works.

The short version would be that AP would mean you could get the benefits of
both having an RSS Feed and a Comment Section without having to run either as
a seperate plugin.

If WP had an AP Plugin, people could follow your blog from their Mastodon
Account or Plume or any other platform that allows following. They can share
and like your blog and that gets federated back, you get those directly to
your blog.

People can respond to your blog and it would show up as comments and they
could discuss it off and on your blog.

Though I don#t think AP is panacea, I do think it could enable a lot of
interop between previously disconnected platforms.

~~~
severine
> _I think some WP Plugins are in the works._

There's some info here:

[https://www.w3.org/wiki/Socialwg/2016-06-06-minutes#AS2_impl...](https://www.w3.org/wiki/Socialwg/2016-06-06-minutes#AS2_implementation_-
_WordPress_plugin)

[https://wordpress.org/plugins/activitystream-
extension/#desc...](https://wordpress.org/plugins/activitystream-
extension/#description)

------
davepeck
Mastodon reports ~110k weekly active users and 121M "toots" across its 2+-year
lifetime. That's impressive for a federated social network but, for
comparison, 121M new tweets are generated on Twitter about every six hours.

Some more basic Mastodon stats that I recently collected:
[https://davepeck.org/2018/05/03/mastodon-
stats/](https://davepeck.org/2018/05/03/mastodon-stats/)

~~~
ocdtrekkie
How many tweets were generated when Twitter was about two years in? Early
growth curves on social networks are exponential, there's plenty of time for
Mastodon or an as-yet-to-be-created network to eclipse Twitter as it starts to
decline.

EDIT: According to
[https://blog.twitter.com/official/en_us/a/2011/numbers.html](https://blog.twitter.com/official/en_us/a/2011/numbers.html)
it took about three years and two months for Twitter to hit a billion tweets.
That's well within what Mastodon could hit with "exponential growth", though
I'm guessing Mastodon will fall a bit short of that rate.

~~~
davepeck
It’s a good question and one I didn’t address because I wasn’t able to find
super reliable numbers. That’s a good link, though. Thanks!

------
znpy
I started using mastodon after realising that SDF had set up an instance, and
I only had to activate my SDF account.

So far, so good. Social stuff is neat again, I don't get my bandwidth wasted
for ads and I can trust my provider.

Hopefully this becomes the norm!

This makes me realize that I got my SDF account in 2008 when I was 16, no
questions asked, and I was unemployed. Now I've got a job and I can finally
sign-up for a recurring payment/support account.

------
jarym
HATEOAS could have been the future too - many people wanted it to be.

With all these standards, the successful ones need to find some magic moment
to take off - like HTTP did.

Too early to tell if ActivityPub (which I like as a protocol very much) will
be an HTTP or an XML.

~~~
tbrownaw
The reason behind HATEOAS was that REST was in practice being watered down
from how it was originally envisioned, so proponents of the original vision
needed a new term.

I don't think that your origin story being "well we needed a way to tell all
the practitioners they were consistently doing it wrong" is a good indicator
of potential success.

~~~
jarym
Ok, perhaps I picked a poor example - but still, the success of a standard
depends on some magic formula that isn't easy to repeat.

------
briandear
Off topic, but whatever happened to app.net? That was supposed to be the next
new thing.

~~~
dredmorbius
_On January 12, 2017, the founders announced that the platform App.net would
be shut down on March 15, 2017.[13] However, due to a significant number of
user data export failures that deadline was extended until March 16, 2017.
App.net finally ceased to operate as a social network at 2017-03-17-06:45UTC.
The source code for App.net was made available on their Github Page._

[https://en.wikipedia.org/wiki/App.net](https://en.wikipedia.org/wiki/App.net)

------
irispanabaker
use this tool to check JSON-LD data.
[https://jsonformatter.org](https://jsonformatter.org)

------
dingo_bat
Just signed up on mastodon social. First impressions:

\- The web app is very well made, although the space utilization could be a
bit better

\- There doesn't seem to be any concept of friends, but there is something
called "follows".

\- Almost every post in my timeline was in a language I couldn't understand.

All in all, nice experience but looks identical to twitter. Not really sure of
any benefits over twitter.

------
TekMol
How is a site like mastodon.social different from a site like Twitter? There
is no guarantee that the site will continue to operate or continue to provide
API access.

I have the feeling that people confuse 'federated' (aka provides API access)
with 'distributed' (aka does not rely on specific nodes).

~~~
cmiles74
From the customer standpoint, I think the only real difference is that you
could host your own instance and take part in the network yet still "own" your
posts. I say "own" pretty loosely since they get broadcast across the network.

But in this case, even if mastododon.social went down, your posts would still
be available on the network and through your own (and other) mastodon
instances.

In terms of the API, this is a open source project and it needs to communicate
with other nodes in the network; I believe this puts real limits on how much
they can change the API.

~~~
TekMol
But is running your own instance worth anything? People use social media
mainly to gather followers and likes. So there needs to be a reputation at
play provided by the service provider to make sure those are real. Having a
gazillion followers and a trillion likes on your own instance will not make
you a celebrity.

~~~
NoGravitas
Social media doesn't have to be about celebrity, or about promoting a personal
brand. The big silos have promoted this use case because it aligns with their
advertising incentives. But connecting with people with similar interests is
another use case, as is keeping up with your friends and family.

I also think you misunderstand how following works on the Fediverse. My main
account is on a small server with about 400 users, about 50 of which are
active daily, I guess. But I have around 1000 followers, almost all of whom
are on other instances (probably 20 or so are on my instance).

