👀 BrowserPub: A browser for exploring #ActivityPub and the ⁂fediverse
76 comments
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... For known collection properties (like outbox, followers, featured, etc), it will preview the collection and support paging via a "next" link: Threads posts and profiles are also available, for users that have checked the magic box Here's a post: 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 BrowserPub also supports the new fediverse:creator discovery mechanism 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 Hmm, I'd love to be able to render a more dynamic og:image at some point 🤔 @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 You can link directly to the podcast pages with the guid though. https://podcastindex.org/podcast/4c5142a7-a0bc-5c86-bad8-c149d4eceed6 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 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 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/ 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 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?) 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 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) @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. @js 🥳 If I may make a request, some details appear as "invalid" but nothing more is specified. For example the public key for https://browser.pub/https://federated.id I suspect it's the fact that it's not an RSA key, but I'm not sure. @mariusor Oh cool a good test case What type of key is that example there? I believe I just use web crypto to parse @js other actors on the server have rsa keys, like https://browser.pub/https%3A%2F%2Ffederated.id%2Factors%2F8b740680-ccb4-4265-82e7-4ac2ca402750 ok your urls and tags are rendered a bit better now also huge props for implementing the liked collection https://browser.pub/https://federated.id/actors/8b740680-ccb4-4265-82e7-4ac2ca402750 @james@bne.social @james@crid.land thanks! still working on it, but it's already fairly useful as is, so why not build the rest in public @silverpill I mean it's basically all client-side so, uh, view-source? : ) Don't make fun of my vanilla browser non-framework JS @silverpill btw, I noticed that your json ld custom context is returned in a random order, can you fix that? I believe prefixes need to be defined before they are used, but I put a custom workaround in there for now can see it by hitting the json tab here and refreshing over and over @js the :fediverse: Fixed that for you.😝 ⁂ doesn't really show the diversity or interconnectedness of Fedi the way the real logo does. Not to mention, it's less appealing. @js seems like a neat and interesting name that makes me want to learn more about it...🤨 @js that's really neat, being able to follow links in the JSON view is super interesting. @paulmwatson thanks - that's how it started then kind of rabbit holed from there there is an entire field-level validation model I haven't wired up yet - think squigglies or overlay badges for warnings/errors etc @js this is so good looks like it's going to be immensely helpful for troubleshooting both misconfigured instances or custom implementations (both of which I'm involved in somehow) (can't debug what you can't see) thanks! @thm thanks! there is a pretty detailed property-level validation system underneath that I intend to surface where necessary there are some server implementations that don't have their json ld contexts quite right let's get everyone valid - like you say, it's easier to fix when it's easier to see @box464 thanks - more to come, but I figured building something like this little by little in public makes sense let me know if you come across any links that don't look right I haven't even finished photo albums federation in Smithereen yet, but it already shows them so neatly @js if I may make a suggestion related to one of my projects: I output Image objects that have the image binary data encoded in the Content property with base64. BrowserPub could transform this to an actual image. An example of what I mean: https://browser.pub/https%3A%2F%2Fmarius.federated.id%2Foutbox%2F2%2Fobject |
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
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