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

https://browser.pub

https://loops.video/v/60lC-bfjNH · 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

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

... or a less JSON-ey structured outline

It'll work on ActivityPub-enabled wordpress sites:

https://browser.pub/fediversereport.com

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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:

https://browser.pub/davew

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

https://browser.pub/https://manton.org/activitypub/manton

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.

BrowserPub also supports the new fediverse:creator discovery mechanism

https://browser.pub/https://www.theverge.com/2024/7/2/24190641/apple-vision-pro-headset-future-cheaper

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.

Hmm, I'd love to be able to render a more dynamic og:image at some point 🤔

Here's a podcast from @dave 's podcastindex bridge

https://browser.pub/@[email protected]index.org

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.

@dave Dave I was going to link the podcast guid to pi.org search, but it doesn't take guids!

https://podcastindex.org/search?q=4c5142a7-a0bc-5c86-bad8-c149d4eceed6

Search | Podcastindex.org

The Podcast Index is here to preserve, protect and extend the open, independent podcasting ecosystem.

Podcastindex.org

@js @dave I could add that.

You can link directly to the podcast pages with the guid though.

https://podcastindex.org/podcast/4c5142a7-a0bc-5c86-bad8-c149d4eceed6

Podcastindex.org

The Podcast Index is here to preserve, protect and extend the open, independent podcasting ecosystem.

Update README.md · nathangathright/podcast-platform-links@11431f1

Contribute to nathangathright/podcast-platform-links development by creating an account on GitHub.

GitHub

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

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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/

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.

looks like someone submitted it to hacker news!

https://news.ycombinator.com/item?id=41351408

A browser for debugging ActivityPub and the Fediverse | 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?)

https://browser.pub/index@activitypub.ghost.org

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

e.g. https://browser.pub/mastodon@mastodon.social

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

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

browser.pub requests the ability to add new follows to your account...

... 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)

You'll see that only the newest Mastodon 4.3 (still beta only?) supports this new metadata, but it should be rolling out widely soon.
anyway, once you have an active login it will be displayed in the top-right corner, and you can follow profiles with a tap of the "Follow" button

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 🤦‍♂️

@js but nice to see you using what I've added! :D

@js you'll probably be better waiting until Client ID Metadata Documents are implemented, otherwise you'll be maintaining a tonne of OAuth App registrations :/

You could also implement this through authorized interactions, iirc.

@thisismissem yes I can't _wait_ until that spec is supported in popular implementations

right now I maintain a minimum number of mastodon app registrations based on unique attributes (they are not user-specific), but would love to rely on this less in the future

let me know if you know of a server I can get an account on that implements Client ID Metadata Documents for testing

@js well, considering I'm likely the person doing the mastodon implementation of that (I’m the co-author of that internet draft), it'll be "once I have funding for it”

I know Mastodon are strongly interested in it; I just can't give a good estimate atm of time required.

@js first off never heard of this tool before. This is awesome, second the update is also awesome. third thing, you are awesome for sharing this.

@chiefgyk3d

thanks for the kind words! hope it helps you out there in activitypub-land

@js awesome update! Excited to see people build unique ways to read AP collections on top of BrowserPub
@js thanks! We’ll fix :)
Added reverse-chronological ordering to outbox items (#34) · TryGhost/ActivityPub@c8dc4ca

refs [AP-371](https://linear.app/tryghost/issue/AP-371/outbox-item-ordering-is-not-in-reverse-chronological-order) Added reverse-chronological ordering to outbox items by reversing the order of ...

GitHub

@johnonolan

🔥🔥🔥 with tests!

and appears to be live: https://browser.pub/@index@activitypub.ghost.org

https://loops.video/v/60lC-bfjNH · BrowserPub · A browser for exploring ActivityPub and the fediverse

Explore the open social web through the lens of ActivityPub and the fediverse.

@js This is really cool. Works great for seeing federated Flipboard accounts and magazines too like @mike and @the-insight-mike
@js Projects like this are SO important for the development of ActivityPub based services/apps. Bravo!
@js can I just say that you've done a really lovely job on the rendering of all the information from profiles etc here. It looks really, really good. Thank you.