👀 BrowserPub: A browser for exploring #ActivityPub and the ⁂fediverse

@[email protected] · BrowserPub · A browser for exploring ActivityPub and the fediverse
Explore the open social web through the lens of ActivityPub and the fediverse.
👀 BrowserPub: A browser for exploring #ActivityPub and the ⁂fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.
The idea here is to make it a bit easier to see how well the various players in the fediverse support the C2S side of the ActivityPub spec.
You can punch in any ActivityPub discoverable web url or fediverse handle, and BrowserPub will discover and display the underlying AP:
e.g.
social profiles: https://browser.pub/https://mastodon.social/@mastodon
or posts:
https://browser.pub/https://mastodon.social/@Gargron/113005517546136592
or fediverse handles:
https://browser.pub/@Gargron@mastodon.social
or even usernames (defaults to mastodon.social for now):
https://browser.pub/Gargron

Explore the open social web through the lens of ActivityPub and the fediverse.
BrowserPub defaults to a visual representation of the object (if a known type)
everything here is powered by ActivityPub, no server-specific APIs
you can also view the underlying ActivityPub object as JSON...
It'll work on ActivityPub-enabled wordpress sites:

Explore the open social web through the lens of ActivityPub and the fediverse.
... or posts:
https://browser.pub/https%3A%2F%2Fandypiper.co.uk%2F2024%2F08%2F11%2Fsynology-issues%2F

Explore the open social web through the lens of ActivityPub and the fediverse.
For known collection properties (like outbox, followers, featured, etc), it will preview the collection and support paging via a "next" link:

Explore the open social web through the lens of ActivityPub and the fediverse.
Here's a Lemmy group

Explore the open social web through the lens of ActivityPub and the fediverse.
And here's @manton 's profile using micro.blog's AP endpoint

Explore the open social web through the lens of ActivityPub and the fediverse.
Threads posts and profiles are also available, for users that have checked the magic box
Here's a post:
https://browser.pub/https://www.threads.net/@evanprodromou/post/C8qtHZEuA0Q

Explore the open social web through the lens of ActivityPub and the fediverse.
While Threads does not support the replies collection yet, they do support the inReplyTo pointer, which BrowserPub renders above
https://browser.pub/https://www.threads.net/@evanprodromou/post/C-0iXNmvgj7

Explore the open social web through the lens of ActivityPub and the fediverse.
BrowserPub also supports the new fediverse:creator discovery mechanism

Explore the open social web through the lens of ActivityPub and the fediverse.
Bluesky profiles that are bridged can also be rendered
e.g. @snarfed.org bridged bsky profile
https://browser.pub/https://bsky.brid.gy/ap/did:plc:3ljmtyyjqcjee2kpewgsifvb

Explore the open social web through the lens of ActivityPub and the fediverse.
Here's a podcast from @dave 's podcastindex bridge

Explore the open social web through the lens of ActivityPub and the fediverse.
BrowserPub also tries to render custom emojis in content and profile headers, these are in the ActivityPub payload after all
even animated ones
https://browser.pub/https://bolha.one/users/joaonaweb/statuses/112978564080782762

Explore the open social web through the lens of ActivityPub and the fediverse.
and of course Flipboard is supported (cc @mike) nothing special, just the same ActivityPub spec implementation
https://browser.pub/https%3A%2F%2Fflipboard.social%2Fusers%2Farunshah

Explore the open social web through the lens of ActivityPub and the fediverse.
so even though Threads doesn't return collection items in the ActivityPub payload yet, it _does_ include the counts - so at least I can display those
just pushed it live
https://browser.pub/https://threads.net/ap/users/17841401083120503/

Explore the open social web through the lens of ActivityPub and the fediverse.
Polls are not a Mastodon-specific feature, they can be expressed well in standard ActivityPub, which means standards-based apps like BrowserPub can render them
Here is a recent poll example from @evan
https://browser.pub/https://cosocial.ca/@evan/113005485605693174

Explore the open social web through the lens of ActivityPub and the fediverse.
looks like someone submitted it to hacker news!
and looks like Ghost got their outbox and posts ActivityPub working
although they are not in reverse chron like everyone else (@johnonolan, was this intentional?)

Explore the open social web through the lens of ActivityPub and the fediverse.
So as I'm bopping around looking at everyone's #ActivityPub in browser.pub, I wanted to have the ability to follow interesting people while I'm browsing.
I just pushed a new update that adds a "Follow" button next to every profile in the visual view

Explore the open social web through the lens of ActivityPub and the fediverse.
Ideally, I'd like to have these follows take effect here in my main account and not have to create a brand new profile on a brand new site.
This is where OAuth comes in - many existing fediverse servers supported federated login in a standard way
Just enter your account to start the login flow in browser.pub
... then stores the login info in the browser
For OAuth dorks, it'll show the token expiration and granted scope
Also whether or not the server supports the excellent OAuth server metadata spec, and whether the server supports PKCE (a security improvement that is a newer part of the spec)
now Pleroma is special here, it supports following like this in bog-standard ActivityPub!
ie just posting a small json payload to the logged-in user's outbox endpoint
hopefully more ActivityPub servers support this soon, as it should be very similar to what they already do for S2S
misskey and micro.blog from @manton both support client registration for clients like this by simply providing a website url
it's called "indieauth" (displayed in the login info row, otherwise falls back to mastodon-style app-creation-based registration)
there is a newer emerging standard for dynamic client registration, but no one supports it yet - I'll add it when one does!
micro.blog doesn't support C2S follows via the outbox yet, but we can fallback to the micro.blog api here
you'll notice that browser.pub not only requests the ability to follow, but _also_ to read, generally
this gives the logged-in user the ability to explore ActivityPub collections that may not be public, only accessible via auth (if the server supports such collections over ActivityPub C2S)
in theory, you could imagine building a thing on top of these collections that looks like your personal mastodon timeline, but using spec-standard ActivityPub
in practice, tho, here is my mastodon inbox 🤦♂️
Pleroma, however, is a different story - a better story
here is my Pleroma account, listing my private inbox collection - essentially my home timeline
this is not public, but available to ActivityPub C2S clients like browser.pub with a valid auth token
Under the hood, the personal inbox is represented as an essentially infinite ActivityPub OrderedCollection, with no 'totalItems' count property, and no 'last' pointer
I can keep iterating down my inbox reverse chron this way in the json...