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://fosstodon.org/users/drsensor/collections/featured", "type": "OrderedCollection", "totalItems": 2, "orderedItems": [ { "id": "https://fosstodon.org/users/drsensor/statuses/109616548814554489", "type": "Note", "summary": null, "inReplyTo": null, "published": "2023-01-01T23:29:56Z", "url": "https://fosstodon.org/@drsensor/109616548814554489", "attributedTo": "https://fosstodon.org/users/drsensor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://fosstodon.org/users/drsensor/followers" ], "sensitive": false, "atomUri": "https://fosstodon.org/users/drsensor/statuses/109616548814554489", "inReplyToAtomUri": null, "conversation": "tag:fosstodon.org,2023-01-01:objectId=75569363:objectType=Conversation", "content": "<p>Hi, how&#39;s your new year? Hopefully it&#39;s good.</p><p>From 1 January 2023, I plan to <a href=\"https://fosstodon.org/tags/buildInPublic\" class=\"mention hashtag\" rel=\"tag\">#<span>buildInPublic</span></a> my experimental web framework. My aim is to have a framework that is suitable for real-time MPA while load instantly without any setup or compilation. I will use <a href=\"https://fosstodon.org/tags/nusa\" class=\"mention hashtag\" rel=\"tag\">#<span>nusa</span></a> hashtag to post my progress 😊</p><p>site: <a href=\"https://nusa.pages.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">nusa.pages.dev</span><span class=\"invisible\"></span></a> (still blank page)<br />repo: <a href=\"https://github.com/DrSensor/nusa/releases\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/DrSensor/nusa/relea</span><span class=\"invisible\">ses</span></a></p><p><a href=\"https://fosstodon.org/tags/projects\" class=\"mention hashtag\" rel=\"tag\">#<span>projects</span></a> <a href=\"https://fosstodon.org/tags/webdev\" class=\"mention hashtag\" rel=\"tag\">#<span>webdev</span></a> <a href=\"https://fosstodon.org/tags/javascript\" class=\"mention hashtag\" rel=\"tag\">#<span>javascript</span></a> <a href=\"https://fosstodon.org/tags/html\" class=\"mention hashtag\" rel=\"tag\">#<span>html</span></a></p>", "contentMap": { "en": "<p>Hi, how&#39;s your new year? Hopefully it&#39;s good.</p><p>From 1 January 2023, I plan to <a href=\"https://fosstodon.org/tags/buildInPublic\" class=\"mention hashtag\" rel=\"tag\">#<span>buildInPublic</span></a> my experimental web framework. My aim is to have a framework that is suitable for real-time MPA while load instantly without any setup or compilation. I will use <a href=\"https://fosstodon.org/tags/nusa\" class=\"mention hashtag\" rel=\"tag\">#<span>nusa</span></a> hashtag to post my progress 😊</p><p>site: <a href=\"https://nusa.pages.dev\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">nusa.pages.dev</span><span class=\"invisible\"></span></a> (still blank page)<br />repo: <a href=\"https://github.com/DrSensor/nusa/releases\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"ellipsis\">github.com/DrSensor/nusa/relea</span><span class=\"invisible\">ses</span></a></p><p><a href=\"https://fosstodon.org/tags/projects\" class=\"mention hashtag\" rel=\"tag\">#<span>projects</span></a> <a href=\"https://fosstodon.org/tags/webdev\" class=\"mention hashtag\" rel=\"tag\">#<span>webdev</span></a> <a href=\"https://fosstodon.org/tags/javascript\" class=\"mention hashtag\" rel=\"tag\">#<span>javascript</span></a> <a href=\"https://fosstodon.org/tags/html\" class=\"mention hashtag\" rel=\"tag\">#<span>html</span></a></p>" }, "updated": "2023-01-02T01:18:44Z", "attachment": [ { "type": "Document", "mediaType": "image/png", "url": "https://cdn.fosstodon.org/media_attachments/files/109/616/712/118/032/051/original/2d3934a8987efee2.png", "name": "file index.html\n```html\n<script src=nusa/render-scope async></script>\n\n<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>\n\n<render-scope>\n <link href=counter.js>\n <!-- only fetch/run counter.js when user scroll until this scope -->\n\n <button :: on:click=increment text:= count>0</button>\n\n <input inputmode=\"numeric\" type=number :: value:=count on:change=set>\n</render-scope>\n\n<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>\n\n<render-scope>\n <link href=count-every-1ls.js>\n <!-- only fetch/run count-every-1s.js when in view -->\n <!-- previous <render-scope> also get updated-every-1.js -->\n\n automatically increment every 1s until it can be divided by 5\n <button :: on:click=increment text:= count>0</button>\n <input inputmode=\"numeric\" type=number :: value:=count on:change=set>\n when it dividable by 5, click to continue to increment on every 1s\n</render-scope>\n```", "blurhash": "U78|YjWG-ZV{W0aybIay-tWCj]bHxdbHWVa|", "focalPoint": [ 0, 0 ], "width": 1454, "height": 1334 }, { "type": "Document", "mediaType": "image/png", "url": "https://cdn.fosstodon.org/media_attachments/files/109/616/712/518/194/872/original/ed2113d6ae9b6756.png", "name": "file counter.js\n```js\nimport { current } from \"nusa/std\" \n\nexport default class { // counter.js \n accessor count = 0\n\n increment() { this.count++ }\n\n set() {\n this.count = +current.event.target.value\n }\n}\n```", "blurhash": "UC9GnFR:-sR,xejuWXf6?1R*oMj[tUWVjZj]", "focalPoint": [ 0, 0 ], "width": 1040, "height": 750 }, { "type": "Document", "mediaType": "image/png", "url": "https://cdn.fosstodon.org/media_attachments/files/109/616/712/877/432/586/original/64687d172855e40a.png", "name": "file count-every-1s.js\n```js\nimport Counter from \"./counter.js\"\nimport { iterate } from \"nusa/std\"\n\nsetInterval(() => { // count-every-1s.js\n iterate.for(Counter, (index, { count }) => {\n if (!(count[index] % 5)) { iterate.skip(); return }\n count[index]++\n })\n}, 1e3)\n\nexport { default } from \"./counter.js\"\n```", "blurhash": "UB9ZypS6-ZNHxxbHWCja-aRkogj]xeWEj[fk", "focalPoint": [ 0, 0 ], "width": 1146, "height": 750 } ], "tag": [ { "type": "Hashtag", "href": "https://fosstodon.org/tags/buildinpublic", "name": "#buildinpublic" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/nusa", "name": "#nusa" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/projects", "name": "#projects" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/webdev", "name": "#webdev" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/javascript", "name": "#javascript" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/html", "name": "#html" } ], "replies": { "id": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/replies?only_other_accounts=true&page=true", "partOf": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/replies", "items": [] } }, "likes": { "id": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/likes", "type": "Collection", "totalItems": 2 }, "shares": { "id": "https://fosstodon.org/users/drsensor/statuses/109616548814554489/shares", "type": "Collection", "totalItems": 0 } }, { "id": "https://fosstodon.org/users/drsensor/statuses/109345043598527142", "type": "Note", "summary": null, "inReplyTo": null, "published": "2022-11-15T00:42:35Z", "url": "https://fosstodon.org/@drsensor/109345043598527142", "attributedTo": "https://fosstodon.org/users/drsensor", "to": [ "https://www.w3.org/ns/activitystreams#Public" ], "cc": [ "https://fosstodon.org/users/drsensor/followers" ], "sensitive": false, "atomUri": "https://fosstodon.org/users/drsensor/statuses/109345043598527142", "inReplyToAtomUri": null, "conversation": "tag:fosstodon.org,2022-11-15:objectId=59040935:objectType=Conversation", "content": "<p>Celebrating my past experimental <a href=\"https://fosstodon.org/tags/projects\" class=\"mention hashtag\" rel=\"tag\">#<span>projects</span></a> about state machine <a href=\"https://fosstodon.org/tags/DSL\" class=\"mention hashtag\" rel=\"tag\">#<span>DSL</span></a> that can generate both code and diagram. But alas, I don&#39;t have any single project in need that DSL so continuing it is kinda hard. It&#39;s written in <a href=\"https://fosstodon.org/tags/Rust\" class=\"mention hashtag\" rel=\"tag\">#<span>Rust</span></a> but I have 2 other prototype written in <a href=\"https://fosstodon.org/tags/Nim\" class=\"mention hashtag\" rel=\"tag\">#<span>Nim</span></a> (require compilation) and <a href=\"https://fosstodon.org/tags/Javascript\" class=\"mention hashtag\" rel=\"tag\">#<span>Javascript</span></a> (pure runtime, no compilation).</p><p>If anyone want to collaborate or continue the effort, feel free to ask me. I have some stuff in mind about it.<br /><a href=\"https://github.com/DrSensor/scdlang\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">github.com/DrSensor/scdlang</span><span class=\"invisible\"></span></a></p>", "contentMap": { "en": "<p>Celebrating my past experimental <a href=\"https://fosstodon.org/tags/projects\" class=\"mention hashtag\" rel=\"tag\">#<span>projects</span></a> about state machine <a href=\"https://fosstodon.org/tags/DSL\" class=\"mention hashtag\" rel=\"tag\">#<span>DSL</span></a> that can generate both code and diagram. But alas, I don&#39;t have any single project in need that DSL so continuing it is kinda hard. It&#39;s written in <a href=\"https://fosstodon.org/tags/Rust\" class=\"mention hashtag\" rel=\"tag\">#<span>Rust</span></a> but I have 2 other prototype written in <a href=\"https://fosstodon.org/tags/Nim\" class=\"mention hashtag\" rel=\"tag\">#<span>Nim</span></a> (require compilation) and <a href=\"https://fosstodon.org/tags/Javascript\" class=\"mention hashtag\" rel=\"tag\">#<span>Javascript</span></a> (pure runtime, no compilation).</p><p>If anyone want to collaborate or continue the effort, feel free to ask me. I have some stuff in mind about it.<br /><a href=\"https://github.com/DrSensor/scdlang\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" translate=\"no\"><span class=\"invisible\">https://</span><span class=\"\">github.com/DrSensor/scdlang</span><span class=\"invisible\"></span></a></p>" }, "attachment": [ { "type": "Document", "mediaType": "video/mp4", "url": "https://cdn.fosstodon.org/media_attachments/files/109/344/997/307/759/384/original/82119339a29bd29d.mp4", "name": null, "blurhash": "U00SvDoJofV[x[s:j[WCt7t7WBWBt6t7aeWB", "width": 1280, "height": 800 } ], "tag": [ { "type": "Hashtag", "href": "https://fosstodon.org/tags/projects", "name": "#projects" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/dsl", "name": "#dsl" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/rust", "name": "#rust" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/nim", "name": "#nim" }, { "type": "Hashtag", "href": "https://fosstodon.org/tags/javascript", "name": "#javascript" } ], "replies": { "id": "https://fosstodon.org/users/drsensor/statuses/109345043598527142/replies", "type": "Collection", "first": { "type": "CollectionPage", "next": "https://fosstodon.org/users/drsensor/statuses/109345043598527142/replies?only_other_accounts=true&page=true", "partOf": "https://fosstodon.org/users/drsensor/statuses/109345043598527142/replies", "items": [] } }, "likes": { "id": "https://fosstodon.org/users/drsensor/statuses/109345043598527142/likes", "type": "Collection", "totalItems": 2 }, "shares": { "id": "https://fosstodon.org/users/drsensor/statuses/109345043598527142/shares", "type": "Collection", "totalItems": 0 } } ] }