Salta al contenuto principale


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

browser.pub

Questa voce è stata modificata (1 settimana fa)
in reply to John Spurlock

Love it! A great learning tool, too. Thanks for building and sharing this.
in reply to Jeff Sikes

@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

in reply to silverpill

@silverpill I mean it's basically all client-side

so, uh, view-source? : )

Don't make fun of my vanilla browser non-framework JS

in reply to John Spurlock

@silverpill probably the bigger question is whether you want contributors.

Also, do you route requests through the b.s server if the remote server uses authorized fetch?

in reply to Evan Prodromou

@evan @silverpill

1. not sure yet - it's a passion project and still very early days (e.g. it does jsonld validation under the hood but not exposed in the UI yet)

2. yes (try a federated threads profile or post url, or gotosocial)

in reply to Evan Prodromou

@evan @silverpill

yes pretty limited at the moment. they do expose following/follower collection _counts_, but do not enumerate members

I would love to see a true 'replies' collection from them someday

on the bright side they do support inReplyTo, which I had not heard anyone mention before

browser.pub/threads.net/@evanp…

in reply to John Spurlock

it is going to sound very fake to say this but this project was at the top of my list for ActivityPub hacks to do. It is so extremely necessary. I am very excited about this work!
in reply to Evan Prodromou

@evan @by_caballero

thanks! send me any url or input you think it should be handling and I'll take a look

also if you see any weird rendering issues in the "visual" view

more tooltips and validations/recommendations are coming

in reply to John Spurlock

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: browser.pub/mastodon.social/@m…

or posts:
browser.pub/mastodon.social/@G…

or fediverse handles:
browser.pub/@Gargron@mastodon.…

or even usernames (defaults to mastodon.social for now):
browser.pub/Gargron

in reply to John Spurlock

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

in reply to John Spurlock

> everything here is powered by ActivityPub, no server-specific APIs

Please don't waver from this! It's so cool.

in reply to Evan Prodromou

@evan hopefully this can help to make sure folks are supporting C2S as much as possible

I would love to get a standards-based oauth to inbox flow working, do you know of any implementations that support it?

was going to check out Mastodon's new oauth thing in 4.3, but I'm not sure they have any additional AP endpoints behind the auth wall

in reply to John Spurlock

onepage.pub do es. However, we need better specs. I'd like us to set up a taskforce for it at the SocialCG. It's very core!
in reply to John Spurlock

For known collection properties (like outbox, followers, featured, etc), it will preview the collection and support paging via a "next" link:

browser.pub/davew

in reply to John Spurlock

what about objects with type Collection or OrderedCollection that aren't well known?
in reply to Evan Prodromou

every property is listed, and clickable, in the json and outline structured views

in the visual view, any unknown properties (if present) are rendered kind of like the outline view, just above the expandable details section

Questa voce è stata modificata (3 settimane fa)
in reply to John Spurlock

Threads posts and profiles are also available, for users that have checked the magic box

Here's a post:
browser.pub/threads.net/@evanp…

in reply to John Spurlock

While Threads does not support the replies collection yet, they do support the inReplyTo pointer, which BrowserPub renders above

browser.pub/threads.net/@evanp…

in reply to John Spurlock

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

BrowserPub also tries to render custom emojis in content and profile headers, these are in the ActivityPub payload after all

even animated ones

browser.pub/bolha.one/users/jo…

in reply to John Spurlock

and of course Flipboard is supported (cc @mike) nothing special, just the same ActivityPub spec implementation

browser.pub/https%3A%2F%2Fflip…

Questa voce è stata modificata (3 settimane fa)
in reply to John Spurlock

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

browser.pub/threads.net/ap/use…

in reply to John Spurlock

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

browser.pub/cosocial.ca/@evan/…

in reply to John Spurlock

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

browser.pub/index@activitypub.…

in reply to John Spurlock

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. browser.pub/mastodon@mastodon.…

in reply to John Spurlock

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

in reply to John Spurlock

browser.pub requests the ability to add new follows to your account...
in reply to John Spurlock

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

in reply to John Spurlock

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.
in reply to John Spurlock

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
in reply to John Spurlock

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

in reply to John Spurlock

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

in reply to John Spurlock

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

in reply to John Spurlock

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

in reply to John Spurlock

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

in reply to John Spurlock

... or by hitting "next" in the visual view

maybe I should add some sort of automatic revealing of the next item on scroll

in reply to John Spurlock

and of course you can't see my personal Pleroma 'inbox' collection here, since you aren't logged in as me

as it should be

if anyone finds any additional endpoints available to read over C2S when authed (on any AP server impl), let me know - I'd be very curious to know what's supported out there

in reply to John Spurlock

one more for today: just got @pixelfed oauth working too

similar to mastodon, you can add an existing pixelfed.social account, and follow any fediverse user directly from browser.pub

and, similar to mastodon, pixelfed does not seem to support any additional ActivityPub over C2S when authed

in reply to 洪 民憙 (Hong Minhee)

@hongminhee most of the app runs in browser JS without a framework, so I guess view-source? : )

there is a validation model underneath that I haven't wired up to the UI yet, and I'd like to make that available via an API as well as visually