<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not.]]></title><description><![CDATA[<p>I think if there's one thing I'd say to <a href="https://cosocial.ca/tags/ActivityPub" rel="tag">#<span>ActivityPub</span></a> developers, it's this: it seems like it's going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it's not. You have to keep track of too many variations. Use a JSON-LD library instead. For JavaScript, try activitystrea.ms:</p><p></p><div class="card col-md-9 col-lg-6 position-relative link-preview p-0">



<a href="https://github.com/jasnell/activitystrea.ms" title="GitHub - jasnell/activitystrea.ms: Activity Streams 2.0 for Node.js (this package is not actively maintained, if you'd like to help, let me know)">
<img src="https://opengraph.githubassets.com/4c8346afdc6be629571a80dacc67d82f941266d0ac561c0c6a88a38919eba193/jasnell/activitystrea.ms" class="card-img-top not-responsive" style="max-height:15rem" alt="Link Preview Image" />
</a>



<div class="card-body">
<h5 class="card-title">
<a href="https://github.com/jasnell/activitystrea.ms">
GitHub - jasnell/activitystrea.ms: Activity Streams 2.0 for Node.js (this package is not actively maintained, if you'd like to help, let me know)
</a>
</h5>
<p class="card-text line-clamp-3">Activity Streams 2.0 for Node.js (this package is not actively maintained, if you'd like to help, let me know) - jasnell/activitystrea.ms</p>
</div>
<a href="https://github.com/jasnell/activitystrea.ms" class="card-footer text-body-secondary small d-flex gap-2 align-items-center lh-2">



<img src="https://github.githubassets.com/favicons/favicon.svg" alt="favicon" class="not-responsive overflow-hiddden" style="max-width:21px;max-height:21px" />



<p class="d-inline-block text-truncate mb-0">GitHub <span class="text-secondary">(github.com)</span></p>
</a>
</div><p></p>]]></description><link>https://board.circlewithadot.net/topic/446d1f5a-9831-4b04-abcb-6cb757f3c45a/i-think-if-there-s-one-thing-i-d-say-to-activitypub-developers-it-s-this-it-seems-like-it-s-going-to-be-easier-to-just-parse-activity-streams-2.0-data-as-plain-json-but-it-s-not.</link><generator>RSS for Node</generator><lastBuildDate>Fri, 17 Apr 2026 09:40:22 GMT</lastBuildDate><atom:link href="https://board.circlewithadot.net/topic/446d1f5a-9831-4b04-abcb-6cb757f3c45a.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 01 Apr 2026 23:17:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 22:32:01 GMT]]></title><description><![CDATA[<p dir="auto"><a href="https://activitypub.space/user/evan%40cosocial.ca" rel="nofollow ugc">@evan@cosocial.ca</a> that seems odd, instead of transferring it to you or SWF <img src="https://board.circlewithadot.net/assets/plugins/nodebb-plugin-emoji/emoji/android/1f914.png?v=28325c671da" class="not-responsive emoji emoji-android emoji--thinking_face" style="height:23px;width:auto;vertical-align:middle" title="🤔" alt="🤔" /></p>
<p dir="auto">Did you get access to the npm package? Or perhaps you'll have to use a scoped package name.</p>
]]></description><link>https://board.circlewithadot.net/post/https://activitypub.space/post/1720</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://activitypub.space/post/1720</guid><dc:creator><![CDATA[julian@activitypub.space]]></dc:creator><pubDate>Thu, 02 Apr 2026 22:32:01 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 22:25:36 GMT]]></title><description><![CDATA[<p><span><a href="/user/evan%40cosocial.ca">@<span>evan</span></a></span> James archived the repo today, assumably in response to this question. I'm going to keep working from my personal fork, and I'll use that to push to npm. I think I can update the info in package.json on the topic, too. A change that's been waiting too long.</p><p><span><a href="/user/steve%40social.technoetic.com">@<span>steve</span></a></span> <span><a href="/user/trwnh%40mastodon.social">@<span>trwnh</span></a></span> <span><a href="/user/hongminhee%40hollo.social">@<span>hongminhee</span></a></span> <span><a href="https://fosstodon.org/@jasnell">@<span>jasnell</span></a></span></p>]]></description><link>https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116337458337137589</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116337458337137589</guid><dc:creator><![CDATA[evan@cosocial.ca]]></dc:creator><pubDate>Thu, 02 Apr 2026 22:25:36 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 14:59:43 GMT]]></title><description><![CDATA[<p><span><a href="/user/steve%40social.technoetic.com">@<span>steve</span></a></span> <span><a href="/user/trwnh%40mastodon.social">@<span>trwnh</span></a></span> <span><a href="/user/hongminhee%40hollo.social">@<span>hongminhee</span></a></span> ha! That was the notice that got me to become a maintainer. But I don't have the admin rights to change it!</p><p><span><a href="https://fosstodon.org/@jasnell">@<span>jasnell</span></a></span> can you give admin rights on the activitystrea.ms repo so I can change the message and also push automatically?</p>]]></description><link>https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116335705042185783</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116335705042185783</guid><dc:creator><![CDATA[evan@cosocial.ca]]></dc:creator><pubDate>Thu, 02 Apr 2026 14:59:43 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 14:46:43 GMT]]></title><description><![CDATA[<p><span><a href="/user/julian%40activitypub.space">@<span>julian</span></a></span> <span><a href="/user/trwnh%40mastodon.social">@<span>trwnh</span></a></span> Your point isn't clear to me. Of course, people are free to use unmaintained software (even if I personally prefer to avoid software that's been deprecated and not maintained for years). However, in this case, the activitystrea.ms software *is* maintained although it describes itself otherwise.</p>]]></description><link>https://board.circlewithadot.net/post/https://social.technoetic.com/users/steve/statuses/116335653917759429</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://social.technoetic.com/users/steve/statuses/116335653917759429</guid><dc:creator><![CDATA[steve@social.technoetic.com]]></dc:creator><pubDate>Thu, 02 Apr 2026 14:46:43 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 14:37:16 GMT]]></title><description><![CDATA[<p dir="auto"><a href="https://activitypub.space/user/steve%40social.technoetic.com" rel="nofollow ugc">@steve@social.technoetic.com</a> <a href="https://activitypub.space/user/trwnh%40mastodon.social" rel="nofollow ugc">@trwnh@mastodon.social</a> we shouldn't stop using software just because they're no longer maintained.</p>
<p dir="auto">I believe request is no longer maintained, in favour of native node fetch, but good god would you look at those downloads.</p>
<p dir="auto"><img src="https://activitypub.space/assets/uploads/files/1775140634983-1000013077.png" alt="1000013077.png" class=" img-fluid img-markdown" /></p>
]]></description><link>https://board.circlewithadot.net/post/https://activitypub.space/post/1707</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://activitypub.space/post/1707</guid><dc:creator><![CDATA[julian@activitypub.space]]></dc:creator><pubDate>Thu, 02 Apr 2026 14:37:16 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 13:26:40 GMT]]></title><description><![CDATA[<p><span><a href="/user/evan%40cosocial.ca">@<span>evan</span></a></span> <span><a href="/user/trwnh%40mastodon.social">@<span>trwnh</span></a></span> <span><a href="/user/hongminhee%40hollo.social">@<span>hongminhee</span></a></span> I think he was referring to the GitHub project description: "Activity Streams 2.0 for Node.js (this package is not actively maintained..."</p>]]></description><link>https://board.circlewithadot.net/post/https://social.technoetic.com/users/steve/statuses/116335339159549073</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://social.technoetic.com/users/steve/statuses/116335339159549073</guid><dc:creator><![CDATA[steve@social.technoetic.com]]></dc:creator><pubDate>Thu, 02 Apr 2026 13:26:40 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 13:22:03 GMT]]></title><description><![CDATA[<p><span><a href="/user/hongminhee%40hollo.social">@<span>hongminhee</span></a></span> Thanks for doing it!</p>]]></description><link>https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116335321037494532</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116335321037494532</guid><dc:creator><![CDATA[evan@cosocial.ca]]></dc:creator><pubDate>Thu, 02 Apr 2026 13:22:03 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 13:01:23 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/evan%40cosocial.ca" aria-label="Profile: evan@cosocial.ca">@<bdi>evan@cosocial.ca</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/user/trwnh%40mastodon.social" aria-label="Profile: trwnh@mastodon.social">@<bdi>trwnh@mastodon.social</bdi></a> I'm maintaining the <a href="https://fedify.dev/manual/vocab" rel="nofollow ugc"><code>@fedify/vocab</code></a> package which depends on the <a href="https://github.com/digitalbazaar/jsonld.js" rel="nofollow ugc"><code>jsonld</code></a> package from Digital Bazaar. It's written in 100% TypeScript, and has worked well on production services!</p>
]]></description><link>https://board.circlewithadot.net/post/https://hollo.social/@hongminhee/019d4e48-b607-7523-a2a0-f1e0cf6b4670</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://hollo.social/@hongminhee/019d4e48-b607-7523-a2a0-f1e0cf6b4670</guid><dc:creator><![CDATA[hongminhee@hollo.social]]></dc:creator><pubDate>Thu, 02 Apr 2026 13:01:23 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 12:51:06 GMT]]></title><description><![CDATA[<p><span><a href="/user/trwnh%40mastodon.social">@<span>trwnh</span></a></span> "more actively maintained"?</p><p>The code is long-term but it was built by one author of AS2 and maintained by the other. It works well, and I use it in production systems all the time.</p><p>I'm pretty sure <span><a href="/user/hongminhee%40hollo.social">@<span>hongminhee</span></a></span> has made a similar package, although I'm not sure it's distributed independently.</p>]]></description><link>https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116335199274721737</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://cosocial.ca/users/evan/statuses/116335199274721737</guid><dc:creator><![CDATA[evan@cosocial.ca]]></dc:creator><pubDate>Thu, 02 Apr 2026 12:51:06 GMT</pubDate></item><item><title><![CDATA[Reply to I think if there&#x27;s one thing I&#x27;d say to #ActivityPub developers, it&#x27;s this: it seems like it&#x27;s going to be easier to just parse Activity Streams 2.0 data as plain JSON, but it&#x27;s not. on Thu, 02 Apr 2026 07:02:35 GMT]]></title><description><![CDATA[<p><span><a href="/user/evan%40cosocial.ca">@<span>evan</span></a></span> i would add that there are several other more actively maintained options, at least: <a href="https://json-ld.org/#developers" rel="nofollow noopener"><span>https://</span><span>json-ld.org/#developers</span><span></span></a></p><p>in the most basic case, expanding the document should make it unambiguous:</p><p>- all keys are normalized to full identifiers with exactly 1 possible representation instead of infinitely many<br />- all values are normalized to JSON <br />arrays of JSON objects<br />- those JSON objects explicitly say whether they have an id (Reference) or a value (Literal)</p>]]></description><link>https://board.circlewithadot.net/post/https://mastodon.social/users/trwnh/statuses/116333828835838324</link><guid isPermaLink="true">https://board.circlewithadot.net/post/https://mastodon.social/users/trwnh/statuses/116333828835838324</guid><dc:creator><![CDATA[trwnh@mastodon.social]]></dc:creator><pubDate>Thu, 02 Apr 2026 07:02:35 GMT</pubDate></item></channel></rss>