ActivityPub Viewer

A small tool to view real-world ActivityPub objects as JSON! Enter a URL or username from Mastodon or a similar service below, and we'll send a request with the right Accept header to the server to view the underlying object.

Open in browser →
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "ostatus": "http://ostatus.org#", "atomUri": "ostatus:atomUri", "inReplyToAtomUri": "ostatus:inReplyToAtomUri", "conversation": "ostatus:conversation", "sensitive": "as:sensitive", "toot": "http://joinmastodon.org/ns#", "votersCount": "toot:votersCount", "blurhash": "toot:blurhash", "focalPoint": { "@container": "@list", "@id": "toot:focalPoint" }, "Hashtag": "as:Hashtag" } ], "id": "https://twipped.social/users/twipped/statuses/113278792592362814", "type": "Note", "summary": null, "inReplyTo": null, "published": "2024-10-09T18:06:41Z", "url": "https://twipped.social/@twipped/113278792592362814", "attributedTo": "https://twipped.social/users/twipped", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://twipped.social/users/twipped/followers" ], "sensitive": false, "atomUri": "https://twipped.social/users/twipped/statuses/113278792592362814", "inReplyToAtomUri": null, "conversation": "tag:twipped.social,2024-10-09:objectId=5595401:objectType=Conversation", "content": "<p>This is what happens when you let your devs use copilot.</p><p>This is supposed to be client-side browser code, but this code does not work in a browser. </p><p>It passed in the test suite, because Jest copies the entire NodeJS global namespace into `window`, but `window.Buffer` is not actually a thing.</p><p>This change also added over 150k of extra code to the bundle, just to hash an object in order to assert a value change.</p><p><a href=\"https://twipped.social/tags/Code\" class=\"mention hashtag\" rel=\"tag\">#<span>Code</span></a> <a href=\"https://twipped.social/tags/Fail\" class=\"mention hashtag\" rel=\"tag\">#<span>Fail</span></a> <a href=\"https://twipped.social/tags/Copilot\" class=\"mention hashtag\" rel=\"tag\">#<span>Copilot</span></a> <a href=\"https://twipped.social/tags/aiRageIntensifies\" class=\"mention hashtag\" rel=\"tag\">#<span>aiRageIntensifies</span></a></p>", "contentMap": { "en": "<p>This is what happens when you let your devs use copilot.</p><p>This is supposed to be client-side browser code, but this code does not work in a browser. </p><p>It passed in the test suite, because Jest copies the entire NodeJS global namespace into `window`, but `window.Buffer` is not actually a thing.</p><p>This change also added over 150k of extra code to the bundle, just to hash an object in order to assert a value change.</p><p><a href=\"https://twipped.social/tags/Code\" class=\"mention hashtag\" rel=\"tag\">#<span>Code</span></a> <a href=\"https://twipped.social/tags/Fail\" class=\"mention hashtag\" rel=\"tag\">#<span>Fail</span></a> <a href=\"https://twipped.social/tags/Copilot\" class=\"mention hashtag\" rel=\"tag\">#<span>Copilot</span></a> <a href=\"https://twipped.social/tags/aiRageIntensifies\" class=\"mention hashtag\" rel=\"tag\">#<span>aiRageIntensifies</span></a></p>" }, "attachment": [ { "type": "Document", "mediaType": "image/png", "url": "https://cdn.masto.host/twippedsocial/media_attachments/files/113/278/729/194/036/098/original/834563d21b985e07.png", "name": "import { Sha256 } from '@aws-crypto/sha256-browser';\n/**\n * Returns a SHA256 hash hex string of the 'data' param\n * @param {string} data\n * @returns {Promise<string>}\n * @internal\n * @ignore\n */\nexport async function sha256Hash(data) {\n const hash = new Sha256();\n hash.update(data);\n const hashedData = await hash.digest();\n return window.Buffer.from(hashedData).toString('hex');\n}", "blurhash": "U02~ZE?vsQacNsRjnjogWsRkRjf+.8%Ms8aJ", "focalPoint": [ 0, 0 ], "width": 1360, "height": 610 } ], "tag": [ { "type": "Hashtag", "href": "https://twipped.social/tags/code", "name": "#code" }, { "type": "Hashtag", "href": "https://twipped.social/tags/fail", "name": "#fail" }, { "type": "Hashtag", "href": "https://twipped.social/tags/copilot", "name": "#copilot" }, { "type": "Hashtag", "href": "https://twipped.social/tags/airageintensifies", "name": "#airageintensifies" } ], "replies": { "id": "https://twipped.social/users/twipped/statuses/113278792592362814/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://twipped.social/users/twipped/statuses/113278792592362814/replies?min_id=113305897526805733&page=true", "partOf": "https://twipped.social/users/twipped/statuses/113278792592362814/replies", "items": [ "https://twipped.social/users/twipped/statuses/113278795125435393", "https://twipped.social/users/twipped/statuses/113305897526805733" ] } }, "likes": { "id": "https://twipped.social/users/twipped/statuses/113278792592362814/likes", "type": "Collection", "totalItems": 185 }, "shares": { "id": "https://twipped.social/users/twipped/statuses/113278792592362814/shares", "type": "Collection", "totalItems": 101 } }