<?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'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.]]></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><a href="https://github.com/jasnell/activitystrea.ms" rel="nofollow noopener"><span>https://</span><span>github.com/jasnell/activitystr</span><span>ea.ms</span></a></p>]]></description><link>https://bb.devnull.land/topic/6775de5a-7c59-4308-b955-bbe565d85766/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>Sat, 29 Aug 2026 06:30:22 GMT</lastBuildDate><atom:link href="https://bb.devnull.land/topic/6775de5a-7c59-4308-b955-bbe565d85766.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'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. on Fri, 03 Apr 2026 01:17:59 GMT]]></title><description><![CDATA[<p><span><a href="/user/julian%40activitypub.space">@<span>julian</span></a></span> anyways, moved and shipped! </p><p><a href="https://www.npmjs.com/package/activitystrea.ms" rel="nofollow noopener"><span>https://www.</span><span>npmjs.com/package/activitystre</span><span>a.ms</span></a></p>]]></description><link>https://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116338136139093712</link><guid isPermaLink="true">https://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116338136139093712</guid><dc:creator><![CDATA[evan@cosocial.ca]]></dc:creator><pubDate>Fri, 03 Apr 2026 01:17:59 GMT</pubDate></item><item><title><![CDATA[Reply to 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. on Thu, 02 Apr 2026 23:06:04 GMT]]></title><description><![CDATA[<p><span><a href="/user/julian%40activitypub.space">@<span>julian</span></a></span> I already have access to the package. I'd been squatting in his GitHub namespace for too long anyway.</p>]]></description><link>https://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116337617420559136</link><guid isPermaLink="true">https://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116337617420559136</guid><dc:creator><![CDATA[evan@cosocial.ca]]></dc:creator><pubDate>Thu, 02 Apr 2026 23:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to 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. 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://bb.devnull.land/assets/plugins/nodebb-plugin-emoji/emoji/android/1f914.png?v=579f49373ac" 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://bb.devnull.land/post/https://activitypub.space/post/1720</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116337458337137589</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116335705042185783</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://social.technoetic.com/users/steve/statuses/116335653917759429</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://activitypub.space/post/1707</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://social.technoetic.com/users/steve/statuses/116335339159549073</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116335321037494532</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://hollo.social/@hongminhee/019d4e48-b607-7523-a2a0-f1e0cf6b4670</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://cosocial.ca/users/evan/statuses/116335199274721737</link><guid isPermaLink="true">https://bb.devnull.land/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'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. 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://bb.devnull.land/post/https://mastodon.social/users/trwnh/statuses/116333828835838324</link><guid isPermaLink="true">https://bb.devnull.land/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>