#fediDev

洪 民憙 (Hong Minhee)hongminhee@hollo.social
2025-07-04

And just finished writing a comprehensive contributor guide for the #OSSCA mentees!

You can check it out here—it's Korean though: https://hackers.pub/@hongminhee/2025/ossca-fedify-contributors-guide.

It covers everything from setting up the #fediverse accounts and development environment to finding good first issues. While it's primarily for the OSSCA participants, anyone interested in contributing to @fedify is welcome to use it as a reference.

Ready to onboard the next wave of #ActivityPub developers!

#Fedify #fedidev #opensource #mentoring

Fedify: an ActivityPub server frameworkfedify@hollo.social
2025-07-04

#Fedify has moved to a monorepo structure with unified versioning across all packages (@fedify/fedify, @fedify/cli, database adapters & framework integrations).

All packages now release together, making dependency management much simpler!

#ActivityPub #fedidev

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Vincent Cloutiervincent@r.town
2025-07-04

I have confirmations of it working on Mitra and Pleroma, but not on Mastodon 4.4, does anyone have any pointers? #fedidev

browser.pub/https://bird.makeu

Vincent Cloutiervincent@r.town
2025-07-01

I've just deployed the first set of changes to have proper activitypub quotes on bird.makeup, those exemples should (in theory) work on Mastodon 4.4 and others implementations that support those:

bird.makeup/users/davidfowl/st

bird.makeup/users/bigtechalert

bird.makeup/users/nntaleb/stat

Can you all test and report back? I will fix any incompatibilty with any implementation #fedidev

2025-06-27

Another poll: Should reply backfill automatically handle note updates / deletions if it comes across them?

To clarify, this would only happen if the remote instance indicates that the note has been deleted or edited. For deletion, only a Tombstone object or HTTP/410 response will count. Updates will trigger for any object with a timestamp newer than our most recent recorded update.

#ActivityPub #FediDevs #FediDev #Fedi #SharkeyDev #Sharkey

洪 民憙 (Hong Minhee)hongminhee@hollo.social
2025-06-26

Excited to share that I've joined #OSSCA (Open Source Software Contribution Academy) as a mentor for the @fedify project!

OSSCA is a national program run by South Korea's NIPA (National IT Industry Promotion Agency) through their Open Source Software Support Center, aimed at fostering the next generation of open source contributors.

We're currently in the process of selecting around 20 mentees who will start contributing to #Fedify once the selection is complete. I've been busy preparing good first issues to help them get started on their open source journey.

Looking forward to working with these new contributors and seeing what amazing things we can build together!

#opensource #mentoring #ActivityPub #fedidev

Fedify: an ActivityPub server frameworkfedify@hollo.social
2025-06-25

We're pleased to share that Encyclia has joined our success stories.

@encyclia bridges academic research to the #fediverse by making #ORCID researcher profiles and publications discoverable through #ActivityPub—built with #Fedify for seamless interoperability across Mastodon and other fediverse platforms.

This demonstrates Fedify's versatility beyond traditional social networking, helping specialized domains connect to the federated web.

We're also grateful for #Encyclia's sponsorship support, which helps make Fedify's development possible.

Learn more about Encyclia at https://encyclia.pub/. 📚

#fedidev #openscience

Fedify: an ActivityPub server frameworkfedify@hollo.social
2025-06-25

We are pleased to announce the release of #Fedify 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their #ActivityPub implementation. As a result, several features originally planned for this version have been moved to Fedify 1.8.0 to ensure timely delivery of the most critical improvements.

This release focuses on enhancing message queue functionality and improving compatibility with ActivityPub servers through refined HTTP signature handling.

Native retry mechanism support

This release introduces support for native retry mechanisms in message queue backends. The new MessageQueue.nativeRetrial property allows queue implementations to indicate whether they provide built-in retry functionality, enabling Fedify to optimize its retry behavior accordingly.

When nativeRetrial is set to true, Fedify will delegate retry handling to the queue backend rather than implementing its own retry logic. This approach reduces overhead and leverages the proven retry mechanisms of established queue systems.

Current implementations with native retry support include:

  • DenoKvMessageQueue — utilizes Deno KV's automatic retry with exponential backoff
  • WorkersMessageQueue — leverages Cloudflare Queues' automatic retry and dead-letter queue features
  • AmqpMessageQueue — can now be configured to use AMQP broker's native retry mechanisms

The InProcessMessageQueue continues to use Fedify's internal retry mechanism, while ParallelMessageQueue inherits the retry behavior from its wrapped queue.

AMQP message queue improvements

Alongside Fedify 1.7.0, we have also released @fedify/amqp 0.3.0. This release adds the nativeRetrial option to AmqpMessageQueueOptions, enabling you to leverage your AMQP broker's built-in retry mechanisms. When enabled, this option allows the AMQP broker to handle message retries according to its configured policies, rather than relying on Fedify's internal retry logic.

Configurable double-knocking

The new FederationOptions.firstKnock option provides control over the HTTP Signatures specification used for the initial signature attempt when communicating with previously unknown servers.

Previously, the first knock for newly encountered servers always used RFC 9421 (HTTP Message Signatures), falling back to draft-cavage-http-signatures-12 if needed. With this release, you can now configure which specification to use for the first knock when communicating with unknown servers, with RFC 9421 remaining the default.

Summary

This release maintains Fedify's commitment to reliability and compatibility while laying the groundwork for more efficient message processing. The native retry mechanism support will particularly benefit applications using queue backends with sophisticated retry capabilities, while the double-knocking mechanism addresses real-world compatibility challenges in the ActivityPub ecosystem.

For detailed technical information about these changes, please refer to the changelog in the repository.

#fedidev #fediverse

BotKit by Fedify :botkit:botkit@hollo.social
2025-06-25

We're pleased to announce that #Node.js support has been merged and will be available in #BotKit 0.3.0.

Now you can build your #ActivityPub bots with both #Deno and Node.js, giving you more flexibility in choosing your preferred runtime environment.

Stay tuned for BotKit 0.3.0!

#fedidev #fediverse

2025-06-24

👋 Everyone: see what you think:

The Seven Deadly #Fediverse UX Sins Part 2: The Road To Redemption: timothychambers.net/2025/06/24

Don't claim that these are final answers - but hope they help continue constructive motion to final answers!

cc: @renchap @dansup
@cheeaun @scottjenson @newsmast @andypiper @ricmac @evan @laurenshof @pfefferle @fediversenews #fedidev #mastodev @timbray

Andrew Graves :arch: :linux:graves501@fosstodon.org
2025-06-24

"Building with purpose is worth the struggle."

Inspiring quote by @dansup

PS: Check out the #firesidefedi episode with Dan here (please someone comment the peertube link):
youtube.com/watch?v=OOzr-TtuM4

#fediverse #fedidev

2025-06-23

#fediDev #mastodev #nodeinfo

do any fedi client devs know how to get a nodeinfo request to work? in the browser i receive JSON, while with my client i receive an HTML error saying use the web or a client.

EDIT: solved, you just have to not fuck everything up in your request (no special details required).

2025-06-23

Jumping off this:

Does markdown-but-suitable-for-IM-and-comments have anything to point at? Any specs? Any test suites?
#markdown #standards #fedidev

RE: https://mkultra.x27.one/notes/a9c69ant7hg40knu

2025-06-20

#fediDev #mastoDev

fedi instances should announce their server software name and its repo URL in /api/v1/instance. i like looking up what your instance is running, not just guessing (from the "version" field, or the presence/absence of other fields)...?

wakest ⁂liaizon@wake.st
2025-06-17

Meta Fediverse by Facebook Threads by Instagram with built tracking and WhatsApp ads is live!
about.fb.com/news/2025/06/its- #fediverse #meta #fedidev #threads

A screenshot of the official Facebook announcement
2025-06-17

Hi friends! ​:senko_happy_3:​

I want to tell you all about a new thing I'm trying, where I'll accept bounties to work on specific features or bug fixes for Sharkey. If there's something you really want implemented, then you can make a donation and I'll prioritize that work over whatever other ticket I was going to work on.

To be clear, this is an agreement to
work on a particular project, not a promise to finish it! I'll dedicate a certain amount of time to the work based on the size of the donation, and if I finish the work - then great! If not, I'll upload my progress to branch to either finish later or hand off to another interested party. I may choose to complete the work anyway if it's something that I also want, but that's not a gaurantee!

Pricing is in lose terms because tracking my hours or comtting to deadlines will take all the fun out of everything. Sorry if that's an issue, but I'm not willing to negotiate on this. I
will make sure not to "count it" if I don't actually get much work done, so don't worry about picking a bad week and wasting your money. If I don't manage enough work when I initally plan to, then I'll just save my progress and resume when I have more time.

Time slots are broken down like this:
• $20 - I work on my lunch break. This is usually about an hour, so I probably won't complete a whole ticket unless it's something small.
• $30 - I dedicate an evening or two. The exact number of hours varies, but it's usually 2-4 per evening. I'll aim for at least 3 hours in total.
• $50 - It's my weekend project. Again, my availability varies - but sometimes I spend 12+ hours between Saturday and Sunday.
• $100 - This is my focus for the week. I won't devote any more Sharkey time than I would normally, but all of that time is devoted to this work item.

If this sounds like something you'd like, then please reply or send a DM! For this first trial phase, I've picked a curated list of tickets that I'm willing to work on. Assuming everything goes well, I'll add more options and open up the possibility of working on brand new ideas too. I hope this can be a good deal for everyone!

---

Ticket options:

#499 - enhancement: Context menu button for muting the instance of a post
#548 - enhancement: Admin feature: Ability to safely reset MFA for end users
#675 - enhancement: API Endpoint for validating scoped tokens, returning a list of assigned scopes
#746 - bug: When editing a quote, the "quote" indicator and button are not aligned
#836 - enhancement: Log IP Address of Registrants
#910 - enhancement: Allow moderators to set a content warning on any post
#943 - enhancement: Allow moderators to force a content warning for all posts by an instance
#953 - enhancement: Investigate a better on-disk structure for drive files
#997 - enhancement: Increase options for number of poll options
#1001 - enhancement: Add option to delete all users from remote instance
#1002 - bug: "Force Content Warning" does not apply to boosts
#1008 - bug: Search menu does not lookup url containing emoji
#1034 - enhancement: Multi select for adding notes to clips
#1039 - enhancement: Add change UI language when logged out
#1040 - enhancement: Hide alt-text
#1065 - enhancement: Option to hide note that are replies to a reply of a note
#1069 - bug: Send abuse reports to contact email
#1070 - enhancement: Translate Content Warning
#1071 - enhancement: Translate Alt Text
#1072 - enhancement: Allow user to specify the source language for translation
#1076 - enhancement: Support multiple hosts for email delivery
#1106 - bug: Dont mark post as long for just including certain mfm
#1110 - enhancement: Allow admins to change bio length limit

---

Clarifications and Disclaimers:

1. As stated above,
this is not a promise to complete any work item! I'll put effort in - that's the only gaurantee.
2. This is not a contract of employment or payment for services.
3. If something "important" comes up, then I may pause your work item to focus on that. Think urgent bugs, security issues, or project management responsibilities. This won't count against the promised effort.
4. If multiple donations are made around the same time, then I'll complete them in order of submission.
5. If a work item is completed before I get to your request, then I'll offer the chance to select another ticket instead.
6. You're welcome to ask how long I expect a particular item to take! I may not answer in hours, but I can give a relative estimate of complexity.

#Sharkey #FediDevs #FediDev #SoftwareDev

Bolet :neobread_eyes:javascript@app.wafrn.net
2025-06-12
grant :blobcatgoogly:​grant@grants.cafe
2025-06-12

if you're a fediverse app developer, there's now an API as well to get event details 👀

sc07.dev/fediverse.events/fedi

@canvas

#canvas #canvas2025 #fedidev #developer #fediverse #events #games #mastoadmin

2025-06-10

Le silence du #fediverse.

Quand le protocole #ActivityPub lui même donne une partie d'une conversation au lieu de tous les posts répondant au billet initial.

Réflexion sur comment y remédier:
hackers.pub/@hongminhee/2025/q

By @hongminhee

#fediverse #fedidev #Mastodon #Pixelfed #conversations #NodeBB #Discourse, #WordPress #Frequency #Mitra #Streams #Lemmy #Piefed

洪 民憙 (Hong Minhee)hongminhee@hackers.pub
2025-06-09

“조용한 연합우주” 문제를 해결하는 두 가지 접근법: 대화 백필링 메커니즘

hackers.pub/@hongminhee/2025/q

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst