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.
{
"@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
}
}