shakedown.social is one of the many independent Mastodon servers you can use to participate in the fediverse.
A community for live music fans with roots in the jam scene. Shakedown Social is run by a team of volunteers (led by @clifff and @sethadam1) and funded by donations.

Administered by:

Server stats:

255
active users

#fedidev

4 posts4 participants1 post today
Fedify: an ActivityPub server framework<p>We'd like to recognize the valuable contributions from two developers who participated in Korea's <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/OSSCA" target="_blank">#<span>OSSCA</span></a> (Open Source Contribution Academy) program. Both contributors identified important gaps in <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Fedify" target="_blank">#<span>Fedify</span></a>'s functionality and documentation, providing thoughtful solutions that benefit the broader <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/ActivityPub" target="_blank">#<span>ActivityPub</span></a> ecosystem.</p><p><a translate="no" class="h-card u-url mention" href="https://yuri.garden/@gaebalgom" rel="nofollow noopener" target="_blank">@<span>gaebalgom</span></a> contributed <a href="https://github.com/fedify-dev/fedify/pull/365" rel="nofollow noopener" target="_blank">PR #365</a>, addressing <a href="https://github.com/fedify-dev/fedify/issues/353" rel="nofollow noopener" target="_blank">issue #353</a> regarding NodeInfo parser compatibility, originally reported by <a translate="no" class="h-card u-url mention" href="https://macaw.social/@andypiper" rel="nofollow noopener" target="_blank">@<span>andypiper</span></a>. The issue arose when Fedify incorrectly rejected <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/NodeInfo" target="_blank">#<span>NodeInfo</span></a> documents from snac instances due to overly strict version string parsing that required semantic versioning compliance. Their solution improves the fallback behavior in the <code>parseSoftware()</code> function to handle non-SemVer version strings by parsing dot-separated numbers and defaulting to zero for missing components. The implementation includes thorough test coverage for various edge cases, including single numbers (<code>3</code>), two-part versions (<code>2.81</code>), and malformed version strings. This fix provides immediate compatibility improvements across the fediverse while maintaining backward compatibility, and will be included in Fedify 1.9. The contribution serves as an interim solution, with a more comprehensive fix planned for Fedify 2.0 (<a href="https://github.com/fedify-dev/fedify/issues/366" rel="nofollow noopener" target="_blank">issue #366</a>), where the NodeInfo <code>software.version</code> field will be changed from the <code>SemVer</code> type to a plain <code>string</code> to fully comply with the NodeInfo specification.</p><p><a translate="no" class="h-card u-url mention" href="https://hackers.pub/@z9mb1" rel="nofollow noopener" target="_blank">@<span>z9mb1</span></a> contributed <a href="https://github.com/fedify-dev/fedify/pull/364" rel="nofollow noopener" target="_blank">PR #364</a>, resolving <a href="https://github.com/fedify-dev/fedify/issues/337" rel="nofollow noopener" target="_blank">issue #337</a> by adding practical examples for Fedify's custom collection dispatchers feature. Custom collections were introduced in Fedify 1.8 but lacked clear documentation for developers seeking to implement them. Their contribution provides a comprehensive example demonstrating how to set up custom collections for tagged posts, including proper routing patterns, pagination handling, and counter functionality. The example includes mock data structures, shows how to configure collection dispatchers with URL patterns like <code>/users/{userId}/tags/{tag}</code>, and demonstrates the complete request/response cycle using <code>federation.fetch()</code>. This work provides developers with a clear, runnable reference that reduces the complexity of implementing custom collections in ActivityPub applications.</p><p>We appreciate these meaningful contributions that help make Fedify more accessible and robust for the entire ActivityPub community.</p><p><a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/opensource" target="_blank">#<span>opensource</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fedidev" target="_blank">#<span>fedidev</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fediverse" target="_blank">#<span>fediverse</span></a></p>
Jeff Sikes<p>Feditext, one of my favorite, consistently solid fediverse apps, (love it for GtS) is looking for iOS devs to swat at a bug or two. </p><p><a href="https://mastodon.social/tags/FediApps" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediApps</span></a> <a href="https://mastodon.social/tags/FediDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediDev</span></a> <a href="https://mastodon.social/tags/iosdev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>iosdev</span></a> <a href="https://mastodon.social/@Feditext/114990933150568200" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">mastodon.social/@Feditext/1149</span><span class="invisible">90933150568200</span></a></p>
BotKit by Fedify :botkit:<p>🔒 <strong>Security Update for BotKit Users</strong></p><p>We've released <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/security" target="_blank">#<span>security</span></a> patch versions <a href="https://github.com/fedify-dev/botkit/releases/tag/0.1.2" rel="nofollow noopener" target="_blank">BotKit 0.1.2</a> and <a href="https://github.com/fedify-dev/botkit/releases/tag/0.2.2" rel="nofollow noopener" target="_blank">0.2.2</a> to address <a href="https://github.com/fedify-dev/fedify/security/advisories/GHSA-6jcc-xgcr-q3h4" rel="nofollow noopener" target="_blank">CVE-2025-54888</a>, a security <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/vulnerability" target="_blank">#<span>vulnerability</span></a> discovered in <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Fedify" target="_blank">#<span>Fedify</span></a>. These updates incorporate the latest patched version of Fedify to ensure your bots remain secure.</p><p>We strongly recommend all <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/BotKit" target="_blank">#<span>BotKit</span></a> users update to the latest patch version immediately. Thank you for keeping the <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fediverse" target="_blank">#<span>fediverse</span></a> safe! 🛡️</p><p><a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fedidev" target="_blank">#<span>fedidev</span></a></p>
Fedify: an ActivityPub server framework<p>All <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Fedify" target="_blank">#<span>Fedify</span></a> users must immediately update to the latest patched versions. A <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/critical" target="_blank">#<span>critical</span></a> authentication bypass <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/vulnerability" target="_blank">#<span>vulnerability</span></a> (<a href="https://github.com/fedify-dev/fedify/security/advisories/GHSA-6jcc-xgcr-q3h4" rel="nofollow noopener" target="_blank">CVE-2025-54888</a>) has been discovered in Fedify that allows attackers to impersonate any <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/ActivityPub" target="_blank">#<span>ActivityPub</span></a> actor by sending forged activities signed with their own keys.</p><p>This vulnerability affects all Fedify instances and enables complete actor impersonation across the federation network. Attackers can send fake posts and messages as any user, create or remove follows as any user, boost and share content as any user, and completely compromise the federation trust model. The vulnerability affects all Fedify instances but does not propagate to other ActivityPub implementations like Mastodon, which properly validate authentication before processing activities.</p><p>The following versions contain the <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/security" target="_blank">#<span>security</span></a> fix: <a href="https://github.com/fedify-dev/fedify/releases/tag/1.3.20" rel="nofollow noopener" target="_blank">1.3.20</a>, <a href="https://github.com/fedify-dev/fedify/releases/tag/1.4.13" rel="nofollow noopener" target="_blank">1.4.13</a>, <a href="https://github.com/fedify-dev/fedify/releases/tag/1.5.5" rel="nofollow noopener" target="_blank">1.5.5</a>, <a href="https://github.com/fedify-dev/fedify/releases/tag/1.6.8" rel="nofollow noopener" target="_blank">1.6.8</a>, <a href="https://github.com/fedify-dev/fedify/releases/tag/1.7.9" rel="nofollow noopener" target="_blank">1.7.9</a>, and <a href="https://github.com/fedify-dev/fedify/releases/tag/1.8.5" rel="nofollow noopener" target="_blank">1.8.5</a>. Users should update immediately using their package manager with commands such as <code>npm update @fedify/fedify</code>, <code>yarn upgrade @fedify/fedify</code>, <code>pnpm update @fedify/fedify</code>, <code>bun update @fedify/fedify</code>, or <code>deno update @fedify/fedify</code>.</p><p>After updating, redeploy your application immediately and monitor recent activities for any suspicious content. Please also inform other Fedify operators about this critical update to ensure the security of the entire federation network.</p><p>The safety and security of our community depends on immediate action. Please update now and feel free to leave comments below if you have any questions.</p><p><a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fedidev" target="_blank">#<span>fedidev</span></a></p>
Fedify: an ActivityPub server framework<p>We're thrilled to announce <a href="https://github.com/fedify-dev/fedify/releases/tag/1.8.1" rel="nofollow noopener" target="_blank">Fedify 1.8.1</a>, a mega release made possible through the incredible efforts of contributors from South Korea's <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/OSSCA" target="_blank">#<span>OSSCA</span></a> (Open Source Contribution Academy). This release marks a significant milestone in <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Fedify" target="_blank">#<span>Fedify</span></a>'s development, bringing major architectural changes, new packages, and numerous enhancements across the board.</p> <blockquote> <p><strong>Note</strong>: Version 1.8.0 was skipped due to a versioning error.</p> </blockquote> <p><strong>🎉 Major Milestone: Monorepo Architecture</strong></p><p>Fedify has been restructured as a <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/monorepo" target="_blank">#<span>monorepo</span></a>, consolidating all packages into a single repository with unified versioning. This change streamlines development and ensures all packages are released together with consistent version numbers.</p><p><strong>Consolidated Packages</strong></p><p>All existing Fedify packages now live under one roof:</p><ul> <li><strong>@fedify/fedify</strong> — Main library</li><li><strong>@fedify/cli</strong> — CLI toolchain</li><li><strong>@fedify/amqp</strong> — AMQP/RabbitMQ driver</li><li><strong>@fedify/express</strong> — Express integration</li><li><strong>@fedify/h3</strong> — h3 framework integration</li><li><strong>@fedify/postgres</strong> — PostgreSQL drivers</li><li><strong>@fedify/redis</strong> — Redis drivers</li> </ul><p><strong>🆕 New Packages</strong></p><p>This release introduces four new packages to the Fedify ecosystem:</p><ul> <li><strong>@fedify/elysia</strong> — <a href="https://elysiajs.com/" rel="nofollow noopener" target="_blank">Elysia</a> integration for Bun-powered applications</li><li><strong>@fedify/nestjs</strong> — <a href="https://nestjs.com/" rel="nofollow noopener" target="_blank">NestJS</a> integration for enterprise Node.js apps</li><li><strong>@fedify/sqlite</strong> — SQLite driver compatible with Bun, Deno, and Node.js</li><li><strong>@fedify/testing</strong> — Testing utilities with mock <code>Federation</code> and <code>Context</code> classes</li> </ul><p><strong>@fedify/fedify</strong></p><p><strong>Custom Collection Dispatchers</strong></p><p>A powerful new feature that allows you to create <a href="https://fedify.dev/manual/collections#custom-collections" rel="nofollow noopener" target="_blank">custom collections</a> beyond the standard ActivityPub collections. This enables implementation of domain-specific collections while maintaining federation compatibility.</p><p><strong>Contributors</strong>: ChanHaeng Lee [<a href="https://github.com/fedify-dev/fedify/issues/310" rel="nofollow noopener" target="_blank">#310</a>, <a href="https://github.com/fedify-dev/fedify/pull/332" rel="nofollow noopener" target="_blank">#332</a>]</p><ul> <li>Added comprehensive types and interfaces for custom collection handling</li><li>New methods on <code>Federatable</code> interface: <code>setCollectionDispatcher()</code> and <code>setOrderedCollectionDispatcher()</code></li><li>Added <code>getCollectionUri()</code> method to the <code>Context</code> interface</li><li>Full support for paginated custom collections</li> </ul><p><strong>Compare-and-Swap (CAS) Support for KV Stores</strong></p><p>Key–value stores now optionally support CAS operations for atomic updates, enabling optimistic locking and preventing lost updates in concurrent environments.</p><ul> <li>Added optional <code>KvStore.cas()</code> method</li><li>Implemented in <code>MemoryKvStore</code> and <code>DenoKvStore</code></li><li>Useful for implementing distributed locks and counters</li> </ul><p><strong>Fediverse Handle Utilities</strong></p><p>New utility functions make working with <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fediverse" target="_blank">#<span>fediverse</span></a> handles more convenient.</p><p><strong>Contributors</strong>: ChanHaeng Lee [<a href="https://github.com/fedify-dev/fedify/pull/278" rel="nofollow noopener" target="_blank">#278</a>]</p><ul> <li><code>parseFediverseHandle()</code> — Parse handles into components</li><li><code>isFediverseHandle()</code> — Validate handle format</li><li><code>toAcctUrl()</code> — Convert handles to URLs</li><li><code>FediverseHandle</code> interface for type safety</li> </ul><p><strong>Enhanced HTTP Request APIs</strong></p><p><strong>Contributors</strong>: Lee ByeongJun [<a href="https://github.com/fedify-dev/fedify/issues/248" rel="nofollow noopener" target="_blank">#248</a>, <a href="https://github.com/fedify-dev/fedify/pull/281" rel="nofollow noopener" target="_blank">#281</a>], Hyunchae Kim [<a href="https://github.com/fedify-dev/fedify/issues/51" rel="nofollow noopener" target="_blank">#51</a>, <a href="https://github.com/fedify-dev/fedify/pull/315" rel="nofollow noopener" target="_blank">#315</a>]</p><ul> <li>Added <code>LookupWebFingerOptions.maxRedirection</code> option for controlling redirect behavior</li><li>APIs now support <code>AbortSignal</code> for request cancellation</li><li>New <code>DocumentLoaderOptions</code> interface</li><li>Added <code>signal</code> options to <code>LookupObjectOptions</code>, <code>LookupWebFingerOptions</code>, and <code>DoubleKnockOptions</code></li> </ul><p><strong>@fedify/cli</strong></p><p><strong>New Commands and Enhancements</strong></p><p>The CLI has received significant improvements thanks to our OSSCA contributors:</p><p><strong><a href="https://fedify.dev/cli#fedify-webfinger-looking-up-a-webfinger-resource" rel="nofollow noopener" target="_blank"><code>fedify webfinger</code> Command</a></strong></p><p><strong>Contributors</strong>: ChanHaeng Lee [<a href="https://github.com/fedify-dev/fedify/issues/260" rel="nofollow noopener" target="_blank">#260</a>, <a href="https://github.com/fedify-dev/fedify/pull/278" rel="nofollow noopener" target="_blank">#278</a>], KeunHyeong Park [<a href="https://github.com/fedify-dev/fedify/issues/311" rel="nofollow noopener" target="_blank">#311</a>, <a href="https://github.com/fedify-dev/fedify/pull/328" rel="nofollow noopener" target="_blank">#328</a>]</p><p>Look up WebFinger information for any fediverse resource:</p><ul> <li>Supports handles (<code>@user@server</code>) and URLs</li><li><code>--user-agent</code> option for custom User-Agent headers</li><li><code>--allow-private-address</code> for local testing</li><li><code>--max-redirection</code> to control redirect following</li> </ul><p><strong><code>fedify nodeinfo</code> Command</strong></p><p><strong>Contributors</strong>: Hyeonseo Kim [<a href="https://github.com/fedify-dev/fedify/issues/267" rel="nofollow noopener" target="_blank">#267</a>, <a href="https://github.com/fedify-dev/fedify/pull/331" rel="nofollow noopener" target="_blank">#331</a>, <a href="https://github.com/fedify-dev/fedify/issues/168" rel="nofollow noopener" target="_blank">#168</a>, <a href="https://github.com/fedify-dev/fedify/pull/282" rel="nofollow noopener" target="_blank">#282</a>, <a href="https://github.com/fedify-dev/fedify/issues/304" rel="nofollow noopener" target="_blank">#304</a>]</p><p>Replaces the deprecated <code>fedify node</code> command with improved terminal rendering.</p><p><strong>Enhanced <code>fedify lookup</code> Command</strong></p><p><strong>Contributors</strong>: Jiwon Kwon [<a href="https://github.com/fedify-dev/fedify/issues/169" rel="nofollow noopener" target="_blank">#169</a>, <a href="https://github.com/fedify-dev/fedify/pull/348" rel="nofollow noopener" target="_blank">#348</a>, <a href="https://github.com/fedify-dev/fedify/issues/261" rel="nofollow noopener" target="_blank">#261</a>, <a href="https://github.com/fedify-dev/fedify/pull/321" rel="nofollow noopener" target="_blank">#321</a>]</p><ul> <li>Terminal-specific image display for Kitty, WezTerm, Konsole, Warp, Wayst, st, and iTerm</li><li><code>-o</code>/<code>--output</code> option to save results to files</li> </ul><p><strong>Improved <code>fedify inbox</code> Command</strong></p><p><strong>Contributors</strong>: Hasang Cho [<a href="https://github.com/fedify-dev/fedify/issues/262" rel="nofollow noopener" target="_blank">#262</a>, <a href="https://github.com/fedify-dev/fedify/pull/285" rel="nofollow noopener" target="_blank">#285</a>], Jang Hanarae [<a href="https://github.com/fedify-dev/fedify/issues/191" rel="nofollow noopener" target="_blank">#191</a>, <a href="https://github.com/fedify-dev/fedify/pull/342" rel="nofollow noopener" target="_blank">#342</a>]</p><ul> <li><code>--actor-name</code> and <code>--actor-summary</code> options for customizing temporary actors</li><li>Now displays object types contained in activities</li> </ul><p><strong><code>fedify init --dry-run</code></strong></p><p><strong>Contributors</strong>: Lee ByeongJun [<a href="https://github.com/fedify-dev/fedify/issues/263" rel="nofollow noopener" target="_blank">#263</a>, <a href="https://github.com/fedify-dev/fedify/pull/298" rel="nofollow noopener" target="_blank">#298</a>]</p><p>Preview project initialization without creating files.</p><p><strong>Better Terminal Support</strong></p><p><strong>Contributors</strong>: Cho Hasang [<a href="https://github.com/fedify-dev/fedify/issues/257" rel="nofollow noopener" target="_blank">#257</a>, <a href="https://github.com/fedify-dev/fedify/pull/341" rel="nofollow noopener" target="_blank">#341</a>]</p><p>Correctly handles color output based on TTY detection and <code>NO_COLOR</code> environment variable.</p><p><strong>@fedify/elysia</strong></p><p><strong>Contributors</strong>: Hyeonseo Kim [<a href="https://github.com/fedify-dev/fedify/issues/286" rel="nofollow noopener" target="_blank">#286</a>, <a href="https://github.com/fedify-dev/fedify/pull/339" rel="nofollow noopener" target="_blank">#339</a>]</p><p>New <a href="https://fedify.dev/manual/integration#elysia" rel="nofollow noopener" target="_blank">Elysia integration</a> brings Fedify to Bun-powered applications with a simple plugin interface:</p> <pre><code><span class=""><span>import</span><span> { </span><span>Elysia</span><span> } </span><span>from</span><span> "elysia"</span><span>;</span></span> <span class=""><span>import</span><span> { </span><span>fedify</span><span> } </span><span>from</span><span> "@fedify/elysia"</span><span>;</span></span> <span class=""></span> <span class=""><span>const</span><span> app</span><span> =</span><span> new</span><span> Elysia</span><span>()</span></span> <span class=""><span> .</span><span>use</span><span>(</span><span>fedify</span><span>(</span><span>federation</span><span>, { </span><span>/* options */</span><span> }))</span></span> <span class=""><span> .</span><span>listen</span><span>(</span><span>3000</span><span>);</span></span></code></pre><p><strong>@fedify/nestjs</strong></p><p><strong>Contributors</strong>: Jaeyeol Lee [<a href="https://github.com/fedify-dev/fedify/issues/269" rel="nofollow noopener" target="_blank">#269</a>, <a href="https://github.com/fedify-dev/fedify/pull/309" rel="nofollow noopener" target="_blank">#309</a>]</p><p>Enterprise-ready <a href="https://fedify.dev/manual/integration#nestjs" rel="nofollow noopener" target="_blank">NestJS integration</a> with dependency injection support:</p> <pre><code><span class=""><span>import</span><span> { </span><span>FedifyModule</span><span> } </span><span>from</span><span> "@fedify/nestjs"</span><span>;</span></span> <span class=""></span> <span class=""><span>@</span><span>Module</span><span>({</span></span> <span class=""><span> imports</span><span>:</span><span> [</span></span> <span class=""><span> FedifyModule</span><span>.</span><span>forRoot</span><span>({</span></span> <span class=""><span> kv</span><span>:</span><span> new</span><span> MemoryKvStore</span><span>(),</span></span> <span class=""><span> queue</span><span>:</span><span> new</span><span> InProcessMessageQueue</span><span>(),</span></span> <span class=""><span> origin</span><span>:</span><span> "https://example.com"</span><span>,</span></span> <span class=""><span> }),</span></span> <span class=""><span> ],</span></span> <span class=""><span>})</span></span> <span class=""><span>export</span><span> class</span><span> AppModule</span><span> {}</span></span></code></pre><p><strong>@fedify/sqlite</strong></p><p><strong>Contributors</strong>: An Subin [<a href="https://github.com/fedify-dev/fedify/issues/274" rel="nofollow noopener" target="_blank">#274</a>, <a href="https://github.com/fedify-dev/fedify/pull/318" rel="nofollow noopener" target="_blank">#318</a>]</p><p><a href="https://fedify.dev/manual/kv#sqlitekvstore" rel="nofollow noopener" target="_blank"><code>SqliteKvStore</code></a> implementation compatible across all major JavaScript runtimes:</p> <pre><code><span class=""><span>import</span><span> { </span><span>SqliteKvStore</span><span> } </span><span>from</span><span> "@fedify/sqlite"</span><span>;</span></span> <span class=""></span> <span class=""><span>const</span><span> kv</span><span> =</span><span> new</span><span> SqliteKvStore</span><span>(</span><span>"./fedify.db"</span><span>);</span></span></code></pre><p><strong>@fedify/testing</strong></p><p><strong>Contributors</strong>: Lee ByeongJun [<a href="https://github.com/fedify-dev/fedify/issues/197" rel="nofollow noopener" target="_blank">#197</a>, <a href="https://github.com/fedify-dev/fedify/pull/283" rel="nofollow noopener" target="_blank">#283</a>]</p><p>Comprehensive <a href="https://fedify.dev/manual/test#mocking" rel="nofollow noopener" target="_blank">testing utilities with mocking support</a> for Fedify applications:</p> <pre><code><span class=""><span>import</span><span> { </span><span>MockFederation</span><span>, </span><span>MockContext</span><span> } </span><span>from</span><span> "@fedify/testing"</span><span>;</span></span> <span class=""></span> <span class=""><span>const</span><span> mockFederation</span><span> =</span><span> new</span><span> MockFederation</span><span>();</span></span> <span class=""><span>const</span><span> mockContext</span><span> =</span><span> new</span><span> MockContext</span><span>();</span></span> <span class=""></span> <span class=""><span>// Track sent activities with full metadata</span></span> <span class=""><span>// Support custom path registration</span></span> <span class=""><span>// Multiple activity type listeners</span></span></code></pre><p><strong>🙏 Acknowledgments</strong></p><p>This release represents an extraordinary community effort, particularly from the participants of South Korea's <a href="https://www.oss.kr/contribution_academy" rel="nofollow noopener" target="_blank">OSSCA (Open Source Contribution Academy)</a> <em>(Note: page in Korean)</em>. We extend our heartfelt thanks to all contributors:</p><p><strong>Core Contributors</strong></p><ul> <li><strong>ChanHaeng Lee</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@2chanhaeng" rel="nofollow noopener" target="_blank">@<span>2chanhaeng</span></a>) — Custom collections, fediverse handles, WebFinger command</li><li><strong>Lee ByeongJun</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@joonnot" rel="nofollow noopener" target="_blank">@<span>joonnot</span></a>) — WebFinger redirections, dry-run, testing utilities</li><li><strong>Hyunchae Kim</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@r4bb1t" rel="nofollow noopener" target="_blank">@<span>r4bb1t</span></a>) — AbortSignal support</li><li><strong>Hyeonseo Kim</strong> (<a translate="no" class="h-card u-url mention" href="https://yuri.garden/@gaebalgom" rel="nofollow noopener" target="_blank">@<span>gaebalgom</span></a>) — Elysia integration, nodeinfo command</li><li><strong>Jaeyeol Lee</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@kodingwarrior" rel="nofollow noopener" target="_blank">@<span>kodingwarrior</span></a>) — NestJS integration</li><li><strong>An Subin</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@nyeong" rel="nofollow noopener" target="_blank">@<span>nyeong</span></a>) — SQLite driver</li><li><strong>Jiwon Kwon</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@z9mb1" rel="nofollow noopener" target="_blank">@<span>z9mb1</span></a>) — Terminal image display, output options</li><li><strong>Hasang Cho</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@crohasang" rel="nofollow noopener" target="_blank">@<span>crohasang</span></a>) — Color output handling, actor customization</li><li><strong>Jang Hanarae</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@menele" rel="nofollow noopener" target="_blank">@<span>menele</span></a>) — Activity object type display</li><li><strong>KeunHyeong Park</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@w8385" rel="nofollow noopener" target="_blank">@<span>w8385</span></a>) — WebFinger redirect options</li> </ul><p><strong>Test Infrastructure Contributors</strong></p><ul> <li><strong>Oh Daeun</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@ooheunda" rel="nofollow noopener" target="_blank">@<span>ooheunda</span></a>) — Fixed PostgreSQL test race conditions [<a href="https://github.com/fedify-dev/fedify/issues/346" rel="nofollow noopener" target="_blank">#346</a>, <a href="https://github.com/fedify-dev/fedify/pull/350" rel="nofollow noopener" target="_blank">#350</a>]</li><li><strong>Song Hanseo</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@songbirds" rel="nofollow noopener" target="_blank">@<span>songbirds</span></a>) — Test stability improvements for Redis and code generation [<a href="https://github.com/fedify-dev/fedify/pull/344" rel="nofollow noopener" target="_blank">#344</a>, <a href="https://github.com/fedify-dev/fedify/pull/347" rel="nofollow noopener" target="_blank">#347</a>]</li><li><strong>Kim Jonghyeon</strong> (<a translate="no" class="h-card u-url mention" href="https://hackers.pub/@woaol" rel="nofollow noopener" target="_blank">@<span>woaol</span></a>) — CLI version management and documentation fixes [<a href="https://github.com/fedify-dev/fedify/issues/306" rel="nofollow noopener" target="_blank">#306</a>, <a href="https://github.com/fedify-dev/fedify/pull/329" rel="nofollow noopener" target="_blank">#329</a>, <a href="https://github.com/fedify-dev/fedify/issues/330" rel="nofollow noopener" target="_blank">#330</a>, <a href="https://github.com/fedify-dev/fedify/pull/343" rel="nofollow noopener" target="_blank">#343</a>]</li> </ul><p>Your contributions have made Fedify stronger and more versatile than ever. The OSSCA program's support has been instrumental in achieving this milestone release.</p><p><strong>Migration Guide</strong></p><p><strong>Updating from Previous Versions</strong></p><p>If you're using separate Fedify packages, update all packages to version 1.8.1:</p> <pre><code><span class=""><span>{</span></span> <span class=""><span> "dependencies"</span><span>: {</span></span> <span class=""><span> "@fedify/fedify"</span><span>: </span><span>"^1.8.1"</span><span>,</span></span> <span class=""><span> "@fedify/cli"</span><span>: </span><span>"^1.8.1"</span><span>,</span></span> <span class=""><span> "@fedify/express"</span><span>: </span><span>"^1.8.1"</span></span> <span class=""><span> }</span></span> <span class=""><span>}</span></span></code></pre><p>All packages now share the same version number, simplifying dependency management.</p><p><strong>Breaking Changes</strong></p><p>There are no breaking changes in this release. All existing code should continue to work without modifications.</p><p><strong>What's Next</strong></p><p>With the monorepo structure in place and new integrations available, we're excited to continue improving Fedify's developer experience and expanding its capabilities. Stay tuned for more updates, and thank you for being part of the Fedify community!</p><p>For detailed technical information about all changes, please refer to the <a href="https://fedify.dev/changelog#version-1-8-1" rel="nofollow noopener" target="_blank">full changelog</a>.</p> <p><em>Fedify is an open-source project that helps developers build federated server applications powered by ActivityPub. Join us on <a href="https://github.com/fedify-dev/fedify" rel="nofollow noopener" target="_blank">GitHub</a> or <a href="https://discord.gg/bhtwpzURwd" rel="nofollow noopener" target="_blank">Discord</a> to contribute or get help!</em></p><p><a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/opensource" target="_blank">#<span>opensource</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fedidev" target="_blank">#<span>fedidev</span></a></p>
Fedify: an ActivityPub server framework<p>We'd like to recognize some excellent contributions from our <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/OSSCA" target="_blank">#<span>OSSCA</span></a> (Open Source Contribution Academy) participants who have been working on <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Fedify" target="_blank">#<span>Fedify</span></a>.</p><p><a translate="no" class="h-card u-url mention" href="https://yuri.garden/@gaebalgom" rel="nofollow noopener" target="_blank">@<span>gaebalgom</span></a> contributed <a href="https://github.com/fedify-dev/fedify/pull/339" rel="nofollow noopener" target="_blank">PR #339</a>, which introduces the <code>@fedify/elysia</code> package to provide <a href="https://elysiajs.com/" rel="nofollow noopener" target="_blank">Elysia</a> integration for Fedify. This work addresses <a href="https://github.com/fedify-dev/fedify/issues/286" rel="nofollow noopener" target="_blank">issue #286</a> by creating a plugin that enables developers using <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Bun" target="_blank">#<span>Bun</span></a> and <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Elysia" target="_blank">#<span>Elysia</span></a> to integrate Fedify's <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/ActivityPub" target="_blank">#<span>ActivityPub</span></a> capabilities into their applications. The contribution includes the core integration module, documentation, examples, and proper monorepo configuration, making Fedify accessible to the Elysia community.</p><p><a translate="no" class="h-card u-url mention" href="https://hackers.pub/@r4bb1t" rel="nofollow noopener" target="_blank">@<span>r4bb1t</span></a> submitted <a href="https://github.com/fedify-dev/fedify/pull/315" rel="nofollow noopener" target="_blank">PR #315</a>, implementing comprehensive <a href="https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal" rel="nofollow noopener" target="_blank"><code>AbortSignal</code></a> support across multiple APIs to resolve <a href="https://github.com/fedify-dev/fedify/issues/51" rel="nofollow noopener" target="_blank">issue #51</a>. This contribution adds request cancellation capabilities not only to <code>lookupWebFinger()</code> but also to <code>lookupObject()</code>, <code>DocumentLoader</code>, and the HTTP signature authentication flow (<code>doubleKnock()</code>), allowing developers to properly handle timeouts and abort ongoing requests throughout the entire request chain. The implementation includes extensive test coverage for cancellation scenarios across all affected components and lays the groundwork for <a href="https://github.com/fedify-dev/fedify/issues/258" rel="nofollow noopener" target="_blank">adding <code>--timeout</code> options to various CLI commands like <code>fedify lookup</code></a>, <code>fedify webfinger</code>, and <code>fedify nodeinfo</code>, making federated applications more robust and responsive.</p><p><a translate="no" class="h-card u-url mention" href="https://hackers.pub/@ooheunda" rel="nofollow noopener" target="_blank">@<span>ooheunda</span></a> addressed a testing infrastructure issue with <a href="https://github.com/fedify-dev/fedify/pull/350" rel="nofollow noopener" target="_blank">PR #350</a>, fixing a race condition in PostgreSQL message queue tests that was causing intermittent failures (<a href="https://github.com/fedify-dev/fedify/issues/346" rel="nofollow noopener" target="_blank">issue #346</a>). By adding explicit initialization before concurrent message queue listeners, this fix prevents table creation conflicts that were affecting test reliability, ensuring more consistent PR testing for all contributors.</p><p><a translate="no" class="h-card u-url mention" href="https://hackers.pub/@songbirds" rel="nofollow noopener" target="_blank">@<span>songbirds</span></a> provided two test stability improvements with <a href="https://github.com/fedify-dev/fedify/pull/344" rel="nofollow noopener" target="_blank">PR #344</a> and <a href="https://github.com/fedify-dev/fedify/pull/347" rel="nofollow noopener" target="_blank">PR #347</a>. The first PR adds skip guards to <code>RedisKvStore</code> tests as a workaround for a known Bun runtime issue, keeping the test suite functional while awaiting an upstream fix. The second PR resolves a race condition in the code generation process by randomizing output filenames, preventing conflicts during parallel test execution. These contributions help maintain a stable testing environment for the project.</p><p>Thank you all for your contributions to Fedify. Your work helps make federated social networking more accessible to developers.</p><p><a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/opensource" target="_blank">#<span>opensource</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fedidev" target="_blank">#<span>fedidev</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fediverse" target="_blank">#<span>fediverse</span></a></p>
marius<p><span class="h-card" translate="no"><a href="https://cosocial.ca/@evan" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>evan</span></a></span> do you know is there an agreed upon opinion in the <a href="https://metalhead.club/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> working group (or in in the fediverse at large) if `Dislike` activities should be added to an object's likes collection?</p><p><a href="https://metalhead.club/tags/fedidev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fedidev</span></a></p>
mbajur<p>Is there anything like <a href="https://mastodon.social/tags/foursquare" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>foursquare</span></a> or, let's call it, micro place reviews app based on <a href="https://mastodon.social/tags/activitypub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>activitypub</span></a> ?</p><p><a href="https://mastodon.social/tags/fediverse" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fediverse</span></a> <a href="https://mastodon.social/tags/fedidev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>fedidev</span></a> <a href="https://mastodon.social/tags/needhelp" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>needhelp</span></a></p>
Jeff Sikes<p>Lots of talk about Ghost today, and rightly so, but don’t forget that a little open source framework <span class="h-card" translate="no"><a href="https://hollo.social/@fedify" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>fedify</span></a></span> made the ActivityPub plugin possible. </p><p>Support open source!</p><p><a href="https://ghost.org/changelog/6/" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="">ghost.org/changelog/6/</span><span class="invisible"></span></a></p><p><a href="https://mastodon.social/tags/ActivityPub" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>ActivityPub</span></a> <a href="https://mastodon.social/tags/FediDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediDev</span></a></p>
Jeff Sikes<p>If you’re interested in viewing the sessions from Fedicon, follow <span class="h-card" translate="no"><a href="https://spectra.video/accounts/fedicon" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>fedicon</span></a></span></p><p>It’s been less than 24 hours and the first session is already listed!</p><p><a href="https://spectra.video/w/eg35Kne91oEHcgyfvQWMhM" rel="nofollow noopener" translate="no" target="_blank"><span class="invisible">https://</span><span class="ellipsis">spectra.video/w/eg35Kne91oEHcg</span><span class="invisible">yfvQWMhM</span></a></p><p><a href="https://mastodon.social/tags/Fedicon" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>Fedicon</span></a> <a href="https://mastodon.social/tags/FediCon2025" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediCon2025</span></a> <a href="https://mastodon.social/tags/FediDev" class="mention hashtag" rel="nofollow noopener" target="_blank">#<span>FediDev</span></a></p>
Fedify: an ActivityPub server framework<p>We're thrilled to highlight five outstanding contributions from the Korean Open Source Contribution Academy (<a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/OSSCA" target="_blank">#<span>OSSCA</span></a>) program participants who have been working on <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/Fedify" target="_blank">#<span>Fedify</span></a>! Their dedication and effort have significantly enhanced our <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/ActivityPub" target="_blank">#<span>ActivityPub</span></a> server framework.</p><p>First up is <a translate="no" class="h-card u-url mention" href="https://hackers.pub/@nyeong" rel="nofollow noopener" target="_blank">@<span>nyeong</span></a> with his monumental <a href="https://github.com/fedify-dev/fedify/pull/318" rel="nofollow noopener" target="_blank">#318 PR</a>, implementing a SQLite-based key–value store to address <a href="https://github.com/fedify-dev/fedify/issues/274" rel="nofollow noopener" target="_blank">#274</a>. This contribution adds the <code>SqliteKvStore</code> class with full cross-runtime support for Node.js, Deno, and Bun through the new <code>@fedify/sqlite</code> package. His implementation includes atomic operations, TTL support, comprehensive test coverage, and careful attention to SQL injection prevention. This enables developers to use SQLite as a persistent storage backend while maintaining compatibility with Fedify's existing <code>KvStore</code> API—a crucial feature for production deployments!</p><p>Next, <a translate="no" class="h-card u-url mention" href="https://hackers.pub/@crohasang" rel="nofollow noopener" target="_blank">@<span>crohasang</span></a> delivered an excellent quality-of-life improvement with <a href="https://github.com/fedify-dev/fedify/pull/341" rel="nofollow noopener" target="_blank">#341 PR</a>, fixing <a href="https://github.com/fedify-dev/fedify/issues/257" rel="nofollow noopener" target="_blank">#257</a>. He enhanced the CLI to properly respect TTY status and the <code>NO_COLOR</code> environment variable, implementing intelligent color control across all CLI commands. The solution involved switching from <code>@cliffy/ansi/colors</code> to <code>@std/fmt/colors</code>, creating a helper function using <code>Deno.inspect()</code> to handle object formatting, and ensuring colors are correctly disabled when output is redirected to files. This makes the CLI much more pipe-friendly and suitable for automated workflows!</p><p><a translate="no" class="h-card u-url mention" href="https://hackers.pub/@menele" rel="nofollow noopener" target="_blank">@<span>menele</span></a> contributed a thoughtful enhancement with <a href="https://github.com/fedify-dev/fedify/pull/342" rel="nofollow noopener" target="_blank">#342 PR</a>, addressing <a href="https://github.com/fedify-dev/fedify/issues/191" rel="nofollow noopener" target="_blank">#191</a>. She updated the <code>fedify inbox</code> command to display not just the activity type, but also the type of object contained within each activity—transforming output like "Create" into the more informative "Create(Note)" or "Undo" into "Undo(Follow)". This seemingly simple change required making the display function asynchronous to fetch the enclosed objects, significantly improving the debugging experience for developers!</p><p><a translate="no" class="h-card u-url mention" href="https://hackers.pub/@woaol" rel="nofollow noopener" target="_blank">@<span>woaol</span></a> tackled an important developer experience issue with <a href="https://github.com/fedify-dev/fedify/pull/329" rel="nofollow noopener" target="_blank">#329 PR</a>, solving <a href="https://github.com/fedify-dev/fedify/issues/306" rel="nofollow noopener" target="_blank">#306</a>. Previously, the <code>fedify init</code> command would often install outdated versions of Fedify packages like <code>@fedify/redis</code> because version numbers were hardcoded in the CLI. They created a <code>getLatestVersion()</code> function that dynamically retrieves package versions from local metadata files, ensuring that developers always get the latest versions of all Fedify packages when initializing a new project. This improvement includes comprehensive test coverage and eliminates the frustration of starting a project with outdated dependencies!</p><p>Finally, <a translate="no" class="h-card u-url mention" href="https://hackers.pub/@kodingwarrior" rel="nofollow noopener" target="_blank">@<span>kodingwarrior</span></a> made a significant contribution with <a href="https://github.com/fedify-dev/fedify/pull/309" rel="nofollow noopener" target="_blank">#309 PR</a>, implementing <a href="https://github.com/fedify-dev/fedify/issues/269" rel="nofollow noopener" target="_blank">#269</a>—NestJS integration! They created the <code>@fedify/nestjs</code> package with a <code>FedifyModule</code> that seamlessly integrates Fedify into NestJS applications. This includes proper middleware implementation, dependency injection support through NestJS's module system, and compatibility with both CommonJS and ESM environments. This opens up Fedify to the large NestJS developer community, making it easier than ever to build ActivityPub-enabled applications with this popular enterprise framework!</p><p>These contributions showcase the incredible talent and dedication of the OSSCA participants. From core infrastructure improvements to developer experience enhancements, each contribution makes Fedify better for the entire community. Thank you all for your hard work and welcome to the Fedify contributor family! 🚀</p><p>We're looking forward to seeing more amazing contributions from the OSSCA program and the broader community. If you're interested in contributing to Fedify, check out our <a href="https://github.com/fedify-dev/fedify" rel="nofollow noopener" target="_blank">GitHub repository</a> and join us in building the future of federated social web! 🌟</p><p><a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/opensource" target="_blank">#<span>opensource</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fedidev" target="_blank">#<span>fedidev</span></a> <a class="mention hashtag" rel="nofollow noopener" href="https://hollo.social/tags/fediverse" target="_blank">#<span>fediverse</span></a></p>

What is the biggest reason that makes you hesitate to adopt #Fedify?

🎉 Huge shoutout to @2chanhaeng for implementing custom collection dispatchers in #Fedify through the Korean #OSSCA program!

This incredible contribution adds support for creating arbitrary collections beyond the built-in ones (e.g., outbox, inbox, following, followers). Now developers can expose custom collections like user bookmarks, post categories, or any grouped content through the #ActivityPub protocol:

federation
  .setCollectionDispatcher(
    "bookmarks",
    Article,
    "/users/{identifier}/bookmarks",
    async (ctx, values, cursor) => {
      const { posts, nextCursor } = await getBookmarkedPosts(values.identifier, cursor);
      return { items: posts, nextCursor };
    }
  )
  .setCounter(async (ctx, values) =>
    getBookmarkCount(values.identifier)
  );

The implementation is technically excellent with full #TypeScript support, both Collection and OrderedCollection types, cursor-based pagination, authorization predicates, and zero breaking changes. @2chanhaeng delivered not just code but a complete feature with 313 lines of comprehensive documentation, practical examples, and thorough test coverage.

This opens up countless possibilities for ActivityPub applications built with Fedify. From user-specific collections to complex categorization systems, developers now have the flexibility to create any type of custom collection while maintaining full ActivityPub compliance.

Thank you @2chanhaeng for this outstanding contribution and to the OSSCA program for fostering such excellent open source collaboration! 🚀

GitHubCustom collection dispatchers · Issue #310 · fedify-dev/fedifyBy dahlia

🎉 Huge shoutouts to two amazing contributors from Korea's #OSSCA program who just made #Fedify even better!

First, @z9mb1 delivered PR #321, adding a handy -o/--output option to fedify lookup. Now you can save lookup results directly to files instead of just printing to terminal—a nice quality-of-life improvement for analysis and scripting workflows.

But the real showstopper is @joonnot's incredible PR #283, which introduces the brand new @fedify/testing package! This massive contribution (2,014 lines across 20 files) brings MockFederation and MockContext classes that completely transform how we test federated applications. No more complex setups or actual network requests—just clean, straightforward unit testing with activity tracking, inbox simulation, and queue-aware testing capabilities.

These contributions solve real pain points and showcase the amazing talent emerging from the OSSCA program. Both features will be available in the upcoming Fedify 1.8 release. The future of federated software development just got a lot brighter! 🚀

GitHubfeat(cli): Add --output option to fedify lookup to save results to a file by sij411 · Pull Request #321 · fedify-dev/fedifyBy sij411

pan.rent has been down for the last ~36 hours. Probably, this happened because of an error during an upgrade to Mastodon Glitch 4.4.0. We are back now, running version 4.5.0-alpha (👀).

Thanks to @victorvandort for dealing with this.

Even though Pan is a tiny volunteer-run instance, so many hours of downtime should never be happening. We are discussing about how to avoid such long outages in the future.

Mastodon hosted on pan.rentPanA tiny, tight, warm, improbable community of curious dreamers.

🎉 Huge shoutout to two amazing contributors from Korea's #OSSCA program who've made excellent contributions to #Fedify!

👏 @gaebalgom tackled a tricky terminal compatibility issue in PR #282, fixing the fedify node command's favicon display on terminal emulators without truecolor support (#168). His solution elegantly detects terminal capabilities and falls back to 256-color mode when needed—ensuring a great experience across different environments.

🌟 @joonnot enhanced Fedify's #WebFinger functionality in PR #281 by adding a configurable maxRedirection option to the lookupWebFinger() function (#248). He transformed a hardcoded limitation into a flexible, user-customizable parameter while maintaining perfect backward compatibility.

Both delivered thoughtful, well-implemented solutions that showcase the quality of contributions coming from the OSSCA program. Welcome to the Fedify community! :fedify:

🎉 Big thanks to @2chanhaeng for his first contribution to #Fedify! He implemented the new fedify webfinger command in PR #278, which allows isolated #WebFinger lookups for testing configurations. This addresses the need for developers to test WebFinger functionality without performing comprehensive object retrieval.

The contribution includes:

  • A new fedify webfinger <handle> command that accepts @user@domain format handles or URIs
  • Clean JSON output of WebFinger JRD results
  • Proper error handling for invalid handles and lookup failures
  • Complete #CLI integration with help text and usage examples

This was originally filed as issue #260 and marked as a good first issue—perfect for newcomers to learn the codebase structure while contributing meaningful functionality. The PR has been merged and will be included in the upcoming Fedify 1.8.0 release.

We appreciate all first-time contributors who help make Fedify better for the entire #fediverse community. Welcome aboard, ChanHaeng!

unstable.fedify.devfedify: CLI toolchain | FedifyThe fedify command is a CLI toolchain for Fedify and debugging ActivityPub-enabled federated server apps. This section explains the key features of the fedify command.

From tomorrow morning, the Newsmast app will be down! ⚠️

As we move to our new app, the current Newsmast app will go down for a period of maintenance.

In this time, you may see Newmast Channels also go down or be less responsive as we migrate them to a new server.

We can't wait to show you the new look Newsmast! Thanks so much for your patience.

A little known way in which Fedi can be browsed looks like this and is not web-based at all!
imho this a much cleaner interface with the fewest possible distractions.
The screenshot is of a recent post by
@FediTips@social.growyourown.services , opened in a #geminiprotocol browser like @lagrange@skyjake.fi via a #tootik instance such as gemini://hd.206267.xyz/ (the 'flagship' instance by tootik's author @dimkr@hd.206267.xyz)

Thank you for this ,
@jk@skyjake.fi and @dimkr@hd.206267.xyz ! it's a much saner Fedi because of you.

#FediDev people may be interested, too

The
#lesserKnownFedi is diverse and interesting to explore