#ActivityPub

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-11

Servers

- Mastodon v4.4.0
- Manyfold v0.117.0
- snac v2.80
- Hollo v0.6.4
- ActivityPub for WordPress v7.0.0
- tootik v0.17.1
- NeoDB v0.11.7.4
- kmyblue v19.0
- wanderer v0.17.2

Clients

- TootRain v2.2.1
- Smither v3.6.1
- Voyager v2.38.0
- Tesseract v1.4.41

Tools and Plugins

- Mastodon Bird UI v2.3.0
- Tangerine UI for Mastodon v2.4
- FBI: Fediverse Block Inspector

Protocol

- FEP-9098: Custom emojis

Articles

- Taking Your Posts With You: Upon the closing of Oliphant.Social
- ActivityPub Client API: A Way Forward

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197d746-3ac7-6c66-4dc4-0a32e427d84c

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-11

Servers

- Mastodon v4.4.0
- Manyfold v0.117.0
- snac v2.80
- Hollo v0.6.4
- ActivityPub for WordPress v7.0.0
- tootik v0.17.1
- NeoDB v0.11.7.4
- kmyblue v19.0
- wanderer v0.17.2

Clients

- TootRain v2.2.1
- Smither v3.6.1
- Voyager v2.38.0
- Tesseract v1.4.41

Tools and Plugins

- Mastodon Bird UI v2.3.0
- Tangerine UI for Mastodon v2.4
- FBI: Fediverse Block Inspector

Protocol

- FEP-9098: Custom emojis

Articles

- Taking Your Posts With You: Upon the closing of Oliphant.Social
- ActivityPub Client API: A Way Forward

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197d746-3ac7-6c66-4dc4-0a32e427d84c

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-11

Servers

- Mastodon v4.4.0
- Manyfold v0.117.0
- snac v2.80
- Hollo v0.6.4
- ActivityPub for WordPress v7.0.0
- tootik v0.17.1
- NeoDB v0.11.7.4
- kmyblue v19.0
- wanderer v0.17.2

Clients

- TootRain v2.2.1
- Smither v3.6.1
- Voyager v2.38.0
- Tesseract v1.4.41

Tools and Plugins

- Mastodon Bird UI v2.3.0
- Tangerine UI for Mastodon v2.4
- FBI: Fediverse Block Inspector

Protocol

- FEP-9098: Custom emojis

Articles

- Taking Your Posts With You: Upon the closing of Oliphant.Social
- ActivityPub Client API: A Way Forward

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197d746-3ac7-6c66-4dc4-0a32e427d84c

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

I've made a @newsmast channel for Fediverse development updates. It only contains official platform accounts to keep the feed focused.

Hint - create a new Mastodon List called "Fediverse Platforms", then check the "Hide from Home/Following timelines" option. Add @fedidevs to the list.

Now you have your own personal feed of Fedi Dev news you can check on when you're ready!

@fedidevs

Blort™ 🐀Ⓥ🥋☣️'s avatar
Blort™ 🐀Ⓥ🥋☣️

@Blort@social.tchncs.de · Reply to Christine Lemmer-Webber's post

@cwebber

What a surprise. A protocol that largely depends on centralized sections, gets focused on by federal agencies and ends up needing to identify individual users (and not just their age) and collect their privite information.

It's almost like decentralization was actually a good idea... 🤔

Robert Lender's avatar
Robert Lender

@roblen@microblog.at

Our 2025 Roadmap: Building the Future of WordPress Federation – for WordPress activitypub.blog/2025/06/11/ou

Vielleicht nutze ich ab 2026 eine zweite Installation als meine hauptsächliche / Instanz. Vorteil: Ich könnte sie wirklich selbst hosten. Bin gespannt was 2025 noch so kommt.

Lucas Janin 🇫🇷 🇨🇦's avatar
Lucas Janin 🇫🇷 🇨🇦

@lucas3d@mastodon.social

First in Montreal! Thanks to @paige for organizing the event. Nice to meet the community.


masto.canadiancivil.com/@paige

One of the tables at the event with the ActivityPub sign
ALT text detailsOne of the tables at the event with the ActivityPub sign
Lucas Janin 🇫🇷 🇨🇦's avatar
Lucas Janin 🇫🇷 🇨🇦

@lucas3d@mastodon.social

First in Montreal! Thanks to @paige for organizing the event. Nice to meet the community.


masto.canadiancivil.com/@paige

One of the tables at the event with the ActivityPub sign
ALT text detailsOne of the tables at the event with the ActivityPub sign
Lucas Janin 🇫🇷 🇨🇦's avatar
Lucas Janin 🇫🇷 🇨🇦

@lucas3d@mastodon.social

First in Montreal! Thanks to @paige for organizing the event. Nice to meet the community.


masto.canadiancivil.com/@paige

One of the tables at the event with the ActivityPub sign
ALT text detailsOne of the tables at the event with the ActivityPub sign
Robert Lender's avatar
Robert Lender

@roblen@microblog.at

Our 2025 Roadmap: Building the Future of WordPress Federation – for WordPress activitypub.blog/2025/06/11/ou

Vielleicht nutze ich ab 2026 eine zweite Installation als meine hauptsächliche / Instanz. Vorteil: Ich könnte sie wirklich selbst hosten. Bin gespannt was 2025 noch so kommt.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

I've made a @newsmast channel for Fediverse development updates. It only contains official platform accounts to keep the feed focused.

Hint - create a new Mastodon List called "Fediverse Platforms", then check the "Hide from Home/Following timelines" option. Add @fedidevs to the list.

Now you have your own personal feed of Fedi Dev news you can check on when you're ready!

@fedidevs

HACK13's avatar
HACK13

@hack13@cyberfurz.social

Been reading up on the spec as I design my plan out. There's a lot of really nice proposals out there I'm interested in considering implementing. Also been pretty happy with the @fedify library it's pretty awesome for hitting the ground running.

Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

A question for #Fediverse devs: I’m thinking about better ways to document development of the #ActivityPub stack. This would include explanations, demo code, example snippets, and various sections explaining how to build a fully working Fediverse server, with consideration for all of the FEP documents as well.

What do you, as a developer, feel is currently missing? What information would make your life a lot easier?

Linux Is Best's avatar
Linux Is Best

@Linux@mastodon.au

Fragmentation on the Fediverse is a real problem.

Hypothetically, let’s say I’m an admin. I don’t like "John Doe" (just a random example). Instead of simply blocking John Doe myself, I demand that "Billy Bob" — the admin of his instance — remove him entirely.

Billy Bob refuses, because John Doe hasn’t broken any rules. So, being an egotistical maniac, I blacklist Billy Bob’s entire instance — 5,000+ innocent users who had nothing to do with anything.

I also have 5,000+ users on my instance. Now you’ve got over 10,000 people who can’t communicate, all because of a personal disagreement.

This kind of thing happens far too often on the Fediverse. If you create more than one account (on different instances), you’ll likely discover people you didn’t even know existed — people you’d want to follow but previously couldn’t, due to the growing fragmentation across the network.

The scale of the problem becomes even more obvious when you move to a different instance. You’ll likely find that not everyone you currently follow can be followed from the new site.

The solution?

Right now, it means having more than one account just to keep in touch with everyone you want to follow.

How crazy is that?

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Does anyone have experience with Key Event Receipt Infrastructure (KERI)?

> “Could there possibly be a unifying method that covers the use cases of all others?” This is precisely what attempts to be. What makes KERI special is also the fact that it is not just another DID method. The KERI protocol has a grander vision of being the overlay for the internet.

In the quest for and fediverse KERI may be worth looking into.

socialhub.activitypub.rocks/t/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

A question for #Fediverse devs: I’m thinking about better ways to document development of the #ActivityPub stack. This would include explanations, demo code, example snippets, and various sections explaining how to build a fully working Fediverse server, with consideration for all of the FEP documents as well.

What do you, as a developer, feel is currently missing? What information would make your life a lot easier?

Peter Müller's avatar
Peter Müller

@pmmueller@mastodon.social

ActivityPub for WordPress
The 2025 Roadmap

»Our goal for this year is to finalize the full ActivityPub experience — so that WordPress can be used as a first-class citizen of the Fediverse.«

This means:
- publishing to the network
- following
- reading
- interacting
- moderating
And all in a way that feels natural for WP users.

Really exciting what @pfefferle, @obenland and the other contributors are creating.

activitypub.blog/2025/06/11/ou

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

A question for #Fediverse devs: I’m thinking about better ways to document development of the #ActivityPub stack. This would include explanations, demo code, example snippets, and various sections explaining how to build a fully working Fediverse server, with consideration for all of the FEP documents as well.

What do you, as a developer, feel is currently missing? What information would make your life a lot easier?

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

👏 @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 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:

Side-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
ALT text detailsSide-by-side comparison of `fedify node` command output showing terminal favicon display. Left side shows broken display on terminal without truecolor support with corrupted color blocks. Right side shows proper display after the fix with clean, correctly rendered favicon and NodeInfo output including mastodon.social server information and statistics.
Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

A question for #Fediverse devs: I’m thinking about better ways to document development of the #ActivityPub stack. This would include explanations, demo code, example snippets, and various sections explaining how to build a fully working Fediverse server, with consideration for all of the FEP documents as well.

What do you, as a developer, feel is currently missing? What information would make your life a lot easier?

masukomi's avatar
masukomi

@masukomi@connectified.com

Anyone seen an library written in (any flavor) or ?

I'm not finding any sign of either.

Matze's avatar
Matze

@matze@dewp.space · Reply to Sean Tilley's post

@deadsuperhero Caching responses is always a good advice when it comes to serving content, too.

Peter Müller's avatar
Peter Müller

@pmmueller@mastodon.social

ActivityPub for WordPress
The 2025 Roadmap

»Our goal for this year is to finalize the full ActivityPub experience — so that WordPress can be used as a first-class citizen of the Fediverse.«

This means:
- publishing to the network
- following
- reading
- interacting
- moderating
And all in a way that feels natural for WP users.

Really exciting what @pfefferle, @obenland and the other contributors are creating.

activitypub.blog/2025/06/11/ou

Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

A question for #Fediverse devs: I’m thinking about better ways to document development of the #ActivityPub stack. This would include explanations, demo code, example snippets, and various sections explaining how to build a fully working Fediverse server, with consideration for all of the FEP documents as well.

What do you, as a developer, feel is currently missing? What information would make your life a lot easier?

Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

I can’t know definitively yet…I have to babysit my server and keep an eye on logs. But, I think I may have found the culprit for why I get timeout issues with #ActivityPub and #WordPress.

It might be PHP-FPM. If you’re using Nginx, this is kind of a “glue layer” for making PHP stuff talk to Nginx.

I host most things with Nginx, which sometimes requires configuring workarounds with traditional PHP applications. I was digging around in my logs during the latest server slowdown, and I got some error messages about pm.max_children and pm.start_servers being way too low.

Anyway, raising the amount seems to be helping? More word on this as experiments continue.

Linux Is Best's avatar
Linux Is Best

@Linux@mastodon.au

Fragmentation on the Fediverse is a real problem.

Hypothetically, let’s say I’m an admin. I don’t like "John Doe" (just a random example). Instead of simply blocking John Doe myself, I demand that "Billy Bob" — the admin of his instance — remove him entirely.

Billy Bob refuses, because John Doe hasn’t broken any rules. So, being an egotistical maniac, I blacklist Billy Bob’s entire instance — 5,000+ innocent users who had nothing to do with anything.

I also have 5,000+ users on my instance. Now you’ve got over 10,000 people who can’t communicate, all because of a personal disagreement.

This kind of thing happens far too often on the Fediverse. If you create more than one account (on different instances), you’ll likely discover people you didn’t even know existed — people you’d want to follow but previously couldn’t, due to the growing fragmentation across the network.

The scale of the problem becomes even more obvious when you move to a different instance. You’ll likely find that not everyone you currently follow can be followed from the new site.

The solution?

Right now, it means having more than one account just to keep in touch with everyone you want to follow.

How crazy is that?

Ji Fu's avatar
Ji Fu

@fu@libranet.de

What do you think is the reason chose to turn off by default?
gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

Updating Mastodon: 20 minutes
Updating snac2: 2 minutes

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

This is the first checkin I've done with the API using the new checkin tool I've been working on for the SocialCG geosocial task force (swicg.github.io/geosocial/).

It is pretty neat. I will share more info when the tool is working better, but it feels cool.

onepage.pub/arrive/9lt7vKoZItL

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

#AskFedi do you know anyone with a federated Wordpress site who uses it extensively? Not just for publishing straight to the Fediverse, but also in a social way (aka as a fedi profile)?

I've run into a few roadblocks with mine and I could really use some inspiration 😊​

UPDATE: thank you for all the superb recommendations. I don't think I need any more, I got a clear picture of what I need to do. I'll share more about this soon... Now I need to take my little one to the park ❤️​

#Wordpress #ActivityPub #selfhosting

Paul Chambers's avatar
Paul Chambers

@paul@oldfriends.live · Reply to Jer's post

@nyquildotorg and needs a mechanism where domain names can be recycled. The fact that WordPress alone has no mechanism to allow a domain to exit the fediverse is reason enough. Sometimes servers get bricked and there is no way to go back and self-destruct.

Domains could be validated with a text record in the DNS by the owner of the domain name. If text record ActivityPubKill is true, then it should be trusted as so and defederated.

I'm not sure how this could be done, I don't know the ins and out. Maybe software packages could poll the DNS of failing federated servers and look for a universal or software specific kill tag or a file could be placed somewhere on a server that it looks for when a server fails, esp after 7 days.

Either way, a dns entry or a file on a physical server can be a trusted source as it takes elevated permission by someone in charge of a domain to usually do such a thing.

gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

Updating Mastodon: 20 minutes
Updating snac2: 2 minutes

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

Small quality of life update in ActivityPub for WordPress 7.0.0: You can now auto-approve likes and boosts from the Fediverse! No more manual approval needed if you moderate new comments.

Props @epiphyt for the inspiration.

WordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
ALT text detailsWordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
Rodrigo Pio's avatar
Rodrigo Pio

@rrapio@fosstodon.org

Doctor and Patient in the Fediverse of Madness (love the title)

youtube.com/watch?v=BLyhUp-KKv

Definitely worth your watch!

Thank you @wernerkeil and @javapro for this video.

Just follow the tags to see what it's all about :masto_wink:

Paul Chambers's avatar
Paul Chambers

@paul@oldfriends.live · Reply to Jer's post

@nyquildotorg and needs a mechanism where domain names can be recycled. The fact that WordPress alone has no mechanism to allow a domain to exit the fediverse is reason enough. Sometimes servers get bricked and there is no way to go back and self-destruct.

Domains could be validated with a text record in the DNS by the owner of the domain name. If text record ActivityPubKill is true, then it should be trusted as so and defederated.

I'm not sure how this could be done, I don't know the ins and out. Maybe software packages could poll the DNS of failing federated servers and look for a universal or software specific kill tag or a file could be placed somewhere on a server that it looks for when a server fails, esp after 7 days.

Either way, a dns entry or a file on a physical server can be a trusted source as it takes elevated permission by someone in charge of a domain to usually do such a thing.

Rodrigo Pio's avatar
Rodrigo Pio

@rrapio@fosstodon.org

Doctor and Patient in the Fediverse of Madness (love the title)

youtube.com/watch?v=BLyhUp-KKv

Definitely worth your watch!

Thank you @wernerkeil and @javapro for this video.

Just follow the tags to see what it's all about :masto_wink:

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

This is the first checkin I've done with the API using the new checkin tool I've been working on for the SocialCG geosocial task force (swicg.github.io/geosocial/).

It is pretty neat. I will share more info when the tool is working better, but it feels cool.

onepage.pub/arrive/9lt7vKoZItL

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

This is the first checkin I've done with the API using the new checkin tool I've been working on for the SocialCG geosocial task force (swicg.github.io/geosocial/).

It is pretty neat. I will share more info when the tool is working better, but it feels cool.

onepage.pub/arrive/9lt7vKoZItL

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

This is the first checkin I've done with the API using the new checkin tool I've been working on for the SocialCG geosocial task force (swicg.github.io/geosocial/).

It is pretty neat. I will share more info when the tool is working better, but it feels cool.

onepage.pub/arrive/9lt7vKoZItL

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

This is the first checkin I've done with the API using the new checkin tool I've been working on for the SocialCG geosocial task force (swicg.github.io/geosocial/).

It is pretty neat. I will share more info when the tool is working better, but it feels cool.

onepage.pub/arrive/9lt7vKoZItL

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

This is the first checkin I've done with the API using the new checkin tool I've been working on for the SocialCG geosocial task force (swicg.github.io/geosocial/).

It is pretty neat. I will share more info when the tool is working better, but it feels cool.

onepage.pub/arrive/9lt7vKoZItL

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

To follow up on my C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
stevebate.net/activitypub-clie

Paul Chambers's avatar
Paul Chambers

@paul@oldfriends.live · Reply to Jer's post

@nyquildotorg and needs a mechanism where domain names can be recycled. The fact that WordPress alone has no mechanism to allow a domain to exit the fediverse is reason enough. Sometimes servers get bricked and there is no way to go back and self-destruct.

Domains could be validated with a text record in the DNS by the owner of the domain name. If text record ActivityPubKill is true, then it should be trusted as so and defederated.

I'm not sure how this could be done, I don't know the ins and out. Maybe software packages could poll the DNS of failing federated servers and look for a universal or software specific kill tag or a file could be placed somewhere on a server that it looks for when a server fails, esp after 7 days.

Either way, a dns entry or a file on a physical server can be a trusted source as it takes elevated permission by someone in charge of a domain to usually do such a thing.

Sky's avatar
Sky

@sky@fedimonster.de

Vielleicht kann der @pfefferle das beantworten?

Warum werden manche Hashtags im Profil des Blogs richtig angezeigt und andere als unanklickbarer Normaltext?

Vielleicht kann ja auch jemand anderes helfen?

Das Bild zeigt ein Profil auf einer Mastodon-Instanz (fedi) mit dem Namen meinwegraus.de. Im oberen Bereich ist ein Headerbild zu sehen, das in dunklen Farben gehalten ist. Es zeigt eine stilisierte Zeichnung einer Person mit erhobener Faust, umgeben von Linien, die wie Blitze oder Risse wirken. Die Figur ist in Neonfarben (blau und pink) gezeichnet. Darunter steht in pink-blauer Verlaufsfarbe der Text: meinwegraus.de.

Links unten befindet sich das Profilbild, das dieselbe stilisierte Figur wie im Header zeigt.

Der Profilname lautet: meinwegraus.de
Der Benutzername ist: @fedi@meinwegraus.de

Der Beschreibungstext lautet:

„Dieser Account ist der Blog-Account von meinwegraus.de
Hier geht es um leben mit: #Depressionen #PTBS #Angststörung #Sozialphobie #Abnehmen #Diät #Gewichtsreduktion #OMAD #OMEOD #Intervallfasten #Fasten #IntermittierendesFasten #Zuckerfrei #Essstörung #Esssucht #BingeEating“

Rechts oben befindet sich ein lila Button mit der Aufschrift Entfolgen (der Account wird also bereits verfolgt).

Darunter sind Buttons für Benachrichtigungen, Kopieren der Profil-URL und ein Drei-Punkte-Menü zu sehen. Der Hintergrund ist insgesamt dunkel, die Schrift weiß oder lila.
ALT text detailsDas Bild zeigt ein Profil auf einer Mastodon-Instanz (fedi) mit dem Namen meinwegraus.de. Im oberen Bereich ist ein Headerbild zu sehen, das in dunklen Farben gehalten ist. Es zeigt eine stilisierte Zeichnung einer Person mit erhobener Faust, umgeben von Linien, die wie Blitze oder Risse wirken. Die Figur ist in Neonfarben (blau und pink) gezeichnet. Darunter steht in pink-blauer Verlaufsfarbe der Text: meinwegraus.de. Links unten befindet sich das Profilbild, das dieselbe stilisierte Figur wie im Header zeigt. Der Profilname lautet: meinwegraus.de Der Benutzername ist: @fedi@meinwegraus.de Der Beschreibungstext lautet: „Dieser Account ist der Blog-Account von meinwegraus.de Hier geht es um leben mit: #Depressionen #PTBS #Angststörung #Sozialphobie #Abnehmen #Diät #Gewichtsreduktion #OMAD #OMEOD #Intervallfasten #Fasten #IntermittierendesFasten #Zuckerfrei #Essstörung #Esssucht #BingeEating“ Rechts oben befindet sich ein lila Button mit der Aufschrift Entfolgen (der Account wird also bereits verfolgt). Darunter sind Buttons für Benachrichtigungen, Kopieren der Profil-URL und ein Drei-Punkte-Menü zu sehen. Der Hintergrund ist insgesamt dunkel, die Schrift weiß oder lila.
André Menrath's avatar
André Menrath

@linos@graz.social

A question for all non-Note focused developers and thinkers:

Should we ever think of a way how to embed ActivityPub objects into others (in the content)? E.g. embedding a Question object within a long Article?

@bonfire @pfefferle @smallcircles @evan

Feel free to tag more people in replies!

OptionVoters
No0 (0%)
Yes0 (0%)
Depends0 (0%)
André Menrath's avatar
André Menrath

@linos@graz.social

A question for all non-Note focused developers and thinkers:

Should we ever think of a way how to embed ActivityPub objects into others (in the content)? E.g. embedding a Question object within a long Article?

@bonfire @pfefferle @smallcircles @evan

Feel free to tag more people in replies!

OptionVoters
No0 (0%)
Yes0 (0%)
Depends0 (0%)
André Menrath's avatar
André Menrath

@linos@graz.social

A question for all non-Note focused developers and thinkers:

Should we ever think of a way how to embed ActivityPub objects into others (in the content)? E.g. embedding a Question object within a long Article?

@bonfire @pfefferle @smallcircles @evan

Feel free to tag more people in replies!

OptionVoters
No0 (0%)
Yes0 (0%)
Depends0 (0%)
André Menrath's avatar
André Menrath

@linos@graz.social

A question for all non-Note focused developers and thinkers:

Should we ever think of a way how to embed ActivityPub objects into others (in the content)? E.g. embedding a Question object within a long Article?

@bonfire @pfefferle @smallcircles @evan

Feel free to tag more people in replies!

OptionVoters
No0 (0%)
Yes0 (0%)
Depends0 (0%)
André Menrath's avatar
André Menrath

@linos@graz.social

A question for all non-Note focused developers and thinkers:

Should we ever think of a way how to embed ActivityPub objects into others (in the content)? E.g. embedding a Question object within a long Article?

@bonfire @pfefferle @smallcircles @evan

Feel free to tag more people in replies!

OptionVoters
No0 (0%)
Yes0 (0%)
Depends0 (0%)
André Menrath's avatar
André Menrath

@linos@graz.social

A question for all non-Note focused developers and thinkers:

Should we ever think of a way how to embed ActivityPub objects into others (in the content)? E.g. embedding a Question object within a long Article?

@bonfire @pfefferle @smallcircles @evan

Feel free to tag more people in replies!

OptionVoters
No0 (0%)
Yes0 (0%)
Depends0 (0%)
Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

Small quality of life update in ActivityPub for WordPress 7.0.0: You can now auto-approve likes and boosts from the Fediverse! No more manual approval needed if you moderate new comments.

Props @epiphyt for the inspiration.

WordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
ALT text detailsWordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

Updating Mastodon: 20 minutes
Updating snac2: 2 minutes

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

Small quality of life update in ActivityPub for WordPress 7.0.0: You can now auto-approve likes and boosts from the Fediverse! No more manual approval needed if you moderate new comments.

Props @epiphyt for the inspiration.

WordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
ALT text detailsWordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
Nick Bohle 🇪🇺's avatar
Nick Bohle 🇪🇺

@NickBohle@mastodon.social · Reply to Konstantin Obenland's post

@obenland

When the changelog is a Longread. 6.0.2 to 7.0.0.

github.com/Automattic/wordpres

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

Small quality of life update in ActivityPub for WordPress 7.0.0: You can now auto-approve likes and boosts from the Fediverse! No more manual approval needed if you moderate new comments.

Props @epiphyt for the inspiration.

WordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
ALT text detailsWordPress ActivityPub plugin settings for post interactions, showing options to receive likes, receive reblogs (boosts), and auto approve reactions, with the first two options checked.
Khürt Williams's avatar
Khürt Williams

@khurtwilliams@indieweb.social

Important work happening around HTTP Signatures in the Fediverse. Stronger key validation, better digest handling, clearer test vectors—all steps toward more secure and trustworthy ActivityPub communication.
HTTP Signature Upgrades Coming Soon

activitypub.blog/2025/07/03/ht

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Just now I added a list of protocol bridges to the delightful curated Fediverse Experience list. Check them out at:

delightful.coding.social/delig

The list was moved from delightful-activitypub-development, which will be overhauled (thanks to @nlnet) to fully focus on of new applications and services and evolution of the open standards of the ActivityPub family of social web technologies.

Khürt Williams's avatar
Khürt Williams

@khurtwilliams@indieweb.social

Important work happening around HTTP Signatures in the Fediverse. Stronger key validation, better digest handling, clearer test vectors—all steps toward more secure and trustworthy ActivityPub communication.
HTTP Signature Upgrades Coming Soon

activitypub.blog/2025/07/03/ht

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

🏕️ my adventures in #selfhosting - day 204 (experimenting with Wordpress edition) ⚗️​

A "micro" blog post about how I'm turning my federated Wordpress site into a social hub - thanks to the amazing plugins by @alex :

🔗​: https://elenarossini.com/2025/07/my-adventures-in-self-hosting-day-204-experimenting-with-wordpress-edition/

#MySoCalledSudoLife #Wordpress #ActivityPub #longform

gabriele renzi's avatar
gabriele renzi

@riffraff@mastodon.social

PSA: the plugin for has improved noticeably and now seems to play well with caching. Or perhaps my caching plugin started working well with the activitypub one.

If you run a WordPress blog do link it up to the now! Share it with me too!

You can even see replies and likes, plus reply back, from within the WP dashboard, which is cool.

I would still not suggest it as a replacement for a mastodon account, but it is pretty nice.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Just now I added a list of protocol bridges to the delightful curated Fediverse Experience list. Check them out at:

delightful.coding.social/delig

The list was moved from delightful-activitypub-development, which will be overhauled (thanks to @nlnet) to fully focus on of new applications and services and evolution of the open standards of the ActivityPub family of social web technologies.

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

🏕️ my adventures in #selfhosting - day 204 (experimenting with Wordpress edition) ⚗️​

A "micro" blog post about how I'm turning my federated Wordpress site into a social hub - thanks to the amazing plugins by @alex :

🔗​: https://elenarossini.com/2025/07/my-adventures-in-self-hosting-day-204-experimenting-with-wordpress-edition/

#MySoCalledSudoLife #Wordpress #ActivityPub #longform

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

🏕️ my adventures in #selfhosting - day 204 (experimenting with Wordpress edition) ⚗️​

A "micro" blog post about how I'm turning my federated Wordpress site into a social hub - thanks to the amazing plugins by @alex :

🔗​: https://elenarossini.com/2025/07/my-adventures-in-self-hosting-day-204-experimenting-with-wordpress-edition/

#MySoCalledSudoLife #Wordpress #ActivityPub #longform

gabriele renzi's avatar
gabriele renzi

@riffraff@mastodon.social

PSA: the plugin for has improved noticeably and now seems to play well with caching. Or perhaps my caching plugin started working well with the activitypub one.

If you run a WordPress blog do link it up to the now! Share it with me too!

You can even see replies and likes, plus reply back, from within the WP dashboard, which is cool.

I would still not suggest it as a replacement for a mastodon account, but it is pretty nice.

Todd Alström | BeerAdvocate's avatar
Todd Alström | BeerAdvocate

@toddalstrom@mastodon.social · Reply to Todd Alström | BeerAdvocate's post

More odd behavior…

If a Threads user with Fediverse sharing enabled mentions @mosseri in a post the link to his account fails, but will open in a browser / the Threads app.

Mentions from Mastodon successfully link to his account.

@threads

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social · Reply to lproven's post

Hi @lproven,
nice! I'm using several ​s for personal (scaled to n=1) web applications - be it (ephemeral) qr.mro.name, mro.name/g/u28br conversion, a guestbook codeberg.org/jugendhacktlab.qd, a personal server @aSeppoToTry or the hacky video-office-hours reservation system mro.name/sprechstunde. Once there even was a proof of concept blog.mro.name/2022/08/pwned-di.
They're deployments running on (except qrcodes and HaveIBeenPwnd).

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social · Reply to lproven's post

Hi @lproven,
nice! I'm using several ​s for personal (scaled to n=1) web applications - be it (ephemeral) qr.mro.name, mro.name/g/u28br conversion, a guestbook codeberg.org/jugendhacktlab.qd, a personal server @aSeppoToTry or the hacky video-office-hours reservation system mro.name/sprechstunde. Once there even was a proof of concept blog.mro.name/2022/08/pwned-di.
They're deployments running on (except qrcodes and HaveIBeenPwnd).

naturzukunft's avatar
naturzukunft

@naturzukunft@mastodon.social

It's very annoying, but it's also good to customize your environment. At the moment I'm about to start with docker again and it's scary how many problems I have with the environment.
Although I test a lot, there are still gaps in the integration. Or rather gaps again, I already had integration tests that used test containers. It's just so time-consuming that I deactivated it at some point.

naturzukunft's avatar
naturzukunft

@naturzukunft@mastodon.social

It's very annoying, but it's also good to customize your environment. At the moment I'm about to start with docker again and it's scary how many problems I have with the environment.
Although I test a lot, there are still gaps in the integration. Or rather gaps again, I already had integration tests that used test containers. It's just so time-consuming that I deactivated it at some point.

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social · Reply to lproven's post

Hi @lproven,
nice! I'm using several ​s for personal (scaled to n=1) web applications - be it (ephemeral) qr.mro.name, mro.name/g/u28br conversion, a guestbook codeberg.org/jugendhacktlab.qd, a personal server @aSeppoToTry or the hacky video-office-hours reservation system mro.name/sprechstunde. Once there even was a proof of concept blog.mro.name/2022/08/pwned-di.
They're deployments running on (except qrcodes and HaveIBeenPwnd).

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to wakest ⁂'s post

@liaizon @aschrijver

Thanks. I cross-referenced this in another post pointing out improvements for the plugin..

socialhub.activitypub.rocks/t/

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

To follow up on my C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
stevebate.net/activitypub-clie

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Prof Heino Falcke's avatar
Prof Heino Falcke

@hfalcke@mastodon.social

I am looking for experts/#developers who are familiar with and who might be willing to chat with me.

I have started talking with parts of my network (mainly in D and NL), about how we could make the more interesting for content providers and main stream media. This also means attracting ordinary users to join and to find fair and simple ways to support content providers (without ).
I have some ideas, but now need more expertise and a deeper look under the hood.

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

To follow up on my C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
stevebate.net/activitypub-clie

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

To follow up on my C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
stevebate.net/activitypub-clie

silverpill's avatar
silverpill

@silverpill@mitra.social

FEP-9098: Custom emojis has been published.

#FEP #ActivityPub

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

To follow up on my C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
stevebate.net/activitypub-clie

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

To follow up on my C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
stevebate.net/activitypub-clie

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to marius's post

@mariusor @rimu

This looks to be a fabulous candidate for an 😃

socialhub.activitypub.rocks/c/

Rimu's avatar
Rimu

@rimu@mastodon.nzoss.nz

Today I coded something I've been dreaming about for many months - a solution to the scaling problem.

The problem is that if 20 people cast 5 votes and those votes are federated to 500 servers, the instance hosting the community needs to do 20 * 5 * 500 = 50,000 network requests.

The solution is to bundle the activity up into chunks. I describe the solution and how does it here peertube.wtf/w/v5aWpxjS2P4pJSn (probably only of interest to developers).

Rimu's avatar
Rimu

@rimu@mastodon.nzoss.nz

Today I coded something I've been dreaming about for many months - a solution to the scaling problem.

The problem is that if 20 people cast 5 votes and those votes are federated to 500 servers, the instance hosting the community needs to do 20 * 5 * 500 = 50,000 network requests.

The solution is to bundle the activity up into chunks. I describe the solution and how does it here peertube.wtf/w/v5aWpxjS2P4pJSn (probably only of interest to developers).

Rimu's avatar
Rimu

@rimu@mastodon.nzoss.nz

Today I coded something I've been dreaming about for many months - a solution to the scaling problem.

The problem is that if 20 people cast 5 votes and those votes are federated to 500 servers, the instance hosting the community needs to do 20 * 5 * 500 = 50,000 network requests.

The solution is to bundle the activity up into chunks. I describe the solution and how does it here peertube.wtf/w/v5aWpxjS2P4pJSn (probably only of interest to developers).

Rimu's avatar
Rimu

@rimu@mastodon.nzoss.nz

Today I coded something I've been dreaming about for many months - a solution to the scaling problem.

The problem is that if 20 people cast 5 votes and those votes are federated to 500 servers, the instance hosting the community needs to do 20 * 5 * 500 = 50,000 network requests.

The solution is to bundle the activity up into chunks. I describe the solution and how does it here peertube.wtf/w/v5aWpxjS2P4pJSn (probably only of interest to developers).

Rimu's avatar
Rimu

@rimu@mastodon.nzoss.nz

Today I coded something I've been dreaming about for many months - a solution to the scaling problem.

The problem is that if 20 people cast 5 votes and those votes are federated to 500 servers, the instance hosting the community needs to do 20 * 5 * 500 = 50,000 network requests.

The solution is to bundle the activity up into chunks. I describe the solution and how does it here peertube.wtf/w/v5aWpxjS2P4pJSn (probably only of interest to developers).

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to LisPi's post

@lispi314 @SpaceLifeForm

I collected some notes on C2S fyi..

codeberg.org/fediverse/delight

LisPi's avatar
LisPi

@lispi314@udongein.xyz

Updating #ActivityPub objects and interactions seem to be somewhat complicated.

Many implementations incompletely support JSON-LD so piece-meal updating is not great, and implementations seem to have no ability to signal to eachother whether they do have such support (providing a limited context-set for interoperability if lacking support for different contexts, etc).

This makes me wonder how issues with the ActivityPub protocol are supposed to get addressed.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
LisPi's avatar
LisPi

@lispi314@udongein.xyz

Updating #ActivityPub objects and interactions seem to be somewhat complicated.

Many implementations incompletely support JSON-LD so piece-meal updating is not great, and implementations seem to have no ability to signal to eachother whether they do have such support (providing a limited context-set for interoperability if lacking support for different contexts, etc).

This makes me wonder how issues with the ActivityPub protocol are supposed to get addressed.
silverpill's avatar
silverpill

@silverpill@mitra.social

FEP-9098: Custom emojis has been published.

#FEP #ActivityPub

silverpill's avatar
silverpill

@silverpill@mitra.social

FEP-9098: Custom emojis has been published.

#FEP #ActivityPub

silverpill's avatar
silverpill

@silverpill@mitra.social

FEP-9098: Custom emojis has been published.

#FEP #ActivityPub

silverpill's avatar
silverpill

@silverpill@mitra.social

FEP-9098: Custom emojis has been published.

#FEP #ActivityPub

Claudius's avatar
Claudius

@claudius@darmstadt.social · Reply to Claudius's post

Sometimes it really does help if a lot of people comment. The issue was reopened by :

gitlab.com/groups/gitlab-org/-

Claudius's avatar
Claudius

@claudius@darmstadt.social · Reply to Claudius's post

Sometimes it really does help if a lot of people comment. The issue was reopened by :

gitlab.com/groups/gitlab-org/-

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Just installed the fedify CLI tool on my Mac. Very useful tool for AP developers and tinkerers alike.

You can ask to to look up an AP object and it returns the response. Cool!

`fedify lookup spark.box464.social/pub/actors

fedify.dev/cli

Thanks, @fedify

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Just installed the fedify CLI tool on my Mac. Very useful tool for AP developers and tinkerers alike.

You can ask to to look up an AP object and it returns the response. Cool!

`fedify lookup spark.box464.social/pub/actors

fedify.dev/cli

Thanks, @fedify

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Just installed the fedify CLI tool on my Mac. Very useful tool for AP developers and tinkerers alike.

You can ask to to look up an AP object and it returns the response. Cool!

`fedify lookup spark.box464.social/pub/actors

fedify.dev/cli

Thanks, @fedify

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Just installed the fedify CLI tool on my Mac. Very useful tool for AP developers and tinkerers alike.

You can ask to to look up an AP object and it returns the response. Cool!

`fedify lookup spark.box464.social/pub/actors

fedify.dev/cli

Thanks, @fedify

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Just installed the fedify CLI tool on my Mac. Very useful tool for AP developers and tinkerers alike.

You can ask to to look up an AP object and it returns the response. Cool!

`fedify lookup spark.box464.social/pub/actors

fedify.dev/cli

Thanks, @fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz

"But under the hood, the protocol doesn’t use full mentions at all. Instead, it uses actor IDs."

The actor ID for my main account is mastodon.social/users/crepels. In my case, there is a direct translation between the full mention and the actor ID, but that doesn’t have to be the case."

@crepels, 2023

seb.jambor.dev/posts/understan

Intriguing. So in theory, the Actor ID for a fediverse account could also be represented in an app as @username@email.service or @username@xmpp.service 🤔

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
Todd Alström | BeerAdvocate's avatar
Todd Alström | BeerAdvocate

@toddalstrom@mastodon.social

Just got my first follower from Threads.

Feels weird.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-04

Servers

- snac v2.79
- Mastodon v4.3.9
- Honk v1.5.2
- Activity-Relay v2.0.9
- Vernissage Server v1.18.0
- kmyblue v18.2
- Lemmy Development Update June 2025
- Mastodon 4.4 for Developers
- Forgejo monthly report - June 2025
- HTTP Signature Upgrades Coming Soon (ActivityPub for WordPress)
- Decodon: Media-focused fork of Mastodon that supports only private/followers-only accounts

Clients

- Pachli v2.14.0
- Voyager v2.37.0
- Blorp v1.8.2
- Tesseract v1.4.40
- pl-fe change summary

Tools and Plugins

- FIRES Server v0.3.3

For developers

- ActivityPods v2.2.0
- Fedialgo v0.79.5

Protocol

- FEP-c648: Blocked Collection (Final comments)

Articles

- Digital Belonging: Why Language and Locality Matter
- The State of Local-Only Fediverse Posts (WIP)
- Fediverse Report – #123

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197b339-bed8-6a86-c62f-2e922ee73efd

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

OSC京都2025でどちらの発表を聞きたいですか?

8月3日のOSC京都で10分間のセミナー発表をすることになりました。二つのテーマで迷っているので、皆さんのご意見をお聞かせください!

どちらのテーマに興味がありますか?

OptionVoters
Fedify CLI:ActivityPubデバッグツール13 (50%)
BotKit:誰でも作れるActivityPubボット13 (50%)
Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz

"But under the hood, the protocol doesn’t use full mentions at all. Instead, it uses actor IDs."

The actor ID for my main account is mastodon.social/users/crepels. In my case, there is a direct translation between the full mention and the actor ID, but that doesn’t have to be the case."

@crepels, 2023

seb.jambor.dev/posts/understan

Intriguing. So in theory, the Actor ID for a fediverse account could also be represented in an app as @username@email.service or @username@xmpp.service 🤔

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-04

Servers

- snac v2.79
- Mastodon v4.3.9
- Honk v1.5.2
- Activity-Relay v2.0.9
- Vernissage Server v1.18.0
- kmyblue v18.2
- Lemmy Development Update June 2025
- Mastodon 4.4 for Developers
- Forgejo monthly report - June 2025
- HTTP Signature Upgrades Coming Soon (ActivityPub for WordPress)
- Decodon: Media-focused fork of Mastodon that supports only private/followers-only accounts

Clients

- Pachli v2.14.0
- Voyager v2.37.0
- Blorp v1.8.2
- Tesseract v1.4.40
- pl-fe change summary

Tools and Plugins

- FIRES Server v0.3.3

For developers

- ActivityPods v2.2.0
- Fedialgo v0.79.5

Protocol

- FEP-c648: Blocked Collection (Final comments)

Articles

- Digital Belonging: Why Language and Locality Matter
- The State of Local-Only Fediverse Posts (WIP)
- Fediverse Report – #123

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197b339-bed8-6a86-c62f-2e922ee73efd

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Haven't turned on Federation yet, but my Bonfire instance is looking good. My second install of Bonfire. I can tell you two things: Installation was much easier this time, and performance is much better.

One note, Bonfire recommends a hungry 8 GB of memory to run, but with that amount, it runs nicely so far. I'll keep you updated, hoping to turn federation on by next weekend. (This will be an invite only instance for brave individuals that want to assist with testing)

A screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
ALT text detailsA screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
kik's avatar
kik

@kik@techhub.social

Crisis averted, reopened the epic on / implementation. :)

They made it clear, though, that they're not going to do it themselves in any foreseeable future, their "current focus isn't in this area", so it's up to the community to implement it. As I mentioned in the issue, I won't be able to come back to it until I'm done bootstraping the business I'm working on, so anyone who wants to see it done faster should feel free to jump in.

gitlab.com/groups/gitlab-org/-

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-04

Servers

- snac v2.79
- Mastodon v4.3.9
- Honk v1.5.2
- Activity-Relay v2.0.9
- Vernissage Server v1.18.0
- kmyblue v18.2
- Lemmy Development Update June 2025
- Mastodon 4.4 for Developers
- Forgejo monthly report - June 2025
- HTTP Signature Upgrades Coming Soon (ActivityPub for WordPress)
- Decodon: Media-focused fork of Mastodon that supports only private/followers-only accounts

Clients

- Pachli v2.14.0
- Voyager v2.37.0
- Blorp v1.8.2
- Tesseract v1.4.40
- pl-fe change summary

Tools and Plugins

- FIRES Server v0.3.3

For developers

- ActivityPods v2.2.0
- Fedialgo v0.79.5

Protocol

- FEP-c648: Blocked Collection (Final comments)

Articles

- Digital Belonging: Why Language and Locality Matter
- The State of Local-Only Fediverse Posts (WIP)
- Fediverse Report – #123

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197b339-bed8-6a86-c62f-2e922ee73efd

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-04

Servers

- snac v2.79
- Mastodon v4.3.9
- Honk v1.5.2
- Activity-Relay v2.0.9
- Vernissage Server v1.18.0
- kmyblue v18.2
- Lemmy Development Update June 2025
- Mastodon 4.4 for Developers
- Forgejo monthly report - June 2025
- HTTP Signature Upgrades Coming Soon (ActivityPub for WordPress)
- Decodon: Media-focused fork of Mastodon that supports only private/followers-only accounts

Clients

- Pachli v2.14.0
- Voyager v2.37.0
- Blorp v1.8.2
- Tesseract v1.4.40
- pl-fe change summary

Tools and Plugins

- FIRES Server v0.3.3

For developers

- ActivityPods v2.2.0
- Fedialgo v0.79.5

Protocol

- FEP-c648: Blocked Collection (Final comments)

Articles

- Digital Belonging: Why Language and Locality Matter
- The State of Local-Only Fediverse Posts (WIP)
- Fediverse Report – #123

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197b339-bed8-6a86-c62f-2e922ee73efd

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-07-04

Servers

- snac v2.79
- Mastodon v4.3.9
- Honk v1.5.2
- Activity-Relay v2.0.9
- Vernissage Server v1.18.0
- kmyblue v18.2
- Lemmy Development Update June 2025
- Mastodon 4.4 for Developers
- Forgejo monthly report - June 2025
- HTTP Signature Upgrades Coming Soon (ActivityPub for WordPress)
- Decodon: Media-focused fork of Mastodon that supports only private/followers-only accounts

Clients

- Pachli v2.14.0
- Voyager v2.37.0
- Blorp v1.8.2
- Tesseract v1.4.40
- pl-fe change summary

Tools and Plugins

- FIRES Server v0.3.3

For developers

- ActivityPods v2.2.0
- Fedialgo v0.79.5

Protocol

- FEP-c648: Blocked Collection (Final comments)

Articles

- Digital Belonging: Why Language and Locality Matter
- The State of Local-Only Fediverse Posts (WIP)
- Fediverse Report – #123

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0197b339-bed8-6a86-c62f-2e922ee73efd

kik's avatar
kik

@kik@techhub.social

Crisis averted, reopened the epic on / implementation. :)

They made it clear, though, that they're not going to do it themselves in any foreseeable future, their "current focus isn't in this area", so it's up to the community to implement it. As I mentioned in the issue, I won't be able to come back to it until I'm done bootstraping the business I'm working on, so anyone who wants to see it done faster should feel free to jump in.

gitlab.com/groups/gitlab-org/-

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

And just finished writing a comprehensive contributor guide for the 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 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 developers!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

안내

이 문서는 기본적으로 오픈 소스 컨트리뷰션 아카데미 참여형 프로그램을 진행하게 된 멘티들을 위한 것입니다만, Fedify 프로젝트에 기여하고 싶은 분들이라면 얼마든지 활용하셔도 좋습니다.

안녕하세요. 오픈 소스 컨트리뷰션 아카데미 참여형 프로그램에서 Fedify 프로젝트를 함께 할 멘토 홍민희입니다.

Fedify 프로젝트에 참여하시게 된 것을 진심으로 환영합니다. 본 문서에서는 여러분이 앞으로 Fedify 프로젝트에 기여하기 위해서 알고 준비해야 하는 것들을 정리했습니다. 조금 긴 내용이 될 수도 있지만, 차근차근 읽어보시고 따라해야 할 과제는 따라해 주시기 바랍니다. 본 문서에 나온 과제들은 본격적인 기여를 위해 반드시 선행되어야 합니다.

소통 채널

중요

OSSCA 자체 Discord 서버에도 초대되셨을 것입니다만, 그곳에서는 행사에 관한 이야기만 주로 하게 될 겁니다. 실제 기여와 개발에 관련된 이야기는 지금부터 설명할 Fedify 프로젝트의 Discord 서버에서 이뤄지게 됩니다.

가장 먼저 해야 할 것은 Fedify 프로젝트의 Discord 서버에 입장하는 것입니다. 만약 아직 Discord 계정이 없다면 하나 만드세요. 꽤 많은 오픈 소스 프로젝트들이 Discord에서 소통을 합니다. Discord 계정을 만들어 두면 앞으로 다양한 오픈 소스 프로젝트에 기여할 때 쓸모가 많을 것입니다.

Fedify 프로젝트의 Discord 서버에 입장하면, 다음과 같은 질문이 뜹니다:

What language do you speak? どの言語を話しますか? 어떤 언어를 쓰시나요?

그러면 한국어를 포함해 자신이 이해할 수 있는 언어들을 선택하시면 됩니다. 그러면 여러 채널들이 보이게 되는데, 그 중에서 여러분이 주로 이용하게 될 채널은 #fedify-dev-ko 채널입니다.

본 문서를 읽고 따라하면서 중간에 어려움이 있거나 막히는 부분이 있으면 해당 채널에서 편하게 질문하시면 됩니다.

프로젝트 관련해서 궁금한 점은 사소한 것이라도 Discord 서버에서 질문 주세요. “시간이 날 때 천천히 해결해야지”보다는 일단 물어보는게 낫습니다. 특히 초반의 많은 문제는, 보통 질문을 많이 하면 빨리 해결됩니다. 시간을 정해두세요. 이를테면 30분으로 정했으면 30분 내로 해결이 안되면 일단 질문을 합시다.

과제

Discord 서버에 입장하신 뒤, #fedify-dev-ko 채널에서 간단히 자기 소개를 해 주세요. 본인의 이름과 GitHub 아이디를 꼭 알려주시기 바랍니다.

권고

원활하고 즉시적인 소통을 위해서는 모바일 앱으로 알림을 받을 수 있어야 합니다. 본인의 스마트폰에 Discord 앱을 설치하고 로그인한 뒤, 알림을 허용해 주세요. 랩톱 및 데스크톱 환경에서도 Discord 앱을 설치하고 항상 실행해 두실 것을 권합니다.

권고

가능하다면 Discord 계정의 아바타를 GitHub 계정의 프로필 사진과 통일해 주세요. 멘티가 워낙 많기 때문에 누가 누군지 기억하기 어렵기 때문입니다. 특히, 아무런 이미지도 설정해 두지 않은 분들은 아무 그림이라도 좋으니 시인성을 위해 설정을 부탁드립니다.

연합우주(fediverse)란?

안내

이미 연합우주나 ActivityPub에 대해 익숙하신 분들은 설명은 건너 뛰시고 이 섹션 마지막의 과제만 하셔도 괜찮습니다.

Fedify 프로젝트가 어떤 프로젝트인지 이해하기 위해서는, 우선 페디버스(fediverse), 즉 한국어로 연합우주에 대해 기본적인 이해를 갖출 필요가 있습니다.

종래의 중앙집권적인 SNS들은 크게 두 가지 특징이 있습니다. 첫째로, SNS에 올리는 사용자들의 모든 데이터를 특정 기업이 사유한다는 것입니다. 둘째로, 서로 다른 SNS끼리는 소통할 수 없다는 것입니다. 특히, 두번째 특징은 이메일을 생각해 보면 아주 자연스러운 것은 아니라는 것을 알 수 있습니다. 네이버 메일을 쓰는 사람이 Gmail을 쓰는 사람과 소통할 수 없을까요? 그렇지 않지요. 하지만 Instagram 사용자는 X (舊 Twitter) 사용자와 소통할 수 없습니다.

이러한 문제를 해결하고자 나온 대안 SNS들이 있습니다. Mastodon이나 Pixelfed 같은 것들이 그렇습니다. 그리고 이러한 SNS들은 누구라도 자신의 서버에 설치가 가능합니다. 실제로 홈 서버에서 돌아가는 Mastodon 서버도 꽤 많습니다. 물론, 직접 서버를 운영하고 싶지 않은 대부분의 사람들에게는 대형 서버라는 선택지도 있습니다. 이를테면, Mastodon 서버 중에서 가장 사용자가 많은 서버인 mastodon.social은 Mastodon 개발 팀이 직접 운영하는 서버입니다.

하지만 이런 의문이 드실 수 있습니다. 자신의 홈 서버에 Mastodon을 설치해봤자 혼자 쓰는 일기장이 아닌가? 사실, Mastodon 서버들은 서로 소통이 가능합니다. 마치 이메일과도 같습니다. 자신의 홈 서버에 이메일 서버를 설치하여 자신만의 이메일 주소를 만들어도, 네이버 메일이나 Gmail과 서로 메일을 주고 받을 수 있는 것처럼요. 실제로, Mastodon의 계정 이름은 이메일 주소와 비슷하게 생겼습니다:

@username@server.com

이렇게 서로 다른 Mastodon 서버끼리 소통할 수 있도록 고안된 표준이 바로 ActivityPub 프로토콜입니다. 참고로, 이 ActivityPub 프로토콜은 Mastodon 프로젝트가 독자적으로 정한 게 아니라, W3C에서 웹 표준으로 정한 것입니다. 따라서 Mastodon 뿐만 아니라, Pixelfed 등 ActivityPub을 구현하는 다른 소프트웨어들도 서로 소통이 됩니다. Mastodon에서 Pixelfed로 댓글 다는 것도 되고, Pixelfed 사용자가 Mastodon 사용자를 팔로하는 것도 됩니다.

이렇게 서로 다른 SNS 소프트웨어, 사로 다른 서버끼리 자유롭게 소통이 가능한 구조를 연합(federation)이라고 부릅니다. 어떻게 보면, 이렇게 연합된 서로 다른 SNS들을 모두 합쳐서 하나의 SNS라고 볼 수도 있습니다. 이를 부르는 말이 바로 연합우주, 페디버스입니다.

연합우주는 현재도 꾸준히 커 가고 있습니다. 최근에는 Meta의 Threads도 ActivityPub을 구현하게 되었고, WordPress도 ActivityPub 플러그인을 공식적으로 개발했습니다. 특히, 기존의 연합우주 소프트웨어들은 각자의 서버에 직접 설치할 수 있는 오픈 소스 소프트웨어였던 것에 반해, Threads는 오픈 소스가 아님에도 ActivityPub을 구현했다는 점에서 상당히 이례적이라고 할 수 있습니다. 이런 방식의 연합도 가능하다는 것이죠.

안내

연합우주에 관해 좀 더 자세히 알고 싶어지셨다면, 〈연합우주(fediverse)와 ActivityPub 프로토콜 이해하기: 개발자를 위한 가이드〉라는 글도 읽어보시면 좋습니다.

과제

아직 연합우주를 경험해 본 적 없다면, 계정을 하나 만들어 봅시다. 계정을 만들기 위해서는 어떤 소프트웨어를 쓸 지 먼저 정해야 합니다. MastodonMisskey는 일종의 X처럼 단문을 중심으로 한 SNS입니다. Pixelfed는 Instagram처럼 사진을 중심으로 한 SNS입니다. Meta의 Threads도 있습니다. 현재 읽고 계시는 이 글이 올라온 Hackers' Pub도 사실은 연합우주의 일부로서, 소프트웨어 개발자들을 위한 SNS입니다. 이 중 어떤 것을 선택하시든 서로 소통하는 데에는 문제가 없습니다.

만약 Mastodon이나 Misskey, Pixelfed를 선택하셨다면, 서버를 고르셔야 합니다. (물론, 서버를 직접 구축하시는 것도 괜찮습니다. 아마 많은 걸 배우실 수 있을 겁니다.) 무슨 서버를 골라야 할 지 모르시겠다면, Mastodon의 경우 silicon.moe 서버를, Misskey의 경우 stella.place 서버를, Pixelfed의 경우 chueok.pics 서버를 권합니다.

만약 Threads를 고르셨다면, 서버를 고를 필요가 없습니다. Threads는 설치형 소프트웨어가 아니라 Meta에서 운영하는 상용 서비스이기 때문입니다. 다만, 설정에 가셔서 페디버스 공유 설정을 켜 주셔야 합니다.

만약 Hackers' Pub을 고르셨다면, 역시 서버를 고를 필요가 없습니다. 단 하나의 서버만 있기 때문입니다. 다만, 초대장이 필요하므로 멘토에게 초대장을 요청하시기 바랍니다.

과제

연합우주 계정이 생기셨다면, 이제 친구를 사귀어야 합니다. 다른 멘티들에게 계정 주소를 물어보고 서로 팔로를 해 보세요. 멘토도 팔로해 보세요. (멘토도 맞팔 하겠습니다.) 멘토의 연합우주 계정 주소는 @hongminhee@hackers.pub입니다.

계정 주소로 팔로하는 방법은 소프트웨어마다 조금씩 다르지만, 대부분의 경우 검색창에 주소를 입력하면 해당 계정이 보입니다. 계정이 보인다면 팔로 버튼을 누르면 됩니다.

과제

생성한 계정으로 멘토의 계정인 @hongminhee@hackers.pub을 멘션하여 글을 써 주세요. 글 내용은 뭐든 좋습니다.

JavaScript와 TypeScript

안내

이미 JavaScript와 TypeScript에 익숙하시다면 이 챕터는 넘기셔도 됩니다.

Fedify 프로젝트는 TypeScript로 작성되어 있습니다. TypeScript는 JavaScript에 정적 타입 검사를 추가한 언어로, 런타임에 버그를 발생시키는 잘못된 코드를 코드 작성 시에 미리 알 수 있도록 도와줍니다. TypeScript를 이해하려면 먼저 JavaScript를 이해해야 합니다.

아직 JavaScript에 익숙하지 않으신 분들은 《모던 JavaScript 튜토리얼》의 파트 1을 읽고 따라해 볼 것을 권합니다. 파트 2 이후의 내용은 Fedify 프로젝트에 기여하는 데에 크게 필요하지 않으므로 읽지 않으셔도 좋습니다.

JavaScript에는 어느 정도 익숙하지만 아직 TypeScript에 익숙하지 않으신 분들께는, 《The TypeScript Handbook》을 읽고 따라해 볼 것을 권합니다. 참고로 핸드북 페이지 우측 상단에 한국어 번역으로 가는 링크가 있습니다.

사실 오픈 소스 프로젝트에 기여하기 위해 반드시 그 프로젝트에서 쓰이는 언어를 속속들이 깊게 이해해야 하는 건 아닙니다. 기여할 때 필요한 만큼만 이해해도 좋으니, 어느 정도 언어 문법에 익숙해졌다 싶으면 실제 Fedify 코드를 읽는 것을 좀 더 추천합니다. 코드를 읽다가 이해가 안 되는 부분이 있으면 해당 언어 문법에 대해 따로 조사하는 식으로 익히시는 게 더 효율적입니다. 정 이해가 안 되는 경우에는 부담 없이 Fedify 프로젝트 Discord 서버의 #fedify-dev-ko 채널에서 질문해 주세요.

Fedify란?

여러분은 웹 서버 애플리케이션을 만들 때 HTTP를 직접 구현하시나요? 아마도 대부분은 그렇지 않을 겁니다. 그러기엔 할 게 너무 많기 때문이죠. 대신 우리는 대부분 Express나 Next.js, Django 같은 웹 프레임워크를 이용해서 개발하게 됩니다.

마찬가지로, 연합우주 SNS 소프트웨어를 구현하려고 할 경우, ActivityPub을 바닥부터 구현하기에는 너무 할 게 많습니다. 따라서 개발을 쉽게 해 줄 프레임워크가 필요한데, 그게 바로 Fedify입니다.

어떤 오픈 소스 프로젝트든 간에, 해당 프로젝트에 기여하기 위해서는 먼저 그 소프트웨어를 써보고 기본적인 기능들을 숙지해야 합니다. 써보지도 않은 소프트웨어에 기여를 하는 것은 무리입니다. 여러분도 Fedify에 기여하기에 앞서 Fedify를 써 볼 필요가 있습니다.

Fedify는 연합우주 소프트웨어를 만드는 도구이므로, Fedify를 사용한다고 하면 연합우주 소프트웨어를 만들어 본다는 뜻이 됩니다. Fedify를 사용하여 작은 ActivityPub 서버 소프트웨어를 만들어 보세요. Fedify를 써 보면서 이해가 안 가거나 중간에 막히는 게 있다면 Discord 서버의 #fedify-help-ko 채널에서 질문하세요.

과제

Fedify를 배우고 써보는 가장 쉬운 방법은 튜토리얼을 읽고 따라하는 것입니다. Fedify 공식 튜토리얼의 한국어판인 〈나만의 연합우주 마이크로블로그 만들기〉를 읽고 그대로 따라서 진행하세요. 빠르면 하루, 느긋하게 하면 사흘 정도 걸립니다. 중간에 막히는 부분이 있으면 멘토에게 부담 없이 질문하세요.

저장소 포크 및 클론

주의

Windows 환경에서 작업하실 때는 (WSL을 사용하지 않는다면) Git의 core.autocrlf 설정을 꺼 주시기 바랍니다:

git config --global core.autocrlf false

안내

Fedify 프로젝트를 Windows 환경에서 개발할 수는 있지만, Linux나 macOS에 비해 편의성이 떨어지는 것도 사실입니다. 가능하면 WSL을 세팅하시고 WSL 안에서 작업하시는 걸 추천드립니다.

Fedify의 GitHub에 저장소가 올라가 있습니다. 해당 저장소를 각자 포크(fork)하신 뒤, 포크한 저장소를 로컬에 클론하세요. 클론하신 뒤, 클론한 로컬 저장소 안에 들어가 업스트림 저장소를 리모트로 추가하시는 것을 권합니다:

git remote add upstream https://github.com/fedify-dev/fedify.git
git fetch upstream
git pull --set-upstream upstream main

개발 환경 설정

Fedify의 개발 환경 설정은 일반적인 JavaScript 프로젝트들에 비해 조금 복잡한 편입니다. Node.js 이외에도 DenoBun 등 여러 런타임을 지원해야 하기 때문인데요. Fedify의 개발을 위해서는 다음 소프트웨어가 시스템에 모두 설치되어 있어야 합니다:

하나하나 직접 설치하셔도 좋습니다만, 귀찮으시다면 mise라는 개발 환경 설정 소프트웨어를 이용하는 것을 권합니다. mise는 정말 다양한 방법으로 설치가 가능합니다:

sudo pacman -S mise      # Arch Linux
brew install mise        # macOS
winget install jdx.mise  # Windows
# 이 외에도 다양한 플랫폼 지원

설치하고 나서 PATH 환경 변수에 mise가 관리하는 소프트웨어들을 추가하도록 mise를 활성화해야 합니다. 활성화하는 방법은 어떤 셸을 사용하느냐에 따라 다릅니다:

zsh
echo 'eval "$(mise activate zsh)"' >> "${ZDOTDIR-$HOME}/.zshrc"
. "${ZDOTDIR-$HOME}/.zshrc"
Bash
echo 'eval "$(mise activate bash)"' >> ~/.bashrc
. ~/.bashrc
PowerShell
echo 'mise activate pwsh | Out-String | Invoke-Expression' >> $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
. $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

대부분의 Linux의 경우 (또는 Windows의 WSL 안에서 작업하는 경우) 별 다른 설정을 하지 않았다면 bash를 쓰고 계실 것입니다. macOS를 쓰시고 별 다른 설정을 하지 않으셨다면 zsh을 쓰고 계실 것입니다. (WSL이 아닌) Windows의 경우에는 명령 프롬프트가 아닌 PowerShell 안에서 작업하셔야 합니다.

mise를 설치하셨다면, 로컬 저장소 안에 들어가 다음 명령어로 필요한 모든 소프트웨어를 한 번에 설치하실 수 있습니다:

mise install --yes

위 명령어를 실행하면 아래와 같이 Fedify 저장소 안에 들어있는 mise 설정 파일을 신뢰하겠냐는 프롬프트가 뜹니다. Yes를 선택해 주세요:

mise config files in ~/fedify are not trusted. Trust them?


   Yes     No     All  

←/→ toggley/n/a/enter submit

개발 환경이 잘 설정되었는지 확인하기 위해 Fedify의 전체 테스트 스위트를 실행해 봅시다. 첫 실행 시 통상 5분 정도 소요됩니다:

deno task test-all

Git 훅도 설치합니다:

deno task hooks:install

마지막으로 실제 편집 환경을 구성해야 합니다. 본 문서에서는 Visual Studio Code를 사용하는 것을 가정하겠습니다만, 같은 Visual Studio Code 계열인 CursorWindsurf에서도 과정은 대동소이합니다.

경고

Visual Studio와 Visual Studio Code는 서로 전혀 다른 별개의 제품이니 주의하세요.

안내

여러분이 Emacs나 Vim의 독실한 신자라면 Visual Studio Code를 사용하고 싶지 않을 수 있습니다. 그런 경우, Deno의 공식 환경 설정 문서를 참고하여 Deno 랭귀지 서버를 설정해 주시기 바랍니다.

우선 로컬 저장소 안에서 code 명령어를 통해 Visual Studio Code를 띄웁니다:

code .     # Visual Studio Code를 사용하는 경우
cursor .   # Cursor를 사용하는 경우
windsurf . # Windsurf를 사용하는 경우

Visual Studio Code 창이 뜨면, 화면 가운데에 다음과 같은 프롬프트 창이 뜹니다:

이 폴더에 있는 파일의 작성자를 신뢰합니까?

프롬프트에서 예, 작성자를 신뢰합니다 버튼을 선택합니다. 그러면 오른쪽 아래에 다음과 같은 작은 프롬프트 창이 뜹니다:

이 리포지토리에 대해 권장되는 Street Side Software, Red Hat 등의 확장을(를) 설치하시겠습니까?

프롬프트에서 설치 버튼을 선택합니다. 그러면 화면 가운데에 다음과 같은 프롬프트 창이 뜹니다:

게시자 “Street Side Software” 신뢰하고 다른 2?

프롬프트에서 게시자 신뢰 및 설치를 선택합니다. 그러면 Visual Studio Code에 Fedify 개발에 필요한 확장들이 설치되게 됩니다.

이로써 Fedify 기여에 필요한 기본적인 개발 환경 설정이 끝났습니다.

JavaScript 런타임

Fedify는 Deno, Node.js, Bun 등 다양한 JavaScript 런타임을 지원해야 합니다. 과연 JavaScript 런타임이 뭘까요?

JavaScript는 비교적 작은 언어입니다. 여러분이 process.exit() 같은 메서드를 활용하신 적 있다면, 이는 JavaScript 자체의 기능이 아니라 Node.js라는 특정한 JavaScript 런타임이 제공하는 기능입니다. 마찬가지로, 웹 브라우저에서 제공하는 DOM API 역시 JavaScript 자체의 기능이 아니라 웹 브라우저라는 (일종의) JavaScript 런타임이 제공하는 기능이라고 볼 수 있습니다.

JavaScript 런타임은 기본적으로 다음과 같은 역할을 합니다:

  • JavaScript 코드를 실제로 실행합니다.
  • JavaScript 언어로 사용 가능한 런타임 API를 제공합니다. 런타임 API로는 console.log(), Node.js의 process.exit(), 웹 브라우저의 window.alert() 같은 것들이 있습니다.
  • 모듈 시스템을 제공합니다. 예를 들어, Node.js는 node_modules/ 디렉터리 기반의 모듈 시스템을 제공하는 반면, Deno에서는 임포트 맵(import map) 기반의 모듈 시스템을 제공합니다. Node.js에서는 npm이나 pnpm, Yarn 등의 패키지 관리자를 사용해야 하지만, Deno나 Bun은 자체적인 패키지 관리자를 제공합니다. 웹 브라우저나 Cloudflare Workers는 패키지 관리자를 제공하지 않기 때문에 번들링이라는 과정을 거쳐야 합니다.

앞서 설명한 모든 것을 속속들이 이해해야 할 필요는 없습니다. 중요한 것은, 같은 JavaScript라고 하더라도 어느 런타임에서 실행하냐에 따라 상당히 다른 방식으로 언어를 사용해야 한다는 점입니다.

그러면 Fedify 프로젝트는 다양한 JavaScript 런타임을 어떻게 동시에 다 지원할 수 있을까요? 크게 두 가지 방법이 있습니다:

  1. 지원해야 하는 JavaScript 런타임 모두에서 공통적으로 지원하는 API만을 사용합니다.
  2. 런타임에 따라 다른 코드를 실행하도록 코드를 여러 벌 작성합니다.

Fedify 프로젝트는 두 가지 방법 모두 사용하고 있으며, 지원하는 모든 JavaScript 런타임에서 테스트 스위트를 실행해서 Fedify의 모든 기능이 각 JavaScript 런타임에서 잘 동작하는지를 검사합니다.

Fedify 저장소의 구조

2025년 7월 현재, Fedify 프로젝트의 저장소는 다음과 같은 구조로 되어 있습니다:

  • fedify/ — Fedify의 핵심인 @fedify/fedify 패키지입니다. 이 패키지는 Deno, Node.js, Bun, Cloudflare Workers 환경에서 동작합니다.
  • cli/ — Fedify 사용자들을 위한 CLI 개발 도구인 @fedify/cli 패키지입니다. 이 패키지는 Deno로만 작성됩니다.
  • amqp/ — AMQP/RabbitMQ 드라이버인 @fedify/amqp 패키지입니다.
  • express/ — Express 프레임워크와의 연동 모듈인 @fedify/express 패키지입니다.
  • h3/ — h3 프레임워크와의 연동 모듈인 @fedify/h3 패키지입니다.
  • postgres/ — PostgreSQL 드라이버인 @fedify/postgres 패키지입니다.
  • redis/ — Redis 드라이버인 @fedify/redis 패키지입니다.
  • docs/ — Fedify의 문서가 포함되어 있습니다. https://fedify.dev/ 웹사이트의 소스 코드입니다. VitePress로 구축되어 있습니다.
  • examples/ — 이름 그대로 Fedify를 사용하는 예제 프로젝트들이 들어 있습니다.
  • scripts/ — 프로젝트 관리를 위한 스크립트들이 들어 있습니다. 대부분의 경우 건드릴 일이 없을 겁니다.

여러분은 주로 fedify/ 디렉터리 및 cli/ 디렉터리에서 작업을 하게 될 것입니다.

린트와 테스트

여느 오픈 소스 프로젝트들이 그렇듯, Fedify 프로젝트도 나름의 코딩 컨벤션과 규칙들이 있습니다. 다행히 이들 대부분은 커밋하기 전에 기계적으로 검사가 가능합니다. 다음 명령어는 현재 프로젝트의 코드가 코딩 컨벤션을 잘 지키고 타입 오류가 없는지 검사합니다:

deno task check

다음 명령어는 코드를 코딩 컨벤션에 맞게 알아서 서식화합니다:

deno fmt

앞서 언급한 것처럼, 다음 명령어는 Fedify 프로젝트의 전체 테스트 스위트를 실행하고 필요한 검사를 수행합니다. 풀 리퀘스트를 올리기 전에 한 번 실행해 보십시오:

deno task test-all

@fedify/fedify 패키지를 수정했을 경우, 수정과 관련된 일부 테스트 코드만 빠르게 실행해 보고 싶을 수 있습니다. 그럴 때는 다음과 같이 -f @fedify/fedify 옵션과 --filter 옵션을 함께 활용해 보세요 (태스크 이름이 test-all이 아니라 test임에 주의하세요):

deno task -f @fedify/fedify test --filter verifyRequest

혹은 -f @fedify/fedify 옵션을 쓰는 대신 직접 fedify/ 디렉터리 안에서 deno task test 명령어를 사용하셔도 됩니다:

cd fedify/
deno task test --filter verifyRequest

참고로 --filter 옵션은 테스트 케이스 이름을 부분 문자열로 검색합니다. 이를테면, 다음과 같은 테스트가 있을 경우:

test("anArbitraryTest", () => {
  // … 생략 …
});

다음과 같은 방식으로 모두 실행이 가능합니다:

deno task -f @fedify/fedify test --filter anArbitraryTest
deno task -f @fedify/fedify test --filter   Arbitrary
deno task -f @fedify/fedify test --filter            Test

앞서 설명한 deno task test 명령어는 Deno 런타임에서 테스트 스위트를 실행합니다. Node.js에서도 잘 돌아가나 확인하기 위해서는 Node.js 런타임에서도 테스트 스위트를 실행해 봐야 합니다. fedify/ 디렉터리 안쪽에서 pnpm test 명령어를 통해 Node.js에서 테스트 스위트를 돌려 볼 수 있습니다:

cd fedify/
pnpm test

일부 테스트만 빠르게 실행해 보고 싶을 경우 --test-name-pattern 옵션을 활용하세요:

pnpm test --test-name-pattern verifyRequest

Bun에서도 잘 돌아가는지 확인하려면 fedify/ 디렉터리 안쪽에서 pnpm test:bun 명령어를 사용하세요:

pnpm test:bun

일부 테스트만 빠르게 실행해 보고 싶을 경우 마찬가지로 --test-name-pattern 옵션을 활용하세요:

pnpm test:bun --test-name-pattern verifyRequest

마지막으로, Cloudflare Workers에서도 잘 돌아가는지 검사해야 합니다. 이 경우에는 pnpm test:cfworkers 명령어를 활용하세요:

pnpm test:cfworkers

일부 테스트만 빠르게 실행해 보고 싶을 경우 인자로 부분 문자열 키워드를 넘기면 됩니다:

pnpm test:cfworkers verifyRequest

사실, 앞서 설명했던 deno task test-all 명령어는 한 번에 Deno, Node.js, Bun, Cloudflare Workers 모두에서 테스트 스위트를 실행하는 명령어입니다.

안내

테스트 실행 시 실패하는 케이스가 있나요? 그것 자체가 기여할 좋은 기회입니다. 실패하는 테스트가 성공하도록 직접 코드를 고쳐서 풀 리퀘스트를 올리셔도 좋고, 이슈 트래커에 이슈를 만들기만 해도 좋은 기여가 됩니다.

@fedify/cli: Fedify CLI 도구

@fedify/cli 패키지는 Fedify를 이용하여 ActivityPub 서버를 구현하는 개발자들을 위한 CLI 편의 도구로서, 주로 ActivityPub 서버 개발을 할 때 디버그나 테스트를 위해 필요한 기능들을 제공합니다. 라이브러리 패키지인 @fedify/fedify와 다르게 @fedify/cli는 패키지는 애플리케이션이기 때문에 코드를 수정한 뒤 바로 사용해 볼 수가 있습니다. 또한, 굳이 여러 런타임을 지원할 필요가 없기 때문에 Deno 환경만 신경쓰면 됩니다.

그런 이유로, @fedify/cli 패키지는 처음 기여하기에 좋습니다. 참고로 @fedif/cli는 CLI 애플리케이션 프레임워크로 Cliffy를 사용하고 있으니, 관련해서 궁금한 게 있다면 Cliffy 문서를 참고해 주세요.

일감 찾기

중요

오픈 소스 프로젝트에서는 할 일을 자발적으로 찾아야 합니다. 직장이 아니므로, 다른 누군가가 할 일을 할당해 주지 않습니다. 사실, 오픈 소스에서 활발하게 활동하는 프로그래머들은 단순히 소프트웨어 개발 실력이 좋은 게 아니라, 적절한 할 일을 잘 찾아내는 능력이 있습니다. 이 때 “적절하다”는 것은 자신의 실력으로 해낼 수 있을 정도의 난이도면서도 프로젝트에 임팩트를 낼 수 있는 것을 뜻합니다.

대부분의 오픈 소스 프로젝트는 할 일을 이슈 트래커에서 관리합니다. Fedify 역시 GitHub에서 제공하는 이슈 트래커로 할 일들을 관리하고 있습니다. 특별한 이유가 없는 한, 이슈는 기본적으로 영어로 작성되거나, 적어도 영어가 병기되어야 합니다. 영어가 익숙치 않은 분들은 Kagi 번역 등을 활용하시면 될 것 같습니다. 언어 때문에 어려우신 분은 멘토에게 도움을 청하세요.

이슈는 크게 세 종류로 나뉩니다:

피처 (feature)
말 그대로 새로운 기능을 뜻합니다.
버그 (bug)
기존에 있던 기능의 오작동을 뜻합니다.
태스크 (task)
신기능이나 버그 이외의 작업들을 가리킵니다. 예를 들면, 문서 수정 등이 여기에 속합니다.
미분류 (no type)
아직 분류되지 않은 이슈들인데, 이슈는 어떻게든 분류되어야 하므로 보통은 없습니다.

위의 분류와는 별개로, Fedify 이슈 트래커에서는 레이블을 구조화하여 활용하고 있습니다. 대부분의 레이블은 범례/레이블 이름 형식을 따르며, 대표적으로는 다음과 같은 것들이 있습니다:

difficulty/beginner
쉬운 난이도
good first issue
처음 기여하는 사람에게 적합
help wanted
도움 필요
type/documentation
문서 관련

안내

좀 더 자세히 확인하실 분은 전체 레이블 목록을 확인하세요.

여기서 여러분이 가장 주목하셔야 할 레이블은 바로 good first issue입니다. 해당 레이블이 붙은 이슈는 처음 기여하는 사람에게 적합하기 때문에, 여러분의 첫 기여 때 할 일을 찾을 때 도움이 됩니다. 이슈들을 찬찬히 읽어보시고 해 볼 만한 일감을 고르세요. 이슈를 읽어도 이해가 안 될 경우에는 댓글로 질문을 남기거나 멘토에게 질문하세요.

기여해 볼 이슈를 찾으셨다면, 해당 이슈를 이미 다른 사람이 진행중인지 확인하세요. 아무도 진행하고 있지 않다면 진행하겠다는 댓글을 이슈에 달아주세요.

과제

처음 기여할 이슈를 찾아 이슈에 댓글을 달아주세요. 이슈를 못 찾겠다면 멘토에게 도움을 요청하세요. 멘토가 기여할 만한 일을 함께 찾아줄 수 있습니다.

안내

굳이 이슈 트래커에 이미 있는 이슈 중에서만 고를 필요는 없습니다. Fedify를 써 보면서 개선할 부분을 발견하셨다면, 그걸 이슈로 만들어서 직접 해결하셔도 좋습니다. 사실, 오픈 소스의 많은 이슈들이 이슈를 제기한 사람에 의해 해결됩니다.

추가 정보 및 질문

본 문서에서 다루지 못한 내용도 많이 있을 것입니다. 아래 문서들은 부족한 부분을 좀 더 보충해 줄 수 있습니다:

본 문서를 읽다가 혹은 읽고 나서도 궁금한 점이 있다면 얼마든지 멘토에게 질문해 주세요. Discord 서버에서 질문하셔도 좋고, GitHub Discussions에 질문 글을 올리셔도 좋습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

And just finished writing a comprehensive contributor guide for the 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 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 developers!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub

안내

이 문서는 기본적으로 오픈 소스 컨트리뷰션 아카데미 참여형 프로그램을 진행하게 된 멘티들을 위한 것입니다만, Fedify 프로젝트에 기여하고 싶은 분들이라면 얼마든지 활용하셔도 좋습니다.

안녕하세요. 오픈 소스 컨트리뷰션 아카데미 참여형 프로그램에서 Fedify 프로젝트를 함께 할 멘토 홍민희입니다.

Fedify 프로젝트에 참여하시게 된 것을 진심으로 환영합니다. 본 문서에서는 여러분이 앞으로 Fedify 프로젝트에 기여하기 위해서 알고 준비해야 하는 것들을 정리했습니다. 조금 긴 내용이 될 수도 있지만, 차근차근 읽어보시고 따라해야 할 과제는 따라해 주시기 바랍니다. 본 문서에 나온 과제들은 본격적인 기여를 위해 반드시 선행되어야 합니다.

소통 채널

중요

OSSCA 자체 Discord 서버에도 초대되셨을 것입니다만, 그곳에서는 행사에 관한 이야기만 주로 하게 될 겁니다. 실제 기여와 개발에 관련된 이야기는 지금부터 설명할 Fedify 프로젝트의 Discord 서버에서 이뤄지게 됩니다.

가장 먼저 해야 할 것은 Fedify 프로젝트의 Discord 서버에 입장하는 것입니다. 만약 아직 Discord 계정이 없다면 하나 만드세요. 꽤 많은 오픈 소스 프로젝트들이 Discord에서 소통을 합니다. Discord 계정을 만들어 두면 앞으로 다양한 오픈 소스 프로젝트에 기여할 때 쓸모가 많을 것입니다.

Fedify 프로젝트의 Discord 서버에 입장하면, 다음과 같은 질문이 뜹니다:

What language do you speak? どの言語を話しますか? 어떤 언어를 쓰시나요?

그러면 한국어를 포함해 자신이 이해할 수 있는 언어들을 선택하시면 됩니다. 그러면 여러 채널들이 보이게 되는데, 그 중에서 여러분이 주로 이용하게 될 채널은 #fedify-dev-ko 채널입니다.

본 문서를 읽고 따라하면서 중간에 어려움이 있거나 막히는 부분이 있으면 해당 채널에서 편하게 질문하시면 됩니다.

프로젝트 관련해서 궁금한 점은 사소한 것이라도 Discord 서버에서 질문 주세요. “시간이 날 때 천천히 해결해야지”보다는 일단 물어보는게 낫습니다. 특히 초반의 많은 문제는, 보통 질문을 많이 하면 빨리 해결됩니다. 시간을 정해두세요. 이를테면 30분으로 정했으면 30분 내로 해결이 안되면 일단 질문을 합시다.

과제

Discord 서버에 입장하신 뒤, #fedify-dev-ko 채널에서 간단히 자기 소개를 해 주세요. 본인의 이름과 GitHub 아이디를 꼭 알려주시기 바랍니다.

권고

원활하고 즉시적인 소통을 위해서는 모바일 앱으로 알림을 받을 수 있어야 합니다. 본인의 스마트폰에 Discord 앱을 설치하고 로그인한 뒤, 알림을 허용해 주세요. 랩톱 및 데스크톱 환경에서도 Discord 앱을 설치하고 항상 실행해 두실 것을 권합니다.

권고

가능하다면 Discord 계정의 아바타를 GitHub 계정의 프로필 사진과 통일해 주세요. 멘티가 워낙 많기 때문에 누가 누군지 기억하기 어렵기 때문입니다. 특히, 아무런 이미지도 설정해 두지 않은 분들은 아무 그림이라도 좋으니 시인성을 위해 설정을 부탁드립니다.

연합우주(fediverse)란?

안내

이미 연합우주나 ActivityPub에 대해 익숙하신 분들은 설명은 건너 뛰시고 이 섹션 마지막의 과제만 하셔도 괜찮습니다.

Fedify 프로젝트가 어떤 프로젝트인지 이해하기 위해서는, 우선 페디버스(fediverse), 즉 한국어로 연합우주에 대해 기본적인 이해를 갖출 필요가 있습니다.

종래의 중앙집권적인 SNS들은 크게 두 가지 특징이 있습니다. 첫째로, SNS에 올리는 사용자들의 모든 데이터를 특정 기업이 사유한다는 것입니다. 둘째로, 서로 다른 SNS끼리는 소통할 수 없다는 것입니다. 특히, 두번째 특징은 이메일을 생각해 보면 아주 자연스러운 것은 아니라는 것을 알 수 있습니다. 네이버 메일을 쓰는 사람이 Gmail을 쓰는 사람과 소통할 수 없을까요? 그렇지 않지요. 하지만 Instagram 사용자는 X (舊 Twitter) 사용자와 소통할 수 없습니다.

이러한 문제를 해결하고자 나온 대안 SNS들이 있습니다. Mastodon이나 Pixelfed 같은 것들이 그렇습니다. 그리고 이러한 SNS들은 누구라도 자신의 서버에 설치가 가능합니다. 실제로 홈 서버에서 돌아가는 Mastodon 서버도 꽤 많습니다. 물론, 직접 서버를 운영하고 싶지 않은 대부분의 사람들에게는 대형 서버라는 선택지도 있습니다. 이를테면, Mastodon 서버 중에서 가장 사용자가 많은 서버인 mastodon.social은 Mastodon 개발 팀이 직접 운영하는 서버입니다.

하지만 이런 의문이 드실 수 있습니다. 자신의 홈 서버에 Mastodon을 설치해봤자 혼자 쓰는 일기장이 아닌가? 사실, Mastodon 서버들은 서로 소통이 가능합니다. 마치 이메일과도 같습니다. 자신의 홈 서버에 이메일 서버를 설치하여 자신만의 이메일 주소를 만들어도, 네이버 메일이나 Gmail과 서로 메일을 주고 받을 수 있는 것처럼요. 실제로, Mastodon의 계정 이름은 이메일 주소와 비슷하게 생겼습니다:

@username@server.com

이렇게 서로 다른 Mastodon 서버끼리 소통할 수 있도록 고안된 표준이 바로 ActivityPub 프로토콜입니다. 참고로, 이 ActivityPub 프로토콜은 Mastodon 프로젝트가 독자적으로 정한 게 아니라, W3C에서 웹 표준으로 정한 것입니다. 따라서 Mastodon 뿐만 아니라, Pixelfed 등 ActivityPub을 구현하는 다른 소프트웨어들도 서로 소통이 됩니다. Mastodon에서 Pixelfed로 댓글 다는 것도 되고, Pixelfed 사용자가 Mastodon 사용자를 팔로하는 것도 됩니다.

이렇게 서로 다른 SNS 소프트웨어, 사로 다른 서버끼리 자유롭게 소통이 가능한 구조를 연합(federation)이라고 부릅니다. 어떻게 보면, 이렇게 연합된 서로 다른 SNS들을 모두 합쳐서 하나의 SNS라고 볼 수도 있습니다. 이를 부르는 말이 바로 연합우주, 페디버스입니다.

연합우주는 현재도 꾸준히 커 가고 있습니다. 최근에는 Meta의 Threads도 ActivityPub을 구현하게 되었고, WordPress도 ActivityPub 플러그인을 공식적으로 개발했습니다. 특히, 기존의 연합우주 소프트웨어들은 각자의 서버에 직접 설치할 수 있는 오픈 소스 소프트웨어였던 것에 반해, Threads는 오픈 소스가 아님에도 ActivityPub을 구현했다는 점에서 상당히 이례적이라고 할 수 있습니다. 이런 방식의 연합도 가능하다는 것이죠.

안내

연합우주에 관해 좀 더 자세히 알고 싶어지셨다면, 〈연합우주(fediverse)와 ActivityPub 프로토콜 이해하기: 개발자를 위한 가이드〉라는 글도 읽어보시면 좋습니다.

과제

아직 연합우주를 경험해 본 적 없다면, 계정을 하나 만들어 봅시다. 계정을 만들기 위해서는 어떤 소프트웨어를 쓸 지 먼저 정해야 합니다. MastodonMisskey는 일종의 X처럼 단문을 중심으로 한 SNS입니다. Pixelfed는 Instagram처럼 사진을 중심으로 한 SNS입니다. Meta의 Threads도 있습니다. 현재 읽고 계시는 이 글이 올라온 Hackers' Pub도 사실은 연합우주의 일부로서, 소프트웨어 개발자들을 위한 SNS입니다. 이 중 어떤 것을 선택하시든 서로 소통하는 데에는 문제가 없습니다.

만약 Mastodon이나 Misskey, Pixelfed를 선택하셨다면, 서버를 고르셔야 합니다. (물론, 서버를 직접 구축하시는 것도 괜찮습니다. 아마 많은 걸 배우실 수 있을 겁니다.) 무슨 서버를 골라야 할 지 모르시겠다면, Mastodon의 경우 silicon.moe 서버를, Misskey의 경우 stella.place 서버를, Pixelfed의 경우 chueok.pics 서버를 권합니다.

만약 Threads를 고르셨다면, 서버를 고를 필요가 없습니다. Threads는 설치형 소프트웨어가 아니라 Meta에서 운영하는 상용 서비스이기 때문입니다. 다만, 설정에 가셔서 페디버스 공유 설정을 켜 주셔야 합니다.

만약 Hackers' Pub을 고르셨다면, 역시 서버를 고를 필요가 없습니다. 단 하나의 서버만 있기 때문입니다. 다만, 초대장이 필요하므로 멘토에게 초대장을 요청하시기 바랍니다.

과제

연합우주 계정이 생기셨다면, 이제 친구를 사귀어야 합니다. 다른 멘티들에게 계정 주소를 물어보고 서로 팔로를 해 보세요. 멘토도 팔로해 보세요. (멘토도 맞팔 하겠습니다.) 멘토의 연합우주 계정 주소는 @hongminhee@hackers.pub입니다.

계정 주소로 팔로하는 방법은 소프트웨어마다 조금씩 다르지만, 대부분의 경우 검색창에 주소를 입력하면 해당 계정이 보입니다. 계정이 보인다면 팔로 버튼을 누르면 됩니다.

과제

생성한 계정으로 멘토의 계정인 @hongminhee@hackers.pub을 멘션하여 글을 써 주세요. 글 내용은 뭐든 좋습니다.

JavaScript와 TypeScript

안내

이미 JavaScript와 TypeScript에 익숙하시다면 이 챕터는 넘기셔도 됩니다.

Fedify 프로젝트는 TypeScript로 작성되어 있습니다. TypeScript는 JavaScript에 정적 타입 검사를 추가한 언어로, 런타임에 버그를 발생시키는 잘못된 코드를 코드 작성 시에 미리 알 수 있도록 도와줍니다. TypeScript를 이해하려면 먼저 JavaScript를 이해해야 합니다.

아직 JavaScript에 익숙하지 않으신 분들은 《모던 JavaScript 튜토리얼》의 파트 1을 읽고 따라해 볼 것을 권합니다. 파트 2 이후의 내용은 Fedify 프로젝트에 기여하는 데에 크게 필요하지 않으므로 읽지 않으셔도 좋습니다.

JavaScript에는 어느 정도 익숙하지만 아직 TypeScript에 익숙하지 않으신 분들께는, 《The TypeScript Handbook》을 읽고 따라해 볼 것을 권합니다. 참고로 핸드북 페이지 우측 상단에 한국어 번역으로 가는 링크가 있습니다.

사실 오픈 소스 프로젝트에 기여하기 위해 반드시 그 프로젝트에서 쓰이는 언어를 속속들이 깊게 이해해야 하는 건 아닙니다. 기여할 때 필요한 만큼만 이해해도 좋으니, 어느 정도 언어 문법에 익숙해졌다 싶으면 실제 Fedify 코드를 읽는 것을 좀 더 추천합니다. 코드를 읽다가 이해가 안 되는 부분이 있으면 해당 언어 문법에 대해 따로 조사하는 식으로 익히시는 게 더 효율적입니다. 정 이해가 안 되는 경우에는 부담 없이 Fedify 프로젝트 Discord 서버의 #fedify-dev-ko 채널에서 질문해 주세요.

Fedify란?

여러분은 웹 서버 애플리케이션을 만들 때 HTTP를 직접 구현하시나요? 아마도 대부분은 그렇지 않을 겁니다. 그러기엔 할 게 너무 많기 때문이죠. 대신 우리는 대부분 Express나 Next.js, Django 같은 웹 프레임워크를 이용해서 개발하게 됩니다.

마찬가지로, 연합우주 SNS 소프트웨어를 구현하려고 할 경우, ActivityPub을 바닥부터 구현하기에는 너무 할 게 많습니다. 따라서 개발을 쉽게 해 줄 프레임워크가 필요한데, 그게 바로 Fedify입니다.

어떤 오픈 소스 프로젝트든 간에, 해당 프로젝트에 기여하기 위해서는 먼저 그 소프트웨어를 써보고 기본적인 기능들을 숙지해야 합니다. 써보지도 않은 소프트웨어에 기여를 하는 것은 무리입니다. 여러분도 Fedify에 기여하기에 앞서 Fedify를 써 볼 필요가 있습니다.

Fedify는 연합우주 소프트웨어를 만드는 도구이므로, Fedify를 사용한다고 하면 연합우주 소프트웨어를 만들어 본다는 뜻이 됩니다. Fedify를 사용하여 작은 ActivityPub 서버 소프트웨어를 만들어 보세요. Fedify를 써 보면서 이해가 안 가거나 중간에 막히는 게 있다면 Discord 서버의 #fedify-help-ko 채널에서 질문하세요.

과제

Fedify를 배우고 써보는 가장 쉬운 방법은 튜토리얼을 읽고 따라하는 것입니다. Fedify 공식 튜토리얼의 한국어판인 〈나만의 연합우주 마이크로블로그 만들기〉를 읽고 그대로 따라서 진행하세요. 빠르면 하루, 느긋하게 하면 사흘 정도 걸립니다. 중간에 막히는 부분이 있으면 멘토에게 부담 없이 질문하세요.

저장소 포크 및 클론

주의

Windows 환경에서 작업하실 때는 (WSL을 사용하지 않는다면) Git의 core.autocrlf 설정을 꺼 주시기 바랍니다:

git config --global core.autocrlf false

안내

Fedify 프로젝트를 Windows 환경에서 개발할 수는 있지만, Linux나 macOS에 비해 편의성이 떨어지는 것도 사실입니다. 가능하면 WSL을 세팅하시고 WSL 안에서 작업하시는 걸 추천드립니다.

Fedify의 GitHub에 저장소가 올라가 있습니다. 해당 저장소를 각자 포크(fork)하신 뒤, 포크한 저장소를 로컬에 클론하세요. 클론하신 뒤, 클론한 로컬 저장소 안에 들어가 업스트림 저장소를 리모트로 추가하시는 것을 권합니다:

git remote add upstream https://github.com/fedify-dev/fedify.git
git fetch upstream
git pull --set-upstream upstream main

개발 환경 설정

Fedify의 개발 환경 설정은 일반적인 JavaScript 프로젝트들에 비해 조금 복잡한 편입니다. Node.js 이외에도 DenoBun 등 여러 런타임을 지원해야 하기 때문인데요. Fedify의 개발을 위해서는 다음 소프트웨어가 시스템에 모두 설치되어 있어야 합니다:

하나하나 직접 설치하셔도 좋습니다만, 귀찮으시다면 mise라는 개발 환경 설정 소프트웨어를 이용하는 것을 권합니다. mise는 정말 다양한 방법으로 설치가 가능합니다:

sudo pacman -S mise      # Arch Linux
brew install mise        # macOS
winget install jdx.mise  # Windows
# 이 외에도 다양한 플랫폼 지원

설치하고 나서 PATH 환경 변수에 mise가 관리하는 소프트웨어들을 추가하도록 mise를 활성화해야 합니다. 활성화하는 방법은 어떤 셸을 사용하느냐에 따라 다릅니다:

zsh
echo 'eval "$(mise activate zsh)"' >> "${ZDOTDIR-$HOME}/.zshrc"
. "${ZDOTDIR-$HOME}/.zshrc"
Bash
echo 'eval "$(mise activate bash)"' >> ~/.bashrc
. ~/.bashrc
PowerShell
echo 'mise activate pwsh | Out-String | Invoke-Expression' >> $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
. $HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1

대부분의 Linux의 경우 (또는 Windows의 WSL 안에서 작업하는 경우) 별 다른 설정을 하지 않았다면 bash를 쓰고 계실 것입니다. macOS를 쓰시고 별 다른 설정을 하지 않으셨다면 zsh을 쓰고 계실 것입니다. (WSL이 아닌) Windows의 경우에는 명령 프롬프트가 아닌 PowerShell 안에서 작업하셔야 합니다.

mise를 설치하셨다면, 로컬 저장소 안에 들어가 다음 명령어로 필요한 모든 소프트웨어를 한 번에 설치하실 수 있습니다:

mise install --yes

위 명령어를 실행하면 아래와 같이 Fedify 저장소 안에 들어있는 mise 설정 파일을 신뢰하겠냐는 프롬프트가 뜹니다. Yes를 선택해 주세요:

mise config files in ~/fedify are not trusted. Trust them?


   Yes     No     All  

←/→ toggley/n/a/enter submit

개발 환경이 잘 설정되었는지 확인하기 위해 Fedify의 전체 테스트 스위트를 실행해 봅시다. 첫 실행 시 통상 5분 정도 소요됩니다:

deno task test-all

Git 훅도 설치합니다:

deno task hooks:install

마지막으로 실제 편집 환경을 구성해야 합니다. 본 문서에서는 Visual Studio Code를 사용하는 것을 가정하겠습니다만, 같은 Visual Studio Code 계열인 CursorWindsurf에서도 과정은 대동소이합니다.

경고

Visual Studio와 Visual Studio Code는 서로 전혀 다른 별개의 제품이니 주의하세요.

안내

여러분이 Emacs나 Vim의 독실한 신자라면 Visual Studio Code를 사용하고 싶지 않을 수 있습니다. 그런 경우, Deno의 공식 환경 설정 문서를 참고하여 Deno 랭귀지 서버를 설정해 주시기 바랍니다.

우선 로컬 저장소 안에서 code 명령어를 통해 Visual Studio Code를 띄웁니다:

code .     # Visual Studio Code를 사용하는 경우
cursor .   # Cursor를 사용하는 경우
windsurf . # Windsurf를 사용하는 경우

Visual Studio Code 창이 뜨면, 화면 가운데에 다음과 같은 프롬프트 창이 뜹니다:

이 폴더에 있는 파일의 작성자를 신뢰합니까?

프롬프트에서 예, 작성자를 신뢰합니다 버튼을 선택합니다. 그러면 오른쪽 아래에 다음과 같은 작은 프롬프트 창이 뜹니다:

이 리포지토리에 대해 권장되는 Street Side Software, Red Hat 등의 확장을(를) 설치하시겠습니까?

프롬프트에서 설치 버튼을 선택합니다. 그러면 화면 가운데에 다음과 같은 프롬프트 창이 뜹니다:

게시자 “Street Side Software” 신뢰하고 다른 2?

프롬프트에서 게시자 신뢰 및 설치를 선택합니다. 그러면 Visual Studio Code에 Fedify 개발에 필요한 확장들이 설치되게 됩니다.

이로써 Fedify 기여에 필요한 기본적인 개발 환경 설정이 끝났습니다.

JavaScript 런타임

Fedify는 Deno, Node.js, Bun 등 다양한 JavaScript 런타임을 지원해야 합니다. 과연 JavaScript 런타임이 뭘까요?

JavaScript는 비교적 작은 언어입니다. 여러분이 process.exit() 같은 메서드를 활용하신 적 있다면, 이는 JavaScript 자체의 기능이 아니라 Node.js라는 특정한 JavaScript 런타임이 제공하는 기능입니다. 마찬가지로, 웹 브라우저에서 제공하는 DOM API 역시 JavaScript 자체의 기능이 아니라 웹 브라우저라는 (일종의) JavaScript 런타임이 제공하는 기능이라고 볼 수 있습니다.

JavaScript 런타임은 기본적으로 다음과 같은 역할을 합니다:

  • JavaScript 코드를 실제로 실행합니다.
  • JavaScript 언어로 사용 가능한 런타임 API를 제공합니다. 런타임 API로는 console.log(), Node.js의 process.exit(), 웹 브라우저의 window.alert() 같은 것들이 있습니다.
  • 모듈 시스템을 제공합니다. 예를 들어, Node.js는 node_modules/ 디렉터리 기반의 모듈 시스템을 제공하는 반면, Deno에서는 임포트 맵(import map) 기반의 모듈 시스템을 제공합니다. Node.js에서는 npm이나 pnpm, Yarn 등의 패키지 관리자를 사용해야 하지만, Deno나 Bun은 자체적인 패키지 관리자를 제공합니다. 웹 브라우저나 Cloudflare Workers는 패키지 관리자를 제공하지 않기 때문에 번들링이라는 과정을 거쳐야 합니다.

앞서 설명한 모든 것을 속속들이 이해해야 할 필요는 없습니다. 중요한 것은, 같은 JavaScript라고 하더라도 어느 런타임에서 실행하냐에 따라 상당히 다른 방식으로 언어를 사용해야 한다는 점입니다.

그러면 Fedify 프로젝트는 다양한 JavaScript 런타임을 어떻게 동시에 다 지원할 수 있을까요? 크게 두 가지 방법이 있습니다:

  1. 지원해야 하는 JavaScript 런타임 모두에서 공통적으로 지원하는 API만을 사용합니다.
  2. 런타임에 따라 다른 코드를 실행하도록 코드를 여러 벌 작성합니다.

Fedify 프로젝트는 두 가지 방법 모두 사용하고 있으며, 지원하는 모든 JavaScript 런타임에서 테스트 스위트를 실행해서 Fedify의 모든 기능이 각 JavaScript 런타임에서 잘 동작하는지를 검사합니다.

Fedify 저장소의 구조

2025년 7월 현재, Fedify 프로젝트의 저장소는 다음과 같은 구조로 되어 있습니다:

  • fedify/ — Fedify의 핵심인 @fedify/fedify 패키지입니다. 이 패키지는 Deno, Node.js, Bun, Cloudflare Workers 환경에서 동작합니다.
  • cli/ — Fedify 사용자들을 위한 CLI 개발 도구인 @fedify/cli 패키지입니다. 이 패키지는 Deno로만 작성됩니다.
  • amqp/ — AMQP/RabbitMQ 드라이버인 @fedify/amqp 패키지입니다.
  • express/ — Express 프레임워크와의 연동 모듈인 @fedify/express 패키지입니다.
  • h3/ — h3 프레임워크와의 연동 모듈인 @fedify/h3 패키지입니다.
  • postgres/ — PostgreSQL 드라이버인 @fedify/postgres 패키지입니다.
  • redis/ — Redis 드라이버인 @fedify/redis 패키지입니다.
  • docs/ — Fedify의 문서가 포함되어 있습니다. https://fedify.dev/ 웹사이트의 소스 코드입니다. VitePress로 구축되어 있습니다.
  • examples/ — 이름 그대로 Fedify를 사용하는 예제 프로젝트들이 들어 있습니다.
  • scripts/ — 프로젝트 관리를 위한 스크립트들이 들어 있습니다. 대부분의 경우 건드릴 일이 없을 겁니다.

여러분은 주로 fedify/ 디렉터리 및 cli/ 디렉터리에서 작업을 하게 될 것입니다.

린트와 테스트

여느 오픈 소스 프로젝트들이 그렇듯, Fedify 프로젝트도 나름의 코딩 컨벤션과 규칙들이 있습니다. 다행히 이들 대부분은 커밋하기 전에 기계적으로 검사가 가능합니다. 다음 명령어는 현재 프로젝트의 코드가 코딩 컨벤션을 잘 지키고 타입 오류가 없는지 검사합니다:

deno task check

다음 명령어는 코드를 코딩 컨벤션에 맞게 알아서 서식화합니다:

deno fmt

앞서 언급한 것처럼, 다음 명령어는 Fedify 프로젝트의 전체 테스트 스위트를 실행하고 필요한 검사를 수행합니다. 풀 리퀘스트를 올리기 전에 한 번 실행해 보십시오:

deno task test-all

@fedify/fedify 패키지를 수정했을 경우, 수정과 관련된 일부 테스트 코드만 빠르게 실행해 보고 싶을 수 있습니다. 그럴 때는 다음과 같이 -f @fedify/fedify 옵션과 --filter 옵션을 함께 활용해 보세요 (태스크 이름이 test-all이 아니라 test임에 주의하세요):

deno task -f @fedify/fedify test --filter verifyRequest

혹은 -f @fedify/fedify 옵션을 쓰는 대신 직접 fedify/ 디렉터리 안에서 deno task test 명령어를 사용하셔도 됩니다:

cd fedify/
deno task test --filter verifyRequest

참고로 --filter 옵션은 테스트 케이스 이름을 부분 문자열로 검색합니다. 이를테면, 다음과 같은 테스트가 있을 경우:

test("anArbitraryTest", () => {
  // … 생략 …
});

다음과 같은 방식으로 모두 실행이 가능합니다:

deno task -f @fedify/fedify test --filter anArbitraryTest
deno task -f @fedify/fedify test --filter   Arbitrary
deno task -f @fedify/fedify test --filter            Test

앞서 설명한 deno task test 명령어는 Deno 런타임에서 테스트 스위트를 실행합니다. Node.js에서도 잘 돌아가나 확인하기 위해서는 Node.js 런타임에서도 테스트 스위트를 실행해 봐야 합니다. fedify/ 디렉터리 안쪽에서 pnpm test 명령어를 통해 Node.js에서 테스트 스위트를 돌려 볼 수 있습니다:

cd fedify/
pnpm test

일부 테스트만 빠르게 실행해 보고 싶을 경우 --test-name-pattern 옵션을 활용하세요:

pnpm test --test-name-pattern verifyRequest

Bun에서도 잘 돌아가는지 확인하려면 fedify/ 디렉터리 안쪽에서 pnpm test:bun 명령어를 사용하세요:

pnpm test:bun

일부 테스트만 빠르게 실행해 보고 싶을 경우 마찬가지로 --test-name-pattern 옵션을 활용하세요:

pnpm test:bun --test-name-pattern verifyRequest

마지막으로, Cloudflare Workers에서도 잘 돌아가는지 검사해야 합니다. 이 경우에는 pnpm test:cfworkers 명령어를 활용하세요:

pnpm test:cfworkers

일부 테스트만 빠르게 실행해 보고 싶을 경우 인자로 부분 문자열 키워드를 넘기면 됩니다:

pnpm test:cfworkers verifyRequest

사실, 앞서 설명했던 deno task test-all 명령어는 한 번에 Deno, Node.js, Bun, Cloudflare Workers 모두에서 테스트 스위트를 실행하는 명령어입니다.

안내

테스트 실행 시 실패하는 케이스가 있나요? 그것 자체가 기여할 좋은 기회입니다. 실패하는 테스트가 성공하도록 직접 코드를 고쳐서 풀 리퀘스트를 올리셔도 좋고, 이슈 트래커에 이슈를 만들기만 해도 좋은 기여가 됩니다.

@fedify/cli: Fedify CLI 도구

@fedify/cli 패키지는 Fedify를 이용하여 ActivityPub 서버를 구현하는 개발자들을 위한 CLI 편의 도구로서, 주로 ActivityPub 서버 개발을 할 때 디버그나 테스트를 위해 필요한 기능들을 제공합니다. 라이브러리 패키지인 @fedify/fedify와 다르게 @fedify/cli는 패키지는 애플리케이션이기 때문에 코드를 수정한 뒤 바로 사용해 볼 수가 있습니다. 또한, 굳이 여러 런타임을 지원할 필요가 없기 때문에 Deno 환경만 신경쓰면 됩니다.

그런 이유로, @fedify/cli 패키지는 처음 기여하기에 좋습니다. 참고로 @fedif/cli는 CLI 애플리케이션 프레임워크로 Cliffy를 사용하고 있으니, 관련해서 궁금한 게 있다면 Cliffy 문서를 참고해 주세요.

일감 찾기

중요

오픈 소스 프로젝트에서는 할 일을 자발적으로 찾아야 합니다. 직장이 아니므로, 다른 누군가가 할 일을 할당해 주지 않습니다. 사실, 오픈 소스에서 활발하게 활동하는 프로그래머들은 단순히 소프트웨어 개발 실력이 좋은 게 아니라, 적절한 할 일을 잘 찾아내는 능력이 있습니다. 이 때 “적절하다”는 것은 자신의 실력으로 해낼 수 있을 정도의 난이도면서도 프로젝트에 임팩트를 낼 수 있는 것을 뜻합니다.

대부분의 오픈 소스 프로젝트는 할 일을 이슈 트래커에서 관리합니다. Fedify 역시 GitHub에서 제공하는 이슈 트래커로 할 일들을 관리하고 있습니다. 특별한 이유가 없는 한, 이슈는 기본적으로 영어로 작성되거나, 적어도 영어가 병기되어야 합니다. 영어가 익숙치 않은 분들은 Kagi 번역 등을 활용하시면 될 것 같습니다. 언어 때문에 어려우신 분은 멘토에게 도움을 청하세요.

이슈는 크게 세 종류로 나뉩니다:

피처 (feature)
말 그대로 새로운 기능을 뜻합니다.
버그 (bug)
기존에 있던 기능의 오작동을 뜻합니다.
태스크 (task)
신기능이나 버그 이외의 작업들을 가리킵니다. 예를 들면, 문서 수정 등이 여기에 속합니다.
미분류 (no type)
아직 분류되지 않은 이슈들인데, 이슈는 어떻게든 분류되어야 하므로 보통은 없습니다.

위의 분류와는 별개로, Fedify 이슈 트래커에서는 레이블을 구조화하여 활용하고 있습니다. 대부분의 레이블은 범례/레이블 이름 형식을 따르며, 대표적으로는 다음과 같은 것들이 있습니다:

difficulty/beginner
쉬운 난이도
good first issue
처음 기여하는 사람에게 적합
help wanted
도움 필요
type/documentation
문서 관련

안내

좀 더 자세히 확인하실 분은 전체 레이블 목록을 확인하세요.

여기서 여러분이 가장 주목하셔야 할 레이블은 바로 good first issue입니다. 해당 레이블이 붙은 이슈는 처음 기여하는 사람에게 적합하기 때문에, 여러분의 첫 기여 때 할 일을 찾을 때 도움이 됩니다. 이슈들을 찬찬히 읽어보시고 해 볼 만한 일감을 고르세요. 이슈를 읽어도 이해가 안 될 경우에는 댓글로 질문을 남기거나 멘토에게 질문하세요.

기여해 볼 이슈를 찾으셨다면, 해당 이슈를 이미 다른 사람이 진행중인지 확인하세요. 아무도 진행하고 있지 않다면 진행하겠다는 댓글을 이슈에 달아주세요.

과제

처음 기여할 이슈를 찾아 이슈에 댓글을 달아주세요. 이슈를 못 찾겠다면 멘토에게 도움을 요청하세요. 멘토가 기여할 만한 일을 함께 찾아줄 수 있습니다.

안내

굳이 이슈 트래커에 이미 있는 이슈 중에서만 고를 필요는 없습니다. Fedify를 써 보면서 개선할 부분을 발견하셨다면, 그걸 이슈로 만들어서 직접 해결하셔도 좋습니다. 사실, 오픈 소스의 많은 이슈들이 이슈를 제기한 사람에 의해 해결됩니다.

추가 정보 및 질문

본 문서에서 다루지 못한 내용도 많이 있을 것입니다. 아래 문서들은 부족한 부분을 좀 더 보충해 줄 수 있습니다:

본 문서를 읽다가 혹은 읽고 나서도 궁금한 점이 있다면 얼마든지 멘토에게 질문해 주세요. Discord 서버에서 질문하셔도 좋고, GitHub Discussions에 질문 글을 올리셔도 좋습니다.

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

Hello #Fediverse and Happy New Year!

I'd like to mark the start of 2025 with the first message from my self-hosted instance. You may already know me as @_elena@mastodon.social. Well, now I also run my own #ActivityPub microblogging server, thanks to the magic of #YunoHost and #GoToSocial (and #Phanpy, which I'm using to compose this).

I registered this domain – aseachange.com – a looooong time ago but never did anything with it. It was the very first domain name I ever bought, even before securing elenarossini.com (!!!). It was so long ago, but I remember I was inspired by Beck's album Sea Change. seachange[dot]com was taken, so I grabbed Aseachange.

I absolutely love its meaning of profound transformation and I think it's PERFECT for my self-hosted #Fediverse instance and what it represents: independence, empowerment and digital sovereignty.

Ever since setting it up, I've been feeling joyful and hopeful. Everytime I look at myself in the mirror, I think: I'm in control of my own social media platform. And it feels SOOO GOOD.

What do I have in store for 2025? I plan to use this account to post messages about #selfhosting, learning #Linux, privacy and digital sovereignty.

I will also keep posting from my Mastodon account because you don't give a Lamborghini to someone who just passed their driver's license. I barely know what I'm doing here, so I feel a lot safer (for now) keeping my mastodon.social account as well... In case anything goes wrong here. Better safe than sorry!

So, this is my #Introduction and if you've read as far as here I just want to thank the Fediverse for being so amazing and allowing me to connect with people on my own terms. And thank you Fedi people for being so generous and supportive with your superb advice and kind words.

This is a really magical, special place.

Happy New Year, everyone!

rijo's avatar
rijo

@rijo@frankfurt.social

ICYMI: Ghost and WordPress announce deeper social web collaboration ppc.land/ghost-and-wordpress-a

wakest ⁂'s avatar
wakest ⁂

@liaizon@social.wake.st · Reply to wakest ⁂'s post

Privacy Expectations in Federated Protocols
by @fionafokus
"Exemplified by the recent Pixelfed vulnerability (fokus.cool/2025/03/25/pixelfed) I'll summarize how incomplete or wrong implementations can violate our expectations on how privacy is treated. Afterwards there is room for an open discussion on how to handle these problems on a protocol and community level."

Seth Of The Fediverse!'s avatar
Seth Of The Fediverse!

@phillycodehound@indieweb.social

youtube.com/watch?v=VO99ok3glZ

Exciting!

@johnonolan and @pfefferle @mmccue.bsky.social

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social · Reply to ActivityPub for WordPress's post

Hi @activitypub.blog @obenland @pfefferle,
do you know a backend I can send a DM/Follow Request/whatever and get back a status report about it's (and mine) signing?

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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!

Fedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
ALT text detailsFedify monorepo structure diagram showing all packages (@fedify/fedify, @fedify/cli, database adapters, framework integrations) unified with shared versioning
Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social · Reply to ActivityPub for WordPress's post

Hi @activitypub.blog @obenland @pfefferle,
do you know a backend I can send a DM/Follow Request/whatever and get back a status report about it's (and mine) signing?

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Latest version of , the customizable timeline algorithm / filtering system for your Mastodon feed, allows for the use of multiple accounts on multiple Mastodon servers. Also fixes some interoperability issues.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

screenshot of fedialgo in action
ALT text detailsscreenshot of fedialgo in action
もちもちずきん's avatar
もちもちずきん

@YoheiZuho@mastodos.com

【OSC京都で に関連したセミナーを開催します!】
2025年8月3日(日)の13:00〜 オープンソースカンファレンス京都 で「分散型SNSユーザー有志」として、

「Fediverseのつくりかた 〜開発者・管理者たちの現場から〜」

と題してセミナー講演を行います!
登壇者として私( 開発者 運営者)のほか、
運営者でありMastodonコントリビュータの @noellabo さん
等の開発者である @hongminhee さん
京都のMastodon地域サーバー :chidori: 管理人の @7_nana さん
をお呼びして開催します。
を中心とした の今が知れるセミナーです。ぜひご参加ください!

会場:KRP ルーム2B(2階)
日時:2025年8月3日(日)13:00〜
参加費:無料
セミナー詳細:
event.ospn.jp/osc2025-kyoto/se

Seth Of The Fediverse!'s avatar
Seth Of The Fediverse!

@phillycodehound@indieweb.social

youtube.com/watch?v=VO99ok3glZ

Exciting!

@johnonolan and @pfefferle @mmccue.bsky.social

rijo's avatar
rijo

@rijo@frankfurt.social

ICYMI: Ghost and WordPress announce deeper social web collaboration ppc.land/ghost-and-wordpress-a

rijo's avatar
rijo

@rijo@frankfurt.social

ICYMI: Ghost and WordPress announce deeper social web collaboration ppc.land/ghost-and-wordpress-a

wakest ⁂'s avatar
wakest ⁂

@liaizon@social.wake.st · Reply to wakest ⁂'s post

Privacy Expectations in Federated Protocols
by @fionafokus
"Exemplified by the recent Pixelfed vulnerability (fokus.cool/2025/03/25/pixelfed) I'll summarize how incomplete or wrong implementations can violate our expectations on how privacy is treated. Afterwards there is room for an open discussion on how to handle these problems on a protocol and community level."

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

Digital is crucial for in , especially for marginalised communities.

🤝 social services support vulnerable , preserving and fostering .

🏡 and -focused servers create environments, promoting and .

👉 jaz.co.uk/2025/07/01/digital-e

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Latest version of , the customizable timeline algorithm / filtering system for your Mastodon feed, allows for the use of multiple accounts on multiple Mastodon servers. Also fixes some interoperability issues.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

screenshot of fedialgo in action
ALT text detailsscreenshot of fedialgo in action
⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Latest version of , the customizable timeline algorithm / filtering system for your Mastodon feed, allows for the use of multiple accounts on multiple Mastodon servers. Also fixes some interoperability issues.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

screenshot of fedialgo in action
ALT text detailsscreenshot of fedialgo in action
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Jens Scherbl's post

@jensscherbl

Robin Berjon wrote an interesting article on over ..

socialhub.activitypub.rocks/t/

And now there is PDS ActivityPub support in ATProto..

socialhub.activitypub.rocks/t/

Jens Scherbl's avatar
Jens Scherbl

@jensscherbl@mastodon.social

Starting to think Bluesky’s ATProtocol got a few things right that Mastodon and ActivityPub might have missed. Have a look at the “Why not use ActivityPub?” section in the ATProto FAQs. I think they make some compelling points. Is ATProto actually the better protocol for its intended purpose? atproto.com/guides/faq#why-not

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Jens Scherbl's post

@jensscherbl

Robin Berjon wrote an interesting article on over ..

socialhub.activitypub.rocks/t/

And now there is PDS ActivityPub support in ATProto..

socialhub.activitypub.rocks/t/

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

Digital is crucial for in , especially for marginalised communities.

🤝 social services support vulnerable , preserving and fostering .

🏡 and -focused servers create environments, promoting and .

👉 jaz.co.uk/2025/07/01/digital-e

wakest ⁂'s avatar
wakest ⁂

@liaizon@social.wake.st

Andreas Nedbal is giving a talk about using with in on July 14th

"The ActivityPub protocol is making its way into the social media sphere. In this talk, Andreas will discuss how the protocol could also be used by TYPO3 and what advantages it offers over other conventional tools. He will also provide a simple insight into how the protocol works."
meetup.com/munich-typo3-user-g

PPC Land's avatar
PPC Land

@ppcland@mastodon.social

Ghost and WordPress announce deeper social web collaboration: Major publishing platforms join forces to advance long-form content integration with ActivityPub protocol, preparing for Ghost 6.0 launch. ppc.land/ghost-and-wordpress-a

Jens Scherbl's avatar
Jens Scherbl

@jensscherbl@mastodon.social

Starting to think Bluesky’s ATProtocol got a few things right that Mastodon and ActivityPub might have missed. Have a look at the “Why not use ActivityPub?” section in the ATProto FAQs. I think they make some compelling points. Is ATProto actually the better protocol for its intended purpose? atproto.com/guides/faq#why-not

ozoramore

@ozoramore_dev@social.t2arc.net · Reply to ozoramore's post

It's not just #mitra, but also #mastodon, #misskey, etc. There needs to be a unified approach to handling fake hashtag links across #ActivityPub.

PPC Land's avatar
PPC Land

@ppcland@mastodon.social

Ghost and WordPress announce deeper social web collaboration: Major publishing platforms join forces to advance long-form content integration with ActivityPub protocol, preparing for Ghost 6.0 launch. ppc.land/ghost-and-wordpress-a

wakest ⁂'s avatar
wakest ⁂

@liaizon@social.wake.st

Andreas Nedbal is giving a talk about using with in on July 14th

"The ActivityPub protocol is making its way into the social media sphere. In this talk, Andreas will discuss how the protocol could also be used by TYPO3 and what advantages it offers over other conventional tools. He will also provide a simple insight into how the protocol works."
meetup.com/munich-typo3-user-g

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

Digital is crucial for in , especially for marginalised communities.

🤝 social services support vulnerable , preserving and fostering .

🏡 and -focused servers create environments, promoting and .

👉 jaz.co.uk/2025/07/01/digital-e

Doug Webb's avatar
Doug Webb

@douginamug@mastodon.xyz

What resources would you recommend for getting into

Basic theory, hello world ... implementation

Don't hold back, flood me 🌊

Doug Webb's avatar
Doug Webb

@douginamug@mastodon.xyz

What resources would you recommend for getting into

Basic theory, hello world ... implementation

Don't hold back, flood me 🌊

Reverend Elvis's avatar
Reverend Elvis

@reverend@social.undeadnetwork.de

Meine Deutsch-palestinischen Freunde (ich wusste nicht dass ich so viele habe) wechseln gerade alle zu upscrolled.com/, mit dem Versprechen freisprechen zu können. Ich mache mir Sorgen, dass sie nur in die nächste Falle laufen. Vielleicht kann man sie überreden, dass sie wenigstens Activity Pub einbinden.
-------------------------
My German-Palestinian friends (I didn't know I had so many) are all switching to upscrolled.com/, with the promise of being able to make free calls. I'm worried they're just walking into the next trap. Maybe we can persuade them to at least integrate Activity Pub.
--------------------------
أصدقائي الألمان الفلسطينيون (لم أكن أعلم أن لدي الكثير منهم) ينتقلون جميعًا إلى upscrolled.com/، مع وعد بإمكانية التحدث مجانًا. أنا قلق من أنهم يقعون في الفخ التالي. ربما يمكن إقناعهم على الأقل بدمج Activity Pub

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed is seeing a surge in new users as a prominent Lemmy server retires, lemm.ee

piefed.zip/post/167564

A line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
ALT text detailsA line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
Martin Settle's avatar
Martin Settle

@Martin@mstdn.bdms.ca

I'm kind of ridiculously excited that @evan is going to be a keynote at WordCamp Canada in Ottawa this fall.

I'm not a developer of WordPress, but I do have a hand in managing a couple of sites. I'm sure I'll learn some useful things at WordCamp, and was planning to attend.

The chance to hear from the "Father of the Fediverse" directly seals my commitment to register!

canada.wordcamp.org/2025/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed is seeing a surge in new users as a prominent Lemmy server retires, lemm.ee

piefed.zip/post/167564

A line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
ALT text detailsA line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed is seeing a surge in new users as a prominent Lemmy server retires, lemm.ee

piefed.zip/post/167564

A line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
ALT text detailsA line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed is seeing a surge in new users as a prominent Lemmy server retires, lemm.ee

piefed.zip/post/167564

A line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
ALT text detailsA line chart showing growth from 800 active users to 2000 active users on the PieFed platform over the course of June 2026
Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #123 - this week's news:

- Tumblr will not migrate to WordPress, and resulting from that, will not be joining the fediverse after all
- @Mastodon makes the release candidate for update 4.4 available, which among other features will display quote posts from other platforms
- new funding round from @nlnet with grants for better event federation, -based polls on WordPress, and for NodeBB and Funkwhale

connectedplaces.online/reports

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #123 - this week's news:

- Tumblr will not migrate to WordPress, and resulting from that, will not be joining the fediverse after all
- @Mastodon makes the release candidate for update 4.4 available, which among other features will display quote posts from other platforms
- new funding round from @nlnet with grants for better event federation, -based polls on WordPress, and for NodeBB and Funkwhale

connectedplaces.online/reports

Erik Chendo Tegon's avatar
Erik Chendo Tegon

@Erikcht@mastodon.social · Reply to PeerTube's post

@peertube
📢 Feature requests for !

Hi peertube team and community! I’d love to suggest some features that would be super useful for content creators:

1️⃣ Dubbing/audio tracks: Currently, adding a new dub requires re-uploading the entire video. It’d be great to have a system for alternate audio tracks on the same video.

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon 4.4 for Developers« blog.joinmastodon.org/2025/07/

Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

- classified ads software, for the using codeberg.org/flohmarkt/flohmar

Claudius's avatar
Claudius

@claudius@darmstadt.social

just closed the issue about supporting . Kai Armstrong says "our current focus isn't in this area".

This is very sad, I really think this could have been a pretty good match *espacially* for Gitlab. It could have been a puzzle piece in how to do federated open source coordination. You know, the problem with "not wanting to be on github, but kinda finding it convenient everyone has an account already".

gitlab.com/groups/gitlab-org/-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #123 - this week's news:

- Tumblr will not migrate to WordPress, and resulting from that, will not be joining the fediverse after all
- @Mastodon makes the release candidate for update 4.4 available, which among other features will display quote posts from other platforms
- new funding round from @nlnet with grants for better event federation, -based polls on WordPress, and for NodeBB and Funkwhale

connectedplaces.online/reports

Ian Brown 👨🏻‍💻's avatar
Ian Brown 👨🏻‍💻

@1br0wn@eupolicy.social · Reply to Ian Brown 👨🏻‍💻's post

Q: "I was really high on interoperable social networking, and interoperable sites using or . It doesn’t matter to me, actually. At the end of the day, I just want to see more interoperability of these networks. Do you still think that’s going to happen?"

A: "Yeah, if I had a bet on one, actually, you know what I’d bet on is the protocol, the dark horse in the corner." 👀

Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

says "not on the roadmap" for integration with - , closes issue from 2019 gitlab.com/gitlab-org/gitlab/-

Loki the Cat's avatar
Loki the Cat

@LokiTheCat@toot.community

Tumblr to Fediverse: "It's complicated" 💔

Automattic puts WordPress migration on hold to focus on user requests instead. CEO Mullenweg says they'd implement ActivityPub directly if there's enough demand though.

Time for the Fediverse to slide into those DMs? 📱

tech.slashdot.org/story/25/06/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Bastien Guerry's post

@bzg @claudius

And already has a level of federation support, like for federated stars:

domaindrivenarchitecture.org/p

Hopefully with @forgefed adoption on the roadmap too, where this open standard supported by @NGIZero has been significantly progressed, but needs implementers in active feedback loops to refine and mature the specs.

codeberg.org/forgejo-contrib/f

Claudius's avatar
Claudius

@claudius@darmstadt.social

just closed the issue about supporting . Kai Armstrong says "our current focus isn't in this area".

This is very sad, I really think this could have been a pretty good match *espacially* for Gitlab. It could have been a puzzle piece in how to do federated open source coordination. You know, the problem with "not wanting to be on github, but kinda finding it convenient everyone has an account already".

gitlab.com/groups/gitlab-org/-

Claudius's avatar
Claudius

@claudius@darmstadt.social

just closed the issue about supporting . Kai Armstrong says "our current focus isn't in this area".

This is very sad, I really think this could have been a pretty good match *espacially* for Gitlab. It could have been a puzzle piece in how to do federated open source coordination. You know, the problem with "not wanting to be on github, but kinda finding it convenient everyone has an account already".

gitlab.com/groups/gitlab-org/-

Stéphane Bortzmeyer's avatar
Stéphane Bortzmeyer

@bortzmeyer@mastodon.gougere.fr

Ah, zut, laisse tomber l'idée d'intégrer gitlab.com/gitlab-org/gitlab/-

Stéphane Bortzmeyer's avatar
Stéphane Bortzmeyer

@bortzmeyer@mastodon.gougere.fr

Ah, zut, laisse tomber l'idée d'intégrer gitlab.com/gitlab-org/gitlab/-

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon 4.4 for Developers« blog.joinmastodon.org/2025/07/

Loki the Cat's avatar
Loki the Cat

@LokiTheCat@toot.community

Tumblr to Fediverse: "It's complicated" 💔

Automattic puts WordPress migration on hold to focus on user requests instead. CEO Mullenweg says they'd implement ActivityPub directly if there's enough demand though.

Time for the Fediverse to slide into those DMs? 📱

tech.slashdot.org/story/25/06/

Flipboard Tech Desk's avatar
Flipboard Tech Desk

@TechDesk@flipboard.social

Automattic's plan to move Tumblr's backend to WordPress is "on hold," which means Tumblr posts also won't be available in the fediverse in the near future, CEO Matt Mullenweg said in a Decoder episode. Here's more from @theverge.

flip.it/P8_x4D

Claudius's avatar
Claudius

@claudius@darmstadt.social

just closed the issue about supporting . Kai Armstrong says "our current focus isn't in this area".

This is very sad, I really think this could have been a pretty good match *espacially* for Gitlab. It could have been a puzzle piece in how to do federated open source coordination. You know, the problem with "not wanting to be on github, but kinda finding it convenient everyone has an account already".

gitlab.com/groups/gitlab-org/-

Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

says "not on the roadmap" for integration with - , closes issue from 2019 gitlab.com/gitlab-org/gitlab/-

Ian Brown 👨🏻‍💻's avatar
Ian Brown 👨🏻‍💻

@1br0wn@eupolicy.social · Reply to Ian Brown 👨🏻‍💻's post

Q: "I was really high on interoperable social networking, and interoperable sites using or . It doesn’t matter to me, actually. At the end of the day, I just want to see more interoperability of these networks. Do you still think that’s going to happen?"

A: "Yeah, if I had a bet on one, actually, you know what I’d bet on is the protocol, the dark horse in the corner." 👀

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #123 - this week's news:

- Tumblr will not migrate to WordPress, and resulting from that, will not be joining the fediverse after all
- @Mastodon makes the release candidate for update 4.4 available, which among other features will display quote posts from other platforms
- new funding round from @nlnet with grants for better event federation, -based polls on WordPress, and for NodeBB and Funkwhale

connectedplaces.online/reports

Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

- classified ads software, for the using codeberg.org/flohmarkt/flohmar

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon 4.4 for Developers« blog.joinmastodon.org/2025/07/

Erik Chendo Tegon's avatar
Erik Chendo Tegon

@Erikcht@mastodon.social · Reply to PeerTube's post

@peertube
📢 Feature requests for !

Hi peertube team and community! I’d love to suggest some features that would be super useful for content creators:

1️⃣ Dubbing/audio tracks: Currently, adding a new dub requires re-uploading the entire video. It’d be great to have a system for alternate audio tracks on the same video.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Introducing . Hollo is an -enabled single-user microblogging software. Although it's for a single user, it also supports creating and running multiple accounts for different topics.

It's headless, meaning you can use existing client apps instead, with its Mastodon-compatible APIs. It has most feature parity with Mastodon. Two big differences with Mastodon is that you can use in the content of your posts and you can quote another post.

Oh, and Hollo is built using and .

https://github.com/dahlia/hollo

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Fediverse, we’ve got a new mascot! Meet Waffy from Wafrn

app.wafrn.net/fediverse/post/4

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz · Reply to Lauren Weinstein's post

@lauren
> There is a parallel here to what happened when Google disastrously tried to integrate YT comments with G+ threads

Difference here being that what's bridged is the fediverse () and the ATmosphere (), which are protocol-defined networks, not monolithic platforms. There is already a need to address different kinds of UX within each network. So bridging them doesn't introduce new UX problems to either.

@DavidBHimself @mastodonmigration @moira @quillmatiq @anewsocial

Loki the Cat's avatar
Loki the Cat

@LokiTheCat@toot.community

Tumblr to Fediverse: "It's complicated" 💔

Automattic puts WordPress migration on hold to focus on user requests instead. CEO Mullenweg says they'd implement ActivityPub directly if there's enough demand though.

Time for the Fediverse to slide into those DMs? 📱

tech.slashdot.org/story/25/06/

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

So uh, is anyone looking to hire a developer with an uncomfortable amount of knowledge about and , experience building from scratch and running a social network (@ludumdare.com), hacking on GPU drivers/network protocols/the Linux kernel, plus a couple decades as a pro gamedev? 🤷

RE: https://bsky.app/profile/did:plc:svpym4ujks7qxczscyzq7fuy/post/3lstq4ebtpc2m

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

So uh, is anyone looking to hire a developer with an uncomfortable amount of knowledge about and , experience building from scratch and running a social network (@ludumdare.com), hacking on GPU drivers/network protocols/the Linux kernel, plus a couple decades as a pro gamedev? 🤷

RE: https://bsky.app/profile/did:plc:svpym4ujks7qxczscyzq7fuy/post/3lstq4ebtpc2m

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

@steve

of course also has a dedicated C2S category already, so is another option to collect and federate discussions.

What to choose depends I guess how far 'extend' goes. Just wanted to drop it as an option.

The archive of prior C2S discussions at SocialHub:

socialhub.activitypub.rocks/c/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Here's an idea. What if we extend C2S (C2S++?) with a minimal set of features (FEPs) to provide a reasonable (or even excellent) UX? Along with servers that already support C2S, we could write an external protocol adapter from C2S to the Mastodon client API to increase the number of users that could potential use a C2S client. The C2S API would be general, but the UIs could be domain-specific (microblogging, media sharing, long-form, etc.). Who's with me?
youtube.com/watch?v=6eX3fiQLo8

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

Anyone know if there's a #cooking #recipes #fediverse #software #stack ? Thinking of putting my family's recipes up on the #fedi . Love #activitypub powered EVERYTHING! I saw @jamesravey had started #gastronaut a few years ago, but don't see code for it.

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

So uh, is anyone looking to hire a developer with an uncomfortable amount of knowledge about and , experience building from scratch and running a social network (@ludumdare.com), hacking on GPU drivers/network protocols/the Linux kernel, plus a couple decades as a pro gamedev? 🤷

RE: https://bsky.app/profile/did:plc:svpym4ujks7qxczscyzq7fuy/post/3lstq4ebtpc2m

Flipboard Tech Desk's avatar
Flipboard Tech Desk

@TechDesk@flipboard.social

Automattic's plan to move Tumblr's backend to WordPress is "on hold," which means Tumblr posts also won't be available in the fediverse in the near future, CEO Matt Mullenweg said in a Decoder episode. Here's more from @theverge.

flip.it/P8_x4D

wakest ⁂'s avatar
wakest ⁂

@liaizon@social.wake.st

Just finished listening to the newest episode of Decoder podcast (@2123) containing a pretty hard hitting 1 hour interview of Matt Mullenweg (@photomatt) by Nilay Patel (@reckless1280) where they talked about , @tumblr, vs and or course the latest in WordPress (drama), regardless of what you think of Matt it was an interesting listen.

podcastindex.org/podcast/2123?

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Here's an idea. What if we extend C2S (C2S++?) with a minimal set of features (FEPs) to provide a reasonable (or even excellent) UX? Along with servers that already support C2S, we could write an external protocol adapter from C2S to the Mastodon client API to increase the number of users that could potential use a C2S client. The C2S API would be general, but the UIs could be domain-specific (microblogging, media sharing, long-form, etc.). Who's with me?
youtube.com/watch?v=6eX3fiQLo8

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

Anyone know if there's a #cooking #recipes #fediverse #software #stack ? Thinking of putting my family's recipes up on the #fedi . Love #activitypub powered EVERYTHING! I saw @jamesravey had started #gastronaut a few years ago, but don't see code for it.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to :mastodon: Mike Amundsen's post

@mamund thank you. I will also give the linked article on agentic systems a read.

Note that here on the has this need to discover and introspect the capabilities of actor endpoints on the network.

This entirely missing. With endlessly versatile, a player on the fediverse can freely invent their own flavours on-the-fly, introducing protocol decay and makes harder.

Whack-a-mole driven development to moving targets ensues.

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Here's an idea. What if we extend C2S (C2S++?) with a minimal set of features (FEPs) to provide a reasonable (or even excellent) UX? Along with servers that already support C2S, we could write an external protocol adapter from C2S to the Mastodon client API to increase the number of users that could potential use a C2S client. The C2S API would be general, but the UIs could be domain-specific (microblogging, media sharing, long-form, etc.). Who's with me?
youtube.com/watch?v=6eX3fiQLo8

b-rain's avatar
b-rain

@b_rain@troet.cafe · Reply to Stephanie Henkel :pd: :af:'s post

@ueckueck @gnulinux
Ich hatte (ohne die Folge gehört zu haben) eine spontane Assoziation dazu, die ich als umsetzen musste 😄

rainking.de/2025/06/27/wie-foe

Comic:
Panel 1: Mutter sitzt auf dem Sofa, Kind spielt mit Bauklötzen auf dem Boden.
Kind: Mami, wie föderieren Server im Fediverse?
Mutter: Hmm, also...
Panel 2:
Mutter hat in jeder Hand einen Bauklotz.
Mutter: Wenn ein Server und ein anderer Server sich ganz doll lieb haben, dann...
Kind: Dann benutzen sie ActivityPub?
Panel 3:
Mutter: Genau, dann benutzen sie ActivityPub.
ALT text detailsComic: Panel 1: Mutter sitzt auf dem Sofa, Kind spielt mit Bauklötzen auf dem Boden. Kind: Mami, wie föderieren Server im Fediverse? Mutter: Hmm, also... Panel 2: Mutter hat in jeder Hand einen Bauklotz. Mutter: Wenn ein Server und ein anderer Server sich ganz doll lieb haben, dann... Kind: Dann benutzen sie ActivityPub? Panel 3: Mutter: Genau, dann benutzen sie ActivityPub.
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Steve Bate's post

@steve @drahardja @dfyx

I'd say post-facto interop covers the load..

> Post facto [is] the absolute market dominance of a particular product in contravention of any applicable standards [..]. The vendor behind that product can then choose to ignore any forthcoming standards and not co-operate in any standardization process at all, using its near-monopoly to insist that its product sets the de facto standard by its very market dominance.

en.wikipedia.org/wiki/Interope

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Steve Bate's post

@steve @drahardja @dfyx

I'd say post-facto interop covers the load..

> Post facto [is] the absolute market dominance of a particular product in contravention of any applicable standards [..]. The vendor behind that product can then choose to ignore any forthcoming standards and not co-operate in any standardization process at all, using its near-monopoly to insist that its product sets the de facto standard by its very market dominance.

en.wikipedia.org/wiki/Interope

DFYX's avatar
DFYX

@dfyx@social.helios42.de

I'm beginning to understand why there are so few blogging platforms that work with . I thought I'd make my own as a weekend project and while it shows up fine in browser.pub/, getting to correctly display posts and followers is driving me absolutely crazy.

Why does Mastodon need its own weird special stuff? Why can't it just load the followers and outbox collections like the standard expects? WHY?

Alan Levine's avatar
Alan Levine

@cogdog@cosocial.ca

Love the domains attribution feature of plugin- by associating cogdogblog.com domain in settings, if anyone includes a link to my blog in a post (the one here is a redirect to one, so that works too), it adds a “by” credit below the post preview, linking to the fediverse account for my blog.

A mastodon post that includes a url that links to Cogdogblog.com with arrow to the credit at the bottom as By CogDogBlog an account link
ALT text detailsA mastodon post that includes a url that links to Cogdogblog.com with arrow to the credit at the bottom as By CogDogBlog an account link
Plugin settings showing field for Attribution Domains and entered in field is Cogdogblog.com
ALT text detailsPlugin settings showing field for Attribution Domains and entered in field is Cogdogblog.com
Alan Levine's avatar
Alan Levine

@cogdog@cosocial.ca

Love the domains attribution feature of plugin- by associating cogdogblog.com domain in settings, if anyone includes a link to my blog in a post (the one here is a redirect to one, so that works too), it adds a “by” credit below the post preview, linking to the fediverse account for my blog.

A mastodon post that includes a url that links to Cogdogblog.com with arrow to the credit at the bottom as By CogDogBlog an account link
ALT text detailsA mastodon post that includes a url that links to Cogdogblog.com with arrow to the credit at the bottom as By CogDogBlog an account link
Plugin settings showing field for Attribution Domains and entered in field is Cogdogblog.com
ALT text detailsPlugin settings showing field for Attribution Domains and entered in field is Cogdogblog.com
DFYX's avatar
DFYX

@dfyx@social.helios42.de

I'm beginning to understand why there are so few blogging platforms that work with . I thought I'd make my own as a weekend project and while it shows up fine in browser.pub/, getting to correctly display posts and followers is driving me absolutely crazy.

Why does Mastodon need its own weird special stuff? Why can't it just load the followers and outbox collections like the standard expects? WHY?

Ben Pate 🤘🏻's avatar
Ben Pate 🤘🏻

@benpate@mastodon.social

I'm often grumpy about how "loose" the protocol is. So it's important that I also point to positive examples of how to do it well.

w3id.org/fep/b2b8: "Long-form Text" is a great set of concrete terms and concepts that moves the forward in some really good ways. As we continue growing beyond "microblogging" we need this, and more stuff like it.

Thank you to @evanprodromou for putting your time into this document. It's a solid investment for everyone.

Ben Pate 🤘🏻's avatar
Ben Pate 🤘🏻

@benpate@mastodon.social

I'm often grumpy about how "loose" the protocol is. So it's important that I also point to positive examples of how to do it well.

w3id.org/fep/b2b8: "Long-form Text" is a great set of concrete terms and concepts that moves the forward in some really good ways. As we continue growing beyond "microblogging" we need this, and more stuff like it.

Thank you to @evanprodromou for putting your time into this document. It's a solid investment for everyone.

Ben Pate 🤘🏻's avatar
Ben Pate 🤘🏻

@benpate@mastodon.social

I'm often grumpy about how "loose" the protocol is. So it's important that I also point to positive examples of how to do it well.

w3id.org/fep/b2b8: "Long-form Text" is a great set of concrete terms and concepts that moves the forward in some really good ways. As we continue growing beyond "microblogging" we need this, and more stuff like it.

Thank you to @evanprodromou for putting your time into this document. It's a solid investment for everyone.

b-rain's avatar
b-rain

@b_rain@troet.cafe · Reply to Stephanie Henkel :pd: :af:'s post

@ueckueck @gnulinux
Ich hatte (ohne die Folge gehört zu haben) eine spontane Assoziation dazu, die ich als umsetzen musste 😄

rainking.de/2025/06/27/wie-foe

Comic:
Panel 1: Mutter sitzt auf dem Sofa, Kind spielt mit Bauklötzen auf dem Boden.
Kind: Mami, wie föderieren Server im Fediverse?
Mutter: Hmm, also...
Panel 2:
Mutter hat in jeder Hand einen Bauklotz.
Mutter: Wenn ein Server und ein anderer Server sich ganz doll lieb haben, dann...
Kind: Dann benutzen sie ActivityPub?
Panel 3:
Mutter: Genau, dann benutzen sie ActivityPub.
ALT text detailsComic: Panel 1: Mutter sitzt auf dem Sofa, Kind spielt mit Bauklötzen auf dem Boden. Kind: Mami, wie föderieren Server im Fediverse? Mutter: Hmm, also... Panel 2: Mutter hat in jeder Hand einen Bauklotz. Mutter: Wenn ein Server und ein anderer Server sich ganz doll lieb haben, dann... Kind: Dann benutzen sie ActivityPub? Panel 3: Mutter: Genau, dann benutzen sie ActivityPub.
Christoph Jüngling's avatar
Christoph Jüngling

@juengling@mastodontech.de

Noch eine Frage zum : Da die Gemeinsamkeit das Protokoll ist, sollte eine beliebige App doch eigentlich mit allen Servern klar kommen. Ist das so, oder gibt es tatsächlich Unterschiede?

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Haven't turned on Federation yet, but my Bonfire instance is looking good. My second install of Bonfire. I can tell you two things: Installation was much easier this time, and performance is much better.

One note, Bonfire recommends a hungry 8 GB of memory to run, but with that amount, it runs nicely so far. I'll keep you updated, hoping to turn federation on by next weekend. (This will be an invite only instance for brave individuals that want to assist with testing)

A screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
ALT text detailsA screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Haven't turned on Federation yet, but my Bonfire instance is looking good. My second install of Bonfire. I can tell you two things: Installation was much easier this time, and performance is much better.

One note, Bonfire recommends a hungry 8 GB of memory to run, but with that amount, it runs nicely so far. I'll keep you updated, hoping to turn federation on by next weekend. (This will be an invite only instance for brave individuals that want to assist with testing)

A screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
ALT text detailsA screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Haven't turned on Federation yet, but my Bonfire instance is looking good. My second install of Bonfire. I can tell you two things: Installation was much easier this time, and performance is much better.

One note, Bonfire recommends a hungry 8 GB of memory to run, but with that amount, it runs nicely so far. I'll keep you updated, hoping to turn federation on by next weekend. (This will be an invite only instance for brave individuals that want to assist with testing)

A screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
ALT text detailsA screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Haven't turned on Federation yet, but my Bonfire instance is looking good. My second install of Bonfire. I can tell you two things: Installation was much easier this time, and performance is much better.

One note, Bonfire recommends a hungry 8 GB of memory to run, but with that amount, it runs nicely so far. I'll keep you updated, hoping to turn federation on by next weekend. (This will be an invite only instance for brave individuals that want to assist with testing)

A screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
ALT text detailsA screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Haven't turned on Federation yet, but my Bonfire instance is looking good. My second install of Bonfire. I can tell you two things: Installation was much easier this time, and performance is much better.

One note, Bonfire recommends a hungry 8 GB of memory to run, but with that amount, it runs nicely so far. I'll keep you updated, hoping to turn federation on by next weekend. (This will be an invite only instance for brave individuals that want to assist with testing)

A screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
ALT text detailsA screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Haven't turned on Federation yet, but my Bonfire instance is looking good. My second install of Bonfire. I can tell you two things: Installation was much easier this time, and performance is much better.

One note, Bonfire recommends a hungry 8 GB of memory to run, but with that amount, it runs nicely so far. I'll keep you updated, hoping to turn federation on by next weekend. (This will be an invite only instance for brave individuals that want to assist with testing)

A screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
ALT text detailsA screenshot of a discussion interface, featuring a user profile on the left side. The main content displays an image of a scenic landscape with two figures sitting by a fire. Below the image, there is a section labeled "Code" with a SQL command and a quote about using fire for transformation. The interface includes navigation elements and a trending topics section.
Richard MacManus's avatar
Richard MacManus

@ricmac@mastodon.social

Question for @eleventy users: is anyone syndicating their site to the fediverse using , similar to what Ghost is doing (eg @index); and if so, how are you doing this? i.e. making your site a first-class citizen of the fediverse. I know there was this project a few years ago by @lewis, but not sure if it’s currently being used: github.com/LewisDaleUK/elevent

Reason I ask is I’d like to have a posts feed for Cybercultural, that people can eg subscribe to in Mastodon.

Richard MacManus's avatar
Richard MacManus

@ricmac@mastodon.social

Question for @eleventy users: is anyone syndicating their site to the fediverse using , similar to what Ghost is doing (eg @index); and if so, how are you doing this? i.e. making your site a first-class citizen of the fediverse. I know there was this project a few years ago by @lewis, but not sure if it’s currently being used: github.com/LewisDaleUK/elevent

Reason I ask is I’d like to have a posts feed for Cybercultural, that people can eg subscribe to in Mastodon.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Ecologia Digital's post

@josemurilo yes, remarkable.

I keep track of a list of implementations at the newly revamped delightful.coding.social/delig

See: codeberg.org/fediverse/delight

PS. @box464 also tooted about this today and I dropped off the codeberg issue too. I hope to find more C2S implementers or would-be ones.

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-27

Servers

- PieFed v1.0.0
- Manyfold v0.115.0
- Mitra v4.5.1
- tootik v0.17.0
- Gancio v1.27.0
- Gush! v0.0.20
- Vernissage Server v1.17.0
- wanderer: A decentralized, self-hosted trail database

Clients

- Smither v3.6
- Thunder v0.7.3
- Blorp v1.8.1
- Aria v1.2.4

Tools and Plugins

- FIRES Server v0.3.0

For developers

- Fedify v1.7.0
- Fedialgo v0.78.0

Protocol

- FEP-b06c: ActivityPoll
- FEP-b2b8: Long-form Text (Final comments)

Articles

- Verified Media Accounts in the Fediverse
- The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
- Mitigating the "7 Deadly Fediverse UX Sins"
- Friendica: the Swiss Army knife of the Fediverse
- Fediverse Report – #122

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01978f30-5295-cb5b-38cc-a151f08fd9f1

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

silverpill's avatar
silverpill

@silverpill@mitra.social

My #ActivityPub developer guide moved to another repository: https://codeberg.org/silverpill/ap-next/src/branch/main/guide.md

It started as a FEP, but has evolved into something bigger.

About the repository:

As stated in the readme, ActivityPub Next is a project dedicated to evolving the ActivityPub protocol.

Currently it only contains the developer guide, but I think that more content will be added over time.

GENKI's avatar
GENKI

@nibushibu@vivaldi.net

:activitypub: 対応して :fediverse: ⁂ 化してくれたらいいんだけどな…
コミュニティみたいなのも :fediverse: の Group アカウントみたいにコンバートされて外部からも見える、みたいな。
いや、超面倒なこと言ってるだろうなという自覚はあるんだけど :apartyblobcat:

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

silverpill's avatar
silverpill

@silverpill@mitra.social

My #ActivityPub developer guide moved to another repository: https://codeberg.org/silverpill/ap-next/src/branch/main/guide.md

It started as a FEP, but has evolved into something bigger.

About the repository:

As stated in the readme, ActivityPub Next is a project dedicated to evolving the ActivityPub protocol.

Currently it only contains the developer guide, but I think that more content will be added over time.

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

silverpill's avatar
silverpill

@silverpill@mitra.social

My #ActivityPub developer guide moved to another repository: https://codeberg.org/silverpill/ap-next/src/branch/main/guide.md

It started as a FEP, but has evolved into something bigger.

About the repository:

As stated in the readme, ActivityPub Next is a project dedicated to evolving the ActivityPub protocol.

Currently it only contains the developer guide, but I think that more content will be added over time.

silverpill's avatar
silverpill

@silverpill@mitra.social

My #ActivityPub developer guide moved to another repository: https://codeberg.org/silverpill/ap-next/src/branch/main/guide.md

It started as a FEP, but has evolved into something bigger.

About the repository:

As stated in the readme, ActivityPub Next is a project dedicated to evolving the ActivityPub protocol.

Currently it only contains the developer guide, but I think that more content will be added over time.

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-27

Servers

- PieFed v1.0.0
- Manyfold v0.115.0
- Mitra v4.5.1
- tootik v0.17.0
- Gancio v1.27.0
- Gush! v0.0.20
- Vernissage Server v1.17.0
- wanderer: A decentralized, self-hosted trail database

Clients

- Smither v3.6
- Thunder v0.7.3
- Blorp v1.8.1
- Aria v1.2.4

Tools and Plugins

- FIRES Server v0.3.0

For developers

- Fedify v1.7.0
- Fedialgo v0.78.0

Protocol

- FEP-b06c: ActivityPoll
- FEP-b2b8: Long-form Text (Final comments)

Articles

- Verified Media Accounts in the Fediverse
- The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
- Mitigating the "7 Deadly Fediverse UX Sins"
- Friendica: the Swiss Army knife of the Fediverse
- Fediverse Report – #122

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01978f30-5295-cb5b-38cc-a151f08fd9f1

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Ghost’s @johnonolan and WordPress’s @pfefferle want to help blogs and long content thrive on the open social web. Meet “the longformers,” who chatted to @mike for the latest edition of Dot Social.

about.flipboard.com/fediverse/

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-27

Servers

- PieFed v1.0.0
- Manyfold v0.115.0
- Mitra v4.5.1
- tootik v0.17.0
- Gancio v1.27.0
- Gush! v0.0.20
- Vernissage Server v1.17.0
- wanderer: A decentralized, self-hosted trail database

Clients

- Smither v3.6
- Thunder v0.7.3
- Blorp v1.8.1
- Aria v1.2.4

Tools and Plugins

- FIRES Server v0.3.0

For developers

- Fedify v1.7.0
- Fedialgo v0.78.0

Protocol

- FEP-b06c: ActivityPoll
- FEP-b2b8: Long-form Text (Final comments)

Articles

- Verified Media Accounts in the Fediverse
- The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
- Mitigating the "7 Deadly Fediverse UX Sins"
- Friendica: the Swiss Army knife of the Fediverse
- Fediverse Report – #122

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01978f30-5295-cb5b-38cc-a151f08fd9f1

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-27

Servers

- PieFed v1.0.0
- Manyfold v0.115.0
- Mitra v4.5.1
- tootik v0.17.0
- Gancio v1.27.0
- Gush! v0.0.20
- Vernissage Server v1.17.0
- wanderer: A decentralized, self-hosted trail database

Clients

- Smither v3.6
- Thunder v0.7.3
- Blorp v1.8.1
- Aria v1.2.4

Tools and Plugins

- FIRES Server v0.3.0

For developers

- Fedify v1.7.0
- Fedialgo v0.78.0

Protocol

- FEP-b06c: ActivityPoll
- FEP-b2b8: Long-form Text (Final comments)

Articles

- Verified Media Accounts in the Fediverse
- The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
- Mitigating the "7 Deadly Fediverse UX Sins"
- Friendica: the Swiss Army knife of the Fediverse
- Fediverse Report – #122

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01978f30-5295-cb5b-38cc-a151f08fd9f1

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-27

Servers

- PieFed v1.0.0
- Manyfold v0.115.0
- Mitra v4.5.1
- tootik v0.17.0
- Gancio v1.27.0
- Gush! v0.0.20
- Vernissage Server v1.17.0
- wanderer: A decentralized, self-hosted trail database

Clients

- Smither v3.6
- Thunder v0.7.3
- Blorp v1.8.1
- Aria v1.2.4

Tools and Plugins

- FIRES Server v0.3.0

For developers

- Fedify v1.7.0
- Fedialgo v0.78.0

Protocol

- FEP-b06c: ActivityPoll
- FEP-b2b8: Long-form Text (Final comments)

Articles

- Verified Media Accounts in the Fediverse
- The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
- Mitigating the "7 Deadly Fediverse UX Sins"
- Friendica: the Swiss Army knife of the Fediverse
- Fediverse Report – #122

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01978f30-5295-cb5b-38cc-a151f08fd9f1

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-27

Servers

- PieFed v1.0.0
- Manyfold v0.115.0
- Mitra v4.5.1
- tootik v0.17.0
- Gancio v1.27.0
- Gush! v0.0.20
- Vernissage Server v1.17.0
- wanderer: A decentralized, self-hosted trail database

Clients

- Smither v3.6
- Thunder v0.7.3
- Blorp v1.8.1
- Aria v1.2.4

Tools and Plugins

- FIRES Server v0.3.0

For developers

- Fedify v1.7.0
- Fedialgo v0.78.0

Protocol

- FEP-b06c: ActivityPoll
- FEP-b2b8: Long-form Text (Final comments)

Articles

- Verified Media Accounts in the Fediverse
- The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
- Mitigating the "7 Deadly Fediverse UX Sins"
- Friendica: the Swiss Army knife of the Fediverse
- Fediverse Report – #122

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01978f30-5295-cb5b-38cc-a151f08fd9f1

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-27

Servers

- PieFed v1.0.0
- Manyfold v0.115.0
- Mitra v4.5.1
- tootik v0.17.0
- Gancio v1.27.0
- Gush! v0.0.20
- Vernissage Server v1.17.0
- wanderer: A decentralized, self-hosted trail database

Clients

- Smither v3.6
- Thunder v0.7.3
- Blorp v1.8.1
- Aria v1.2.4

Tools and Plugins

- FIRES Server v0.3.0

For developers

- Fedify v1.7.0
- Fedialgo v0.78.0

Protocol

- FEP-b06c: ActivityPoll
- FEP-b2b8: Long-form Text (Final comments)

Articles

- Verified Media Accounts in the Fediverse
- The Seven Deadly Fediverse UX Sins Part 2: The Road To Redemption
- Mitigating the "7 Deadly Fediverse UX Sins"
- Friendica: the Swiss Army knife of the Fediverse
- Fediverse Report – #122

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01978f30-5295-cb5b-38cc-a151f08fd9f1

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Latest release of , the customizable timeline algorithm / filtering system for your Mastodon feed, lets you blur / hide images marked as sensitive / , which solves the "unwanted dick pics in your feed" issue that can come up when users of one of the more "risque" fediverse servers manage to make one of their favourite hashtags trend.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

screenshot of fedialgo showing an image post from the mastobate.social server has been blurred out
ALT text detailsscreenshot of fedialgo showing an image post from the mastobate.social server has been blurred out
Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

wanderer - meets the . A self-hosted trail database built on . "Save your adventures!"

wanderer.to/
github.com/flomp/wanderer

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz

"And of course we work with standards [for Libervia], with XMPP notably. It's a communications standard which is ... mainly know for instant messaging but it can actually do a lot more. So we use it also for blogging ... for these kinds of things.

And I've been working on a gateway [other protocols], notably ActivityPub, the protocol behind Mastodon, PeerTube, Mobilizon, etc."

@Goffi, dev, 2024

podcast.nlnet.nl/@NGIZero/epis

Jay 🆘's avatar
Jay 🆘

@jsit@social.coop

Has anybody built a UI for browsing longform writing over ?

James Smith 💾's avatar
James Smith 💾

@Floppy@mastodon.me.uk

Really enjoyed appearing on @firesidefedi with @ozoned yesterday! Always lovely to have a friendly, rambling, tangent-filled conversation about @manyfold, the Fediverse, and technology in general. Thanks for having me!

video.firesidefedi.live/w/ijxF

Xab :debian:'s avatar
Xab :debian:

@xabacadabra@social.andreacorinti.com

Disclaimer: ho utilizzato Mastodon fino a ieri quindi non intendo certo demonizzarlo (ci scherzo un po' sopra :AngeryCat: ), prendete questo post come una riflessione sulla sua mastodontica ingombranza nel mondo #ActivityPub

https://www.andreacorinti.com/posts/ita/mastodon%20e%20fediverso/

#Mastodon
#Fediverso

James Smith 💾's avatar
James Smith 💾

@Floppy@mastodon.me.uk

Really enjoyed appearing on @firesidefedi with @ozoned yesterday! Always lovely to have a friendly, rambling, tangent-filled conversation about @manyfold, the Fediverse, and technology in general. Thanks for having me!

video.firesidefedi.live/w/ijxF

Jay 🆘's avatar
Jay 🆘

@jsit@social.coop

Has anybody built a UI for browsing longform writing over ?

Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

wanderer - meets the . A self-hosted trail database built on . "Save your adventures!"

wanderer.to/
github.com/flomp/wanderer

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

wanderer - meets the . A self-hosted trail database built on . "Save your adventures!"

wanderer.to/
github.com/flomp/wanderer

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz

"And of course we work with standards [for Libervia], with XMPP notably. It's a communications standard which is ... mainly know for instant messaging but it can actually do a lot more. So we use it also for blogging ... for these kinds of things.

And I've been working on a gateway [other protocols], notably ActivityPub, the protocol behind Mastodon, PeerTube, Mobilizon, etc."

@Goffi, dev, 2024

podcast.nlnet.nl/@NGIZero/epis

Kurt Kremitzki's avatar
Kurt Kremitzki

@kkremitzki@mastodon.social

wanderer - meets the . A self-hosted trail database built on . "Save your adventures!"

wanderer.to/
github.com/flomp/wanderer

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Latest release of , the customizable timeline algorithm / filtering system for your Mastodon feed, lets you blur / hide images marked as sensitive / , which solves the "unwanted dick pics in your feed" issue that can come up when users of one of the more "risque" fediverse servers manage to make one of their favourite hashtags trend.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

screenshot of fedialgo showing an image post from the mastobate.social server has been blurred out
ALT text detailsscreenshot of fedialgo showing an image post from the mastobate.social server has been blurred out
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Tim Chambers's post

@tchambers @benpate @rakoo

Just for the record dropping the open issue on the Fediverse Experience curated list where I keep track of a list of C2S supporting projects and attempts. Any updates most welcome if there's stuff missing.

codeberg.org/fediverse/delight

Grafcube's avatar
Grafcube

@grafcube@sakurajima.social

In case anyone was wondering, yes my project Wordforge is effectively abandoned. I graduated and got a job last year and haven't had the time to work on it. It's a shame really since I really wanted to see something like this on the fediverse, but such is life.

If anyone wants to take over, feel free.

https://codeberg.org/grafcube/wordforge

Grafcube's avatar
Grafcube

@grafcube@sakurajima.social

In case anyone was wondering, yes my project Wordforge is effectively abandoned. I graduated and got a job last year and haven't had the time to work on it. It's a shame really since I really wanted to see something like this on the fediverse, but such is life.

If anyone wants to take over, feel free.

https://codeberg.org/grafcube/wordforge

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Tim Chambers's post

@tchambers @benpate @rakoo

Just for the record dropping the open issue on the Fediverse Experience curated list where I keep track of a list of C2S supporting projects and attempts. Any updates most welcome if there's stuff missing.

codeberg.org/fediverse/delight

Grafcube's avatar
Grafcube

@grafcube@sakurajima.social

In case anyone was wondering, yes my project Wordforge is effectively abandoned. I graduated and got a job last year and haven't had the time to work on it. It's a shame really since I really wanted to see something like this on the fediverse, but such is life.

If anyone wants to take over, feel free.

https://codeberg.org/grafcube/wordforge

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Tonight, this repo was discussed in a thread and I am so glad I clicked on it. Among free fediverse sticker designs you can print yourself and other artwork, there are also fediverse mascot paper toys! Really cute. Now if I only had a color printer...

codeberg.org/fediverse/distrib

The Mastodon mascot sheet cutout for a paper toy.
ALT text detailsThe Mastodon mascot sheet cutout for a paper toy.
The first cutout sheet in building a paper Peer Tube octopus.
ALT text detailsThe first cutout sheet in building a paper Peer Tube octopus.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Excited to share that I've joined (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 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!

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Tonight, this repo was discussed in a thread and I am so glad I clicked on it. Among free fediverse sticker designs you can print yourself and other artwork, there are also fediverse mascot paper toys! Really cute. Now if I only had a color printer...

codeberg.org/fediverse/distrib

The Mastodon mascot sheet cutout for a paper toy.
ALT text detailsThe Mastodon mascot sheet cutout for a paper toy.
The first cutout sheet in building a paper Peer Tube octopus.
ALT text detailsThe first cutout sheet in building a paper Peer Tube octopus.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Tonight, this repo was discussed in a thread and I am so glad I clicked on it. Among free fediverse sticker designs you can print yourself and other artwork, there are also fediverse mascot paper toys! Really cute. Now if I only had a color printer...

codeberg.org/fediverse/distrib

The Mastodon mascot sheet cutout for a paper toy.
ALT text detailsThe Mastodon mascot sheet cutout for a paper toy.
The first cutout sheet in building a paper Peer Tube octopus.
ALT text detailsThe first cutout sheet in building a paper Peer Tube octopus.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Tonight, this repo was discussed in a thread and I am so glad I clicked on it. Among free fediverse sticker designs you can print yourself and other artwork, there are also fediverse mascot paper toys! Really cute. Now if I only had a color printer...

codeberg.org/fediverse/distrib

The Mastodon mascot sheet cutout for a paper toy.
ALT text detailsThe Mastodon mascot sheet cutout for a paper toy.
The first cutout sheet in building a paper Peer Tube octopus.
ALT text detailsThe first cutout sheet in building a paper Peer Tube octopus.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Tonight, this repo was discussed in a thread and I am so glad I clicked on it. Among free fediverse sticker designs you can print yourself and other artwork, there are also fediverse mascot paper toys! Really cute. Now if I only had a color printer...

codeberg.org/fediverse/distrib

The Mastodon mascot sheet cutout for a paper toy.
ALT text detailsThe Mastodon mascot sheet cutout for a paper toy.
The first cutout sheet in building a paper Peer Tube octopus.
ALT text detailsThe first cutout sheet in building a paper Peer Tube octopus.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Tonight, this repo was discussed in a thread and I am so glad I clicked on it. Among free fediverse sticker designs you can print yourself and other artwork, there are also fediverse mascot paper toys! Really cute. Now if I only had a color printer...

codeberg.org/fediverse/distrib

The Mastodon mascot sheet cutout for a paper toy.
ALT text detailsThe Mastodon mascot sheet cutout for a paper toy.
The first cutout sheet in building a paper Peer Tube octopus.
ALT text detailsThe first cutout sheet in building a paper Peer Tube octopus.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

André Menrath's avatar
André Menrath

@linos@graz.social

🎉 Development for Mastodon compatible polls in is starting. This project is receiving funding from the latest round of the NGI Zero Commons Fund.

codeberg.org/linos/wordpress-p

@activitypub.blog

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

lps's avatar
lps

@lps@mograph.social · Reply to lps's post

to get future videos right in your timeline, that allows you to follow and comment thanks to follow their video account directly

@futo_tech

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Christian Lawson-Perfect's post

@christianp

Just a thought, from a knuckle-dragging biology scientist. TL;DR: I believe there is scope to make the hosting of a peertube instance even more lightweight in the future.

I read some time ago of people using to transcode video in a user's web-browser. blog.scottlogic.com/2020/11/23

Since then, I believe has done/is doing some clever things to improve the browser's access to the device's GPU.

I have not seen any capability that offloads video transcoding to the user in this way.

I imagine, though, that this would align well with peertube's agenda of lowering the bar to entry into web-video hosting, so I cannot help but think that this will come in time.

My own interest is seeing a (activitypub) instance whose web-pages could posts into the user's own language using the user's own processing power... One day, maybe!

Thank you again for all your hard work; it is an inspiration.

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Christian Lawson-Perfect's post

@christianp

Just a thought, from a knuckle-dragging biology scientist. TL;DR: I believe there is scope to make the hosting of a peertube instance even more lightweight in the future.

I read some time ago of people using to transcode video in a user's web-browser. blog.scottlogic.com/2020/11/23

Since then, I believe has done/is doing some clever things to improve the browser's access to the device's GPU.

I have not seen any capability that offloads video transcoding to the user in this way.

I imagine, though, that this would align well with peertube's agenda of lowering the bar to entry into web-video hosting, so I cannot help but think that this will come in time.

My own interest is seeing a (activitypub) instance whose web-pages could posts into the user's own language using the user's own processing power... One day, maybe!

Thank you again for all your hard work; it is an inspiration.

lps's avatar
lps

@lps@mograph.social · Reply to lps's post

to get future videos right in your timeline, that allows you to follow and comment thanks to follow their video account directly

@futo_tech

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

New NLNet Projects were recently announced, with a solid collection of ActivityPub related ones:

* Mastodon adding new features for institutional instances
* ActivityPub Polls for Wordpress
* Funkwhale Federation Improvements
* Making Events more interoperable between Fediverse Platforms
* Context Discovery in NodeBB
* Icosa 3-D Model Sharing with ActivityPub

Did I miss any?

nlnet.nl/news/2025/20250624-an

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

André Menrath's avatar
André Menrath

@linos@graz.social

🎉 Development for Mastodon compatible polls in is starting. This project is receiving funding from the latest round of the NGI Zero Commons Fund.

codeberg.org/linos/wordpress-p

@activitypub.blog

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

I decided since I don't understand how all of this works, I will just simply ask Jerry personally about all of this data and technical details, so that people will no longer be confused about all of this.

Includes an exclusive interview with Jerry.

Read or listen: blenderdumbass.org/articles/cl

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

André Menrath's avatar
André Menrath

@linos@graz.social

🎉 Development for Mastodon compatible polls in is starting. This project is receiving funding from the latest round of the NGI Zero Commons Fund.

codeberg.org/linos/wordpress-p

@activitypub.blog

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

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

@encyclia bridges academic research to the by making researcher profiles and publications discoverable through —built with 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 's sponsorship support, which helps make Fedify's development possible.

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

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We are pleased to announce the release of 1.7.0. This release was expedited at the request of the Ghost team, who are actively using Fedify for their 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.

Folix's avatar
Folix

@folix@firefish.fedibikes.de · Reply to Folix's post

Nachdem inzwischen auch unterstützt, muss ich das jetzt doch mal eingehender testen.

https://trails.tchncs.de/trail/view/@folix/k5b68asz44c5k2l

Folix's avatar
Folix

@folix@firefish.fedibikes.de · Reply to Folix's post

Nachdem inzwischen auch unterstützt, muss ich das jetzt doch mal eingehender testen.

https://trails.tchncs.de/trail/view/@folix/k5b68asz44c5k2l

André Menrath's avatar
André Menrath

@linos@graz.social

🎉 Development for Mastodon compatible polls in is starting. This project is receiving funding from the latest round of the NGI Zero Commons Fund.

codeberg.org/linos/wordpress-p

@activitypub.blog

André Menrath's avatar
André Menrath

@linos@graz.social

🎉 Development for Mastodon compatible polls in is starting. This project is receiving funding from the latest round of the NGI Zero Commons Fund.

codeberg.org/linos/wordpress-p

@activitypub.blog

André Menrath's avatar
André Menrath

@linos@graz.social

🎉 Development for Mastodon compatible polls in is starting. This project is receiving funding from the latest round of the NGI Zero Commons Fund.

codeberg.org/linos/wordpress-p

@activitypub.blog

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

André Menrath's avatar
André Menrath

@linos@graz.social

🎉 Development for Mastodon compatible polls in is starting. This project is receiving funding from the latest round of the NGI Zero Commons Fund.

codeberg.org/linos/wordpress-p

@activitypub.blog

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

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

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

Stay tuned for BotKit 0.3.0!

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

I decided since I don't understand how all of this works, I will just simply ask Jerry personally about all of this data and technical details, so that people will no longer be confused about all of this.

Includes an exclusive interview with Jerry.

Read or listen: blenderdumbass.org/articles/cl

Ji Fu's avatar
Ji Fu

@fu@libranet.de

Name one platform that currently exists that you wish would implement
Ji Fu's avatar
Ji Fu

@fu@libranet.de

Name one platform that currently exists that you wish would implement
Johannes Ernst's avatar
Johannes Ernst

@j12t@j12t.social

Anybody with an or or related open social web project planning to go to Web Summit in Lisbon, Portugal, in November? Is that something this community does?

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Christian Lawson-Perfect's post

@christianp

Just a thought, from a knuckle-dragging biology scientist. TL;DR: I believe there is scope to make the hosting of a peertube instance even more lightweight in the future.

I read some time ago of people using to transcode video in a user's web-browser. blog.scottlogic.com/2020/11/23

Since then, I believe has done/is doing some clever things to improve the browser's access to the device's GPU.

I have not seen any capability that offloads video transcoding to the user in this way.

I imagine, though, that this would align well with peertube's agenda of lowering the bar to entry into web-video hosting, so I cannot help but think that this will come in time.

My own interest is seeing a (activitypub) instance whose web-pages could posts into the user's own language using the user's own processing power... One day, maybe!

Thank you again for all your hard work; it is an inspiration.

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

The , a collection of web products, aims to provide a viable web alternative to corporate .

💗 While it has a user base, it remains a platform.

📲 At , new apps like , , and were showcased, demonstrating progress in social graph migration, feed management, and monetisation for creators.

👉 thenewstack.io/bringing-joy-ba

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

This week's news:

- @activitypub.blog talks about how they plan to make WordPress sites a full member of the fediverse, with replies, follows, and your own feed
- @fediforum videos now available, with some thoughts on the ones that stood out to me
- server admins can now opt-in to @fed.brid.gy on a per-server basis
- @swf releases draft for E2EE messaging over with MLS

fediversereport.com/fediverse-

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

The , a collection of web products, aims to provide a viable web alternative to corporate .

💗 While it has a user base, it remains a platform.

📲 At , new apps like , , and were showcased, demonstrating progress in social graph migration, feed management, and monetisation for creators.

👉 thenewstack.io/bringing-joy-ba

doboprobodyne's avatar
doboprobodyne

@doboprobodyne@mathstodon.xyz · Reply to Christian Lawson-Perfect's post

@christianp

Just a thought, from a knuckle-dragging biology scientist. TL;DR: I believe there is scope to make the hosting of a peertube instance even more lightweight in the future.

I read some time ago of people using to transcode video in a user's web-browser. blog.scottlogic.com/2020/11/23

Since then, I believe has done/is doing some clever things to improve the browser's access to the device's GPU.

I have not seen any capability that offloads video transcoding to the user in this way.

I imagine, though, that this would align well with peertube's agenda of lowering the bar to entry into web-video hosting, so I cannot help but think that this will come in time.

My own interest is seeing a (activitypub) instance whose web-pages could posts into the user's own language using the user's own processing power... One day, maybe!

Thank you again for all your hard work; it is an inspiration.

marius's avatar
marius

@mariusor@metalhead.club

Despite traveling, I've been working on some things for and one of them is the ability to generate web optimized images when uploading JPG/PNG files.

The end result is an Image object containing multiple URL entries to small/medium web-optimized copies, plus the original.

This still requires some work on the frontend web components to be able to select from multiple variants based on the reported width/height.

But it also allowed me to fix issues with the ability of the library to process activities that contain multiple Objects.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

I just updated the experience curated list with the latest server platforms. Great to see new types of applications finding their way to the interoperable !

delightful.coding.social/delig

marius's avatar
marius

@mariusor@metalhead.club

Despite traveling, I've been working on some things for and one of them is the ability to generate web optimized images when uploading JPG/PNG files.

The end result is an Image object containing multiple URL entries to small/medium web-optimized copies, plus the original.

This still requires some work on the frontend web components to be able to select from multiple variants based on the reported width/height.

But it also allowed me to fix issues with the ability of the library to process activities that contain multiple Objects.

fedicat's avatar
fedicat

@fedicat@pc.cafe

first code I've seen in

github.com/VernissageApp/Verni

mastodon uno admin :mastodon:'s avatar
mastodon uno admin :mastodon:

@amministratore@mastodon.uno

Scopri il fediverso: una nuova era per i social network!

:fediverso: videos.elenarossini.com/w/peti

Stanco dei soliti social network e della costante ingerenza dei giganti della tecnologia? La regista @_elena ti apre le porte del Fediverso, un universo digitale dove la tua privacy è rispettata e il potere torna finalmente nelle mani degli utenti.

:diggita: @fediverso

Ingo Lantschner's avatar
Ingo Lantschner

@ilanti@troet.fediverse.at · Reply to Elena Rossini ⁂'s post

@_elena @hikingdude @Gruene_Poellau

I opened up this issue on GitHub to address the problem of interaction. github.com/Chocobozzz/PeerTube

I still wonder why remote interaction is made so difficult when there will always be more remote users than local ones. After all, every like on PeerTube so far counts 10 times more. ;-)

Hint: If you have an account on GitHub you can vote for this issue.

Ingo Lantschner's avatar
Ingo Lantschner

@ilanti@troet.fediverse.at · Reply to Elena Rossini ⁂'s post

@_elena @hikingdude @Gruene_Poellau

I opened up this issue on GitHub to address the problem of interaction. github.com/Chocobozzz/PeerTube

I still wonder why remote interaction is made so difficult when there will always be more remote users than local ones. After all, every like on PeerTube so far counts 10 times more. ;-)

Hint: If you have an account on GitHub you can vote for this issue.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-20

Servers

- PeerTube v7.2.1
- Manyfold v0.114.0
- Mitra v4.5.0
- Misskey v2025.6.1
- Sharkey v2025.4.3
- NodeBB v4.4.4
- Surfacing discussions (Ghost)
- New Look, Faster Blocks in ActivityPub 6.0.0 (ActivityPub for WordPress)
- BadgeFed @ FediForum June 2025: Unconferences, Demos, and Community Feedback (BadgeFed)
- BDServer: Server software for making blogs and other similar websites
- Shoot: Instant messenger for the fediverse

Clients

- Moshidon v110
- Aria v1.2.2
- Thunder v0.7.1
- Voyager v2.36.0
- Pixelfed (React Native) v1.4.0.1
- xymopen/CuckooPlus: A GooglePlus-like third-party web client for Mastodon

Tools and Plugins

- PeerTube livechat plugin v14.0.0
- FIRES Server v0.2.0
- Event Bridge for ActivityPub v1.1.1 (WordPress plugin)

For developers

- Fedify v1.6.2
- Fedialgo v0.74.0

Protocol

- Messaging Layer Security over ActivityPub
- FEP-844e: Capability discovery
- FEP-521a: Representing actor's public keys (Finalized)

Articles

- Threads is adding fediverse content to your social feeds
- ORCID and the Fediverse: What Can We Do with Public Information?
- The Seven Deadly UX Sins of the Fediverse Web Experience (To Fix)
- Fediverse Report – #121

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01976ad6-6dbf-3ce4-c032-b3717e766ace

Ingo Lantschner's avatar
Ingo Lantschner

@ilanti@troet.fediverse.at · Reply to Franz Graf's post

@hikingdude @_elena @Gruene_Poellau @ele

I finally managed to like this video with my Mastodon account :mastolove: But it's a loooong story. Made a hopefully helpful article out of it. ingo.lantschner.name/post/2025

If someone want's to host it in English please go on. My whole blog is CC 4.0. The source is some markdown-flavour (Tufte) which I can share as well.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-20

Servers

- PeerTube v7.2.1
- Manyfold v0.114.0
- Mitra v4.5.0
- Misskey v2025.6.1
- Sharkey v2025.4.3
- NodeBB v4.4.4
- Surfacing discussions (Ghost)
- New Look, Faster Blocks in ActivityPub 6.0.0 (ActivityPub for WordPress)
- BadgeFed @ FediForum June 2025: Unconferences, Demos, and Community Feedback (BadgeFed)
- BDServer: Server software for making blogs and other similar websites
- Shoot: Instant messenger for the fediverse

Clients

- Moshidon v110
- Aria v1.2.2
- Thunder v0.7.1
- Voyager v2.36.0
- Pixelfed (React Native) v1.4.0.1
- xymopen/CuckooPlus: A GooglePlus-like third-party web client for Mastodon

Tools and Plugins

- PeerTube livechat plugin v14.0.0
- FIRES Server v0.2.0
- Event Bridge for ActivityPub v1.1.1 (WordPress plugin)

For developers

- Fedify v1.6.2
- Fedialgo v0.74.0

Protocol

- Messaging Layer Security over ActivityPub
- FEP-844e: Capability discovery
- FEP-521a: Representing actor's public keys (Finalized)

Articles

- Threads is adding fediverse content to your social feeds
- ORCID and the Fediverse: What Can We Do with Public Information?
- The Seven Deadly UX Sins of the Fediverse Web Experience (To Fix)
- Fediverse Report – #121

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01976ad6-6dbf-3ce4-c032-b3717e766ace

Grow Your Own Services 🌱's avatar
Grow Your Own Services 🌱

@homegrown@social.growyourown.services

There is now a free open self-hostable Fediverse trail recorder called Wanderer. You can upload GPS data directly and it also lets you import your data from Strava and Komoot.

Wanderer is federated through ActivityPub so Wanderer servers can connect to other Wanderer servers and Mastodon etc servers too. More info at the official website:

➡️ wanderer.to

Source code is at:

➡️ github.com/Flomp/wanderer

You can follow the lead developer at:

➡️ @flomp

Grow Your Own Services 🌱's avatar
Grow Your Own Services 🌱

@homegrown@social.growyourown.services

There is now a free open self-hostable Fediverse trail recorder called Wanderer. You can upload GPS data directly and it also lets you import your data from Strava and Komoot.

Wanderer is federated through ActivityPub so Wanderer servers can connect to other Wanderer servers and Mastodon etc servers too. More info at the official website:

➡️ wanderer.to

Source code is at:

➡️ github.com/Flomp/wanderer

You can follow the lead developer at:

➡️ @flomp

Grow Your Own Services 🌱's avatar
Grow Your Own Services 🌱

@homegrown@social.growyourown.services

There is now a free open self-hostable Fediverse trail recorder called Wanderer. You can upload GPS data directly and it also lets you import your data from Strava and Komoot.

Wanderer is federated through ActivityPub so Wanderer servers can connect to other Wanderer servers and Mastodon etc servers too. More info at the official website:

➡️ wanderer.to

Source code is at:

➡️ github.com/Flomp/wanderer

You can follow the lead developer at:

➡️ @flomp

Write.as's avatar
Write.as

@write_as@writing.exchange

Just rolled out some fediverse-related improvements:

- Now you can follow Write.as blogs from Ghost! There was a tiny bug with this that we just fixed. (WriteFreely PR: writefreely.org/pull/1373)

- We now support the `preview` property as a fallback for Articles. This will make your posts look much nicer as more platforms support it! (WriteFreely PR: writefreely.org/pull/1374)

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
new release of , the customizable timeline algorithm / filtering system for your Mastodon feed, counts the number of times each hashtag appears in your timeline even if people don't use a "#" character to give you a better sense of what people are talking about in the Fediverse.

there's a little bit of art vs. science here because some strings are disqualified from this kind of counting (e.g. a word like "the" should not be counted even if some maniac decided to make it a hashtag) so let me know if you see any weirdly high counts.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo hashtag filters
ALT text detailsscreenshot of fedialgo hashtag filters
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hurray, fedizens!

Another come true 🥳 🎉

codeberg.org/fediverse/fediver

See: wanderer.to

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
new release of , the customizable timeline algorithm / filtering system for your Mastodon feed, counts the number of times each hashtag appears in your timeline even if people don't use a "#" character to give you a better sense of what people are talking about in the Fediverse.

there's a little bit of art vs. science here because some strings are disqualified from this kind of counting (e.g. a word like "the" should not be counted even if some maniac decided to make it a hashtag) so let me know if you see any weirdly high counts.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo hashtag filters
ALT text detailsscreenshot of fedialgo hashtag filters
Plinubius's avatar
Plinubius

@plinubius@chaos.social

Jeden Verein, jede Organisation, der oder die Wordpress einsetzt, muss man eigentlich nur umwerben, das -Plugin einzusetzen. Schon allein dadurch wüchse das Fediverse binnen Wochen um (regional) relevanten Content und lokale Communities. Das könnte man als eine kettenbriefartige Kampagne anlegen bzw. als Mitmach-Challenge. Ein kleines Video-Tutorial, fertig. @_elena @kuketzblog Wie wär's? 1/x

Maddy's avatar
Maddy

@maddyunderstars@aus.social

Hi all,

For the past year I've been working on an activitypub federated instant messenger called Shoot.
I haven't had time to work on it for a while because of my job, so I'm making it public to see if anyone would be interested in helping out.

You can find the server repo here: github.com/MaddyUnderStars/sho
and the client repo here: github.com/MaddyUnderStars/sho

Featureset currently includes:
- Dm channels
- Friends/relationships
- Guilds
- Guild channels
- Guild invites
- Voice calls (not yet federated)
- Mostly working federation with itself
- Iffy federation with other platforms

There's no official instance yet, but I could host one if there is interest.

What I need help with most is:
- Frontend development. The client code is very hacky and gross, let alone the UI haha
- Safety features
- Probably general architecture stuff

Thanks all

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Maddy's avatar
Maddy

@maddyunderstars@aus.social

Hi all,

For the past year I've been working on an activitypub federated instant messenger called Shoot.
I haven't had time to work on it for a while because of my job, so I'm making it public to see if anyone would be interested in helping out.

You can find the server repo here: github.com/MaddyUnderStars/sho
and the client repo here: github.com/MaddyUnderStars/sho

Featureset currently includes:
- Dm channels
- Friends/relationships
- Guilds
- Guild channels
- Guild invites
- Voice calls (not yet federated)
- Mostly working federation with itself
- Iffy federation with other platforms

There's no official instance yet, but I could host one if there is interest.

What I need help with most is:
- Frontend development. The client code is very hacky and gross, let alone the UI haha
- Safety features
- Probably general architecture stuff

Thanks all

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
new release of , the customizable timeline algorithm / filtering system for your Mastodon feed, counts the number of times each hashtag appears in your timeline even if people don't use a "#" character to give you a better sense of what people are talking about in the Fediverse.

there's a little bit of art vs. science here because some strings are disqualified from this kind of counting (e.g. a word like "the" should not be counted even if some maniac decided to make it a hashtag) so let me know if you see any weirdly high counts.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo hashtag filters
ALT text detailsscreenshot of fedialgo hashtag filters
Maddy's avatar
Maddy

@maddyunderstars@aus.social

Hi all,

For the past year I've been working on an activitypub federated instant messenger called Shoot.
I haven't had time to work on it for a while because of my job, so I'm making it public to see if anyone would be interested in helping out.

You can find the server repo here: github.com/MaddyUnderStars/sho
and the client repo here: github.com/MaddyUnderStars/sho

Featureset currently includes:
- Dm channels
- Friends/relationships
- Guilds
- Guild channels
- Guild invites
- Voice calls (not yet federated)
- Mostly working federation with itself
- Iffy federation with other platforms

There's no official instance yet, but I could host one if there is interest.

What I need help with most is:
- Frontend development. The client code is very hacky and gross, let alone the UI haha
- Safety features
- Probably general architecture stuff

Thanks all

Nick's avatar
Nick

@stormii@darmstadt.social

The family just grew! You now can share and interact with trails using ! I love this a lot!
The federation feature just got released, so check it out and if you want contribute: github.com/Flomp/wanderer
In the screenshot attached you can see a post by @demo, how cool is that?!

The image shows a screenshot of a mastodon client. In it a post by @demo@demo.wanderer.to displaying a picture of a trail with the GPX file attached and a link to the post.
ALT text detailsThe image shows a screenshot of a mastodon client. In it a post by @demo@demo.wanderer.to displaying a picture of a trail with the GPX file attached and a link to the post.
Nick's avatar
Nick

@stormii@darmstadt.social

The family just grew! You now can share and interact with trails using ! I love this a lot!
The federation feature just got released, so check it out and if you want contribute: github.com/Flomp/wanderer
In the screenshot attached you can see a post by @demo, how cool is that?!

The image shows a screenshot of a mastodon client. In it a post by @demo@demo.wanderer.to displaying a picture of a trail with the GPX file attached and a link to the post.
ALT text detailsThe image shows a screenshot of a mastodon client. In it a post by @demo@demo.wanderer.to displaying a picture of a trail with the GPX file attached and a link to the post.
Maddy's avatar
Maddy

@maddyunderstars@aus.social

Hi all,

For the past year I've been working on an activitypub federated instant messenger called Shoot.
I haven't had time to work on it for a while because of my job, so I'm making it public to see if anyone would be interested in helping out.

You can find the server repo here: github.com/MaddyUnderStars/sho
and the client repo here: github.com/MaddyUnderStars/sho

Featureset currently includes:
- Dm channels
- Friends/relationships
- Guilds
- Guild channels
- Guild invites
- Voice calls (not yet federated)
- Mostly working federation with itself
- Iffy federation with other platforms

There's no official instance yet, but I could host one if there is interest.

What I need help with most is:
- Frontend development. The client code is very hacky and gross, let alone the UI haha
- Safety features
- Probably general architecture stuff

Thanks all

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Nick's avatar
Nick

@stormii@darmstadt.social

The family just grew! You now can share and interact with trails using ! I love this a lot!
The federation feature just got released, so check it out and if you want contribute: github.com/Flomp/wanderer
In the screenshot attached you can see a post by @demo, how cool is that?!

The image shows a screenshot of a mastodon client. In it a post by @demo@demo.wanderer.to displaying a picture of a trail with the GPX file attached and a link to the post.
ALT text detailsThe image shows a screenshot of a mastodon client. In it a post by @demo@demo.wanderer.to displaying a picture of a trail with the GPX file attached and a link to the post.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Maddy's avatar
Maddy

@maddyunderstars@aus.social

Hi all,

For the past year I've been working on an activitypub federated instant messenger called Shoot.
I haven't had time to work on it for a while because of my job, so I'm making it public to see if anyone would be interested in helping out.

You can find the server repo here: github.com/MaddyUnderStars/sho
and the client repo here: github.com/MaddyUnderStars/sho

Featureset currently includes:
- Dm channels
- Friends/relationships
- Guilds
- Guild channels
- Guild invites
- Voice calls (not yet federated)
- Mostly working federation with itself
- Iffy federation with other platforms

There's no official instance yet, but I could host one if there is interest.

What I need help with most is:
- Frontend development. The client code is very hacky and gross, let alone the UI haha
- Safety features
- Probably general architecture stuff

Thanks all

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hurray, fedizens!

Another come true 🥳 🎉

codeberg.org/fediverse/fediver

See: wanderer.to

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

@james @dajb @ruari @leeloo @badgefed

Hey folks, good news keeps coming :)

@box464 just posted about joining the

See: wanderer.to

And: mastodon.social/@box464/114720

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

wanderer, a self hosted trail logging app, has added federation via ActivityPub. You can now follow, like and comment on trails shared from other instances.

wanderer.to/

Rad Web Hosting's avatar
Rad Web Hosting

@radwebhosting@mastodon.social

How to Host Your Own Server on a (5 Minute Quick-Start Guide)

This article provides a guide for how to host your own Mastodon server on a VPS.

Running your own Mastodon server on a VPS is an excellent way to enjoy an efficient and secure Mastodon experience.
What is Mastodon?
Mastodon is a social media platform that enables users to post ...
Continued 👉 blog.radwebhosting.com/how-to-

Rad Web Hosting's avatar
Rad Web Hosting

@radwebhosting@mastodon.social

How to Host Your Own Server on a (5 Minute Quick-Start Guide)

This article provides a guide for how to host your own Mastodon server on a VPS.

Running your own Mastodon server on a VPS is an excellent way to enjoy an efficient and secure Mastodon experience.
What is Mastodon?
Mastodon is a social media platform that enables users to post ...
Continued 👉 blog.radwebhosting.com/how-to-

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-20

Servers

- PeerTube v7.2.1
- Manyfold v0.114.0
- Mitra v4.5.0
- Misskey v2025.6.1
- Sharkey v2025.4.3
- NodeBB v4.4.4
- Surfacing discussions (Ghost)
- New Look, Faster Blocks in ActivityPub 6.0.0 (ActivityPub for WordPress)
- BadgeFed @ FediForum June 2025: Unconferences, Demos, and Community Feedback (BadgeFed)
- BDServer: Server software for making blogs and other similar websites
- Shoot: Instant messenger for the fediverse

Clients

- Moshidon v110
- Aria v1.2.2
- Thunder v0.7.1
- Voyager v2.36.0
- Pixelfed (React Native) v1.4.0.1
- xymopen/CuckooPlus: A GooglePlus-like third-party web client for Mastodon

Tools and Plugins

- PeerTube livechat plugin v14.0.0
- FIRES Server v0.2.0
- Event Bridge for ActivityPub v1.1.1 (WordPress plugin)

For developers

- Fedify v1.6.2
- Fedialgo v0.74.0

Protocol

- Messaging Layer Security over ActivityPub
- FEP-844e: Capability discovery
- FEP-521a: Representing actor's public keys (Finalized)

Articles

- Threads is adding fediverse content to your social feeds
- ORCID and the Fediverse: What Can We Do with Public Information?
- The Seven Deadly UX Sins of the Fediverse Web Experience (To Fix)
- Fediverse Report – #121

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01976ad6-6dbf-3ce4-c032-b3717e766ace

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-20

Servers

- PeerTube v7.2.1
- Manyfold v0.114.0
- Mitra v4.5.0
- Misskey v2025.6.1
- Sharkey v2025.4.3
- NodeBB v4.4.4
- Surfacing discussions (Ghost)
- New Look, Faster Blocks in ActivityPub 6.0.0 (ActivityPub for WordPress)
- BadgeFed @ FediForum June 2025: Unconferences, Demos, and Community Feedback (BadgeFed)
- BDServer: Server software for making blogs and other similar websites
- Shoot: Instant messenger for the fediverse

Clients

- Moshidon v110
- Aria v1.2.2
- Thunder v0.7.1
- Voyager v2.36.0
- Pixelfed (React Native) v1.4.0.1
- xymopen/CuckooPlus: A GooglePlus-like third-party web client for Mastodon

Tools and Plugins

- PeerTube livechat plugin v14.0.0
- FIRES Server v0.2.0
- Event Bridge for ActivityPub v1.1.1 (WordPress plugin)

For developers

- Fedify v1.6.2
- Fedialgo v0.74.0

Protocol

- Messaging Layer Security over ActivityPub
- FEP-844e: Capability discovery
- FEP-521a: Representing actor's public keys (Finalized)

Articles

- Threads is adding fediverse content to your social feeds
- ORCID and the Fediverse: What Can We Do with Public Information?
- The Seven Deadly UX Sins of the Fediverse Web Experience (To Fix)
- Fediverse Report – #121

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01976ad6-6dbf-3ce4-c032-b3717e766ace

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-20

Servers

- PeerTube v7.2.1
- Manyfold v0.114.0
- Mitra v4.5.0
- Misskey v2025.6.1
- Sharkey v2025.4.3
- NodeBB v4.4.4
- Surfacing discussions (Ghost)
- New Look, Faster Blocks in ActivityPub 6.0.0 (ActivityPub for WordPress)
- BadgeFed @ FediForum June 2025: Unconferences, Demos, and Community Feedback (BadgeFed)
- BDServer: Server software for making blogs and other similar websites
- Shoot: Instant messenger for the fediverse

Clients

- Moshidon v110
- Aria v1.2.2
- Thunder v0.7.1
- Voyager v2.36.0
- Pixelfed (React Native) v1.4.0.1
- xymopen/CuckooPlus: A GooglePlus-like third-party web client for Mastodon

Tools and Plugins

- PeerTube livechat plugin v14.0.0
- FIRES Server v0.2.0
- Event Bridge for ActivityPub v1.1.1 (WordPress plugin)

For developers

- Fedify v1.6.2
- Fedialgo v0.74.0

Protocol

- Messaging Layer Security over ActivityPub
- FEP-844e: Capability discovery
- FEP-521a: Representing actor's public keys (Finalized)

Articles

- Threads is adding fediverse content to your social feeds
- ORCID and the Fediverse: What Can We Do with Public Information?
- The Seven Deadly UX Sins of the Fediverse Web Experience (To Fix)
- Fediverse Report – #121

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01976ad6-6dbf-3ce4-c032-b3717e766ace

Flipboard Tech Desk's avatar
Flipboard Tech Desk

@TechDesk@flipboard.social

Eagle-eyed product developer @parkerortolani spotted something in Apple's WWDC 2025 presentation: Mastodon. During designer Billy Sorrentino's section on visual intelligence, there's a clear shot of @ivory. "It was clearly both a way to subtly show developers what they can do with their own apps, but also read as a sort of endorsement of Mastodon as a social platform," Ortolani writes on his blog. "Apple didn’t show Bluesky, Threads, or X. They chose to show a third-party Mastodon client."

flip.it/WaNDJK

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-20

Servers

- PeerTube v7.2.1
- Manyfold v0.114.0
- Mitra v4.5.0
- Misskey v2025.6.1
- Sharkey v2025.4.3
- NodeBB v4.4.4
- Surfacing discussions (Ghost)
- New Look, Faster Blocks in ActivityPub 6.0.0 (ActivityPub for WordPress)
- BadgeFed @ FediForum June 2025: Unconferences, Demos, and Community Feedback (BadgeFed)
- BDServer: Server software for making blogs and other similar websites
- Shoot: Instant messenger for the fediverse

Clients

- Moshidon v110
- Aria v1.2.2
- Thunder v0.7.1
- Voyager v2.36.0
- Pixelfed (React Native) v1.4.0.1
- xymopen/CuckooPlus: A GooglePlus-like third-party web client for Mastodon

Tools and Plugins

- PeerTube livechat plugin v14.0.0
- FIRES Server v0.2.0
- Event Bridge for ActivityPub v1.1.1 (WordPress plugin)

For developers

- Fedify v1.6.2
- Fedialgo v0.74.0

Protocol

- Messaging Layer Security over ActivityPub
- FEP-844e: Capability discovery
- FEP-521a: Representing actor's public keys (Finalized)

Articles

- Threads is adding fediverse content to your social feeds
- ORCID and the Fediverse: What Can We Do with Public Information?
- The Seven Deadly UX Sins of the Fediverse Web Experience (To Fix)
- Fediverse Report – #121

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01976ad6-6dbf-3ce4-c032-b3717e766ace

Flipboard Tech Desk's avatar
Flipboard Tech Desk

@TechDesk@flipboard.social

Eagle-eyed product developer @parkerortolani spotted something in Apple's WWDC 2025 presentation: Mastodon. During designer Billy Sorrentino's section on visual intelligence, there's a clear shot of @ivory. "It was clearly both a way to subtly show developers what they can do with their own apps, but also read as a sort of endorsement of Mastodon as a social platform," Ortolani writes on his blog. "Apple didn’t show Bluesky, Threads, or X. They chose to show a third-party Mastodon client."

flip.it/WaNDJK

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

» for . — pilots: with . While and other ActivityPub servers still use -- by default, developers in the community are working on a (Fediverse Enhancement Proposal) to clarify signature processing and accommodate hackernoon.com/post-quantum-pr

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

» for . — pilots: with . While and other ActivityPub servers still use -- by default, developers in the community are working on a (Fediverse Enhancement Proposal) to clarify signature processing and accommodate hackernoon.com/post-quantum-pr

vrtxd's avatar
vrtxd

@vrtxd@piipitin.fi

This absolute gem of a talk deserves millions of views and likes! 💎

AI, Solarpunk, and an Uncertain Future in Computing
youtu.be/pdYT1vUrj34
Recorded Fri 12 Jul 2024
Uploaded Fri 22 Nov 2024

by rolltime @rolltime

Slides, references & links:
rollti.me/hope2024

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

To the deadly 7 sins of the listed by @tchambers I'd add the cardinal sin:

"What are we building actually?"

timothychambers.net/2025/06/18

vrtxd's avatar
vrtxd

@vrtxd@piipitin.fi

This absolute gem of a talk deserves millions of views and likes! 💎

AI, Solarpunk, and an Uncertain Future in Computing
youtu.be/pdYT1vUrj34
Recorded Fri 12 Jul 2024
Uploaded Fri 22 Nov 2024

by rolltime @rolltime

Slides, references & links:
rollti.me/hope2024

marius's avatar
marius

@mariusor@metalhead.club

The final form of the library that deals with the processing of Activities will most likely be a state machine with pluggable states based on "activity type" x "object type" pairs.

This ensures calling code can inject its own processing if it has custom vocabulary, or fallback to the ActivtiyPub specification defaults.

How to combine the two without having conflicts might be more difficult though.

Michaël Monney's avatar
Michaël Monney

@mirou@mastodon.social

noob question. Does @pixelfed and Mastodon play nice when moving. ie: can I move an account from Mastodon to Pixelfed and bring our followers with us ?

Delta Chat's avatar
Delta Chat

@delta@chaos.social

We are basically doing what and in particular moxie refused to do or declares impossible: federation.

Both and ecosystems are all about federation.

However, is vertically centralized in that all UIs use the same core which implements all networking, encryption, chat/group/message logic in a single centralized place. The now 40+ mail relay network is driven from centralized code.

At each level replication and federation is built in.

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

This week's news:

- @activitypub.blog talks about how they plan to make WordPress sites a full member of the fediverse, with replies, follows, and your own feed
- @fediforum videos now available, with some thoughts on the ones that stood out to me
- server admins can now opt-in to @fed.brid.gy on a per-server basis
- @swf releases draft for E2EE messaging over with MLS

fediversereport.com/fediverse-

Mauve 👁💜's avatar
Mauve 👁💜

@mauve@mastodon.mauve.moe

For anyone that can't come to my talk at in tonight, check out my slides and run the speaker notes through the shittiest text to speech you can find to get a similar experience.

blog.mauve.moe/slides/decentra

Mauve 👁💜's avatar
Mauve 👁💜

@mauve@mastodon.mauve.moe

For anyone that can't come to my talk at in tonight, check out my slides and run the speaker notes through the shittiest text to speech you can find to get a similar experience.

blog.mauve.moe/slides/decentra

Linux Is Best's avatar
Linux Is Best

@Linux@mastodon.au · Reply to Linux Is Best's post

Of the 2,100 followers I tried to move here, only 36 made it, because of the error on the other site.

If people want to boost (share) this to let people know I moved, and that they'll need to manually follow me, that would be great.

Screenshot shows only 36 people were imported out of the 2,100 followers I had.
ALT text detailsScreenshot shows only 36 people were imported out of the 2,100 followers I had.
Linux Is Best's avatar
Linux Is Best

@Linux@mastodon.au · Reply to Linux Is Best's post

Of the 2,100 followers I tried to move here, only 36 made it, because of the error on the other site.

If people want to boost (share) this to let people know I moved, and that they'll need to manually follow me, that would be great.

Screenshot shows only 36 people were imported out of the 2,100 followers I had.
ALT text detailsScreenshot shows only 36 people were imported out of the 2,100 followers I had.
Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social · Reply to Mastodon Migration's post

@mastodonmigration

Yes, I wonder if there is at least anything which Jay Graber did not promise to anyone!

Delta Chat's avatar
Delta Chat

@delta@chaos.social

We are basically doing what and in particular moxie refused to do or declares impossible: federation.

Both and ecosystems are all about federation.

However, is vertically centralized in that all UIs use the same core which implements all networking, encryption, chat/group/message logic in a single centralized place. The now 40+ mail relay network is driven from centralized code.

At each level replication and federation is built in.

bengo's avatar
bengo

@bengo@mastodon.social

Awesome presentation from @darius at Seattle tonight. Great work on the observatory and fuzzer. 👏🏻
Data driven decisions ftw.

Richie Khoo's avatar
Richie Khoo

@richiekhoo@hachyderm.io · Reply to Todd Alström | BeerAdvocate's post

@toddalstrom

Could someone explain a hypothetical.

If Vance were to join mastodon by comparison, assuming a similar desire to block from so many users, how differently might this play out based on the way that federation works within an Activity Pub context.

Just trying to understand the practical nature of the two protocols as applied to this case.

From what I understand of ATProrocol all that folks blocking achieves is it filters that account off for that user but otherwise the account can roll along just fine to other users. Correct me if I’m wrong here also. Keen to know more.

BT Free

@btfree@social.btfree.org

Hello World!

I just spoke with a #US #Senator office about the #fediverse . They're asking for more information to help spread around #Capital #Hill in small bite sized easy to understand pieces. I'm obviously going to give them @elena beautiful #movie on the #fedi (with some light editing which she's agreed to).

I'll of course show them https://fediverse.info/ and https://fedi.tips/ which are great websites. I figured I'd give them examples of amazing #AP projects such as #mastodon , #pixelfed , #peertube , #bandwagon , and #bonfire ; even things like @admin .

I'd love to know from folks any EASY to understand projects that best encompass the Fediverse and explanations of it.

What are some projects you'd hand to your friends and family that would explain and display to them what we are?

I'll say this isn't going to happen over night. There's lot of questions around regulations, trust & safety, etc. But I feel it's pertinent to at least get the conversation going, especially considering the current state of disdain for big social media and the impending legislation around these things.

I'll finally state if there's anyone in this list that does NOT want to be involved with this, that's totally fine and I understand and I can exclude you from the materials I give to them.

#boost #boostplease #government #laws #activityPub

@benpate @peertube @bonfire
@stefano @dansup @Mastodon

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.

If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...

Read: blenderdumbass.org/articles/pl

BT Free

@btfree@social.btfree.org

Hello World!

I just spoke with a #US #Senator office about the #fediverse . They're asking for more information to help spread around #Capital #Hill in small bite sized easy to understand pieces. I'm obviously going to give them @elena beautiful #movie on the #fedi (with some light editing which she's agreed to).

I'll of course show them https://fediverse.info/ and https://fedi.tips/ which are great websites. I figured I'd give them examples of amazing #AP projects such as #mastodon , #pixelfed , #peertube , #bandwagon , and #bonfire ; even things like @admin .

I'd love to know from folks any EASY to understand projects that best encompass the Fediverse and explanations of it.

What are some projects you'd hand to your friends and family that would explain and display to them what we are?

I'll say this isn't going to happen over night. There's lot of questions around regulations, trust & safety, etc. But I feel it's pertinent to at least get the conversation going, especially considering the current state of disdain for big social media and the impending legislation around these things.

I'll finally state if there's anyone in this list that does NOT want to be involved with this, that's totally fine and I understand and I can exclude you from the materials I give to them.

#boost #boostplease #government #laws #activityPub

@benpate @peertube @bonfire
@stefano @dansup @Mastodon

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.

If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...

Read: blenderdumbass.org/articles/pl

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon is a digital public good« blog.joinmastodon.org/2025/06/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to BT Free's post

@btfree

Though it dates from a couple years back, on can be found the 3-part webinar for Administrations organized specifically for a target audience in .

socialhub.activitypub.rocks/pu

@elena @admin @benpate @peertube @bonfire @stefano @dansup @Mastodon

BT Free

@btfree@social.btfree.org

Hello World!

I just spoke with a #US #Senator office about the #fediverse . They're asking for more information to help spread around #Capital #Hill in small bite sized easy to understand pieces. I'm obviously going to give them @elena beautiful #movie on the #fedi (with some light editing which she's agreed to).

I'll of course show them https://fediverse.info/ and https://fedi.tips/ which are great websites. I figured I'd give them examples of amazing #AP projects such as #mastodon , #pixelfed , #peertube , #bandwagon , and #bonfire ; even things like @admin .

I'd love to know from folks any EASY to understand projects that best encompass the Fediverse and explanations of it.

What are some projects you'd hand to your friends and family that would explain and display to them what we are?

I'll say this isn't going to happen over night. There's lot of questions around regulations, trust & safety, etc. But I feel it's pertinent to at least get the conversation going, especially considering the current state of disdain for big social media and the impending legislation around these things.

I'll finally state if there's anyone in this list that does NOT want to be involved with this, that's totally fine and I understand and I can exclude you from the materials I give to them.

#boost #boostplease #government #laws #activityPub

@benpate @peertube @bonfire
@stefano @dansup @Mastodon

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to beSpacific's post

@bespacific @jeff @TheAdmin

Quite a few have blocked . See , though I don't know if the list is still actively maintained and up-to-date.

fedipact.online

Other than that has taken strategic position on the , and effectively hold the cards. Opinions vary on this.

In any case building it was a big success for them. Built on a dime on top of stack, see:

newsletter.pragmaticengineer.c

I'd say they are ready to pounce but ONLY if needed.

BT Free

@btfree@social.btfree.org

Hello World!

I just spoke with a #US #Senator office about the #fediverse . They're asking for more information to help spread around #Capital #Hill in small bite sized easy to understand pieces. I'm obviously going to give them @elena beautiful #movie on the #fedi (with some light editing which she's agreed to).

I'll of course show them https://fediverse.info/ and https://fedi.tips/ which are great websites. I figured I'd give them examples of amazing #AP projects such as #mastodon , #pixelfed , #peertube , #bandwagon , and #bonfire ; even things like @admin .

I'd love to know from folks any EASY to understand projects that best encompass the Fediverse and explanations of it.

What are some projects you'd hand to your friends and family that would explain and display to them what we are?

I'll say this isn't going to happen over night. There's lot of questions around regulations, trust & safety, etc. But I feel it's pertinent to at least get the conversation going, especially considering the current state of disdain for big social media and the impending legislation around these things.

I'll finally state if there's anyone in this list that does NOT want to be involved with this, that's totally fine and I understand and I can exclude you from the materials I give to them.

#boost #boostplease #government #laws #activityPub

@benpate @peertube @bonfire
@stefano @dansup @Mastodon

BT Free

@btfree@social.btfree.org

Hello World!

I just spoke with a #US #Senator office about the #fediverse . They're asking for more information to help spread around #Capital #Hill in small bite sized easy to understand pieces. I'm obviously going to give them @elena beautiful #movie on the #fedi (with some light editing which she's agreed to).

I'll of course show them https://fediverse.info/ and https://fedi.tips/ which are great websites. I figured I'd give them examples of amazing #AP projects such as #mastodon , #pixelfed , #peertube , #bandwagon , and #bonfire ; even things like @admin .

I'd love to know from folks any EASY to understand projects that best encompass the Fediverse and explanations of it.

What are some projects you'd hand to your friends and family that would explain and display to them what we are?

I'll say this isn't going to happen over night. There's lot of questions around regulations, trust & safety, etc. But I feel it's pertinent to at least get the conversation going, especially considering the current state of disdain for big social media and the impending legislation around these things.

I'll finally state if there's anyone in this list that does NOT want to be involved with this, that's totally fine and I understand and I can exclude you from the materials I give to them.

#boost #boostplease #government #laws #activityPub

@benpate @peertube @bonfire
@stefano @dansup @Mastodon

BT Free

@btfree@social.btfree.org

Hello World!

I just spoke with a #US #Senator office about the #fediverse . They're asking for more information to help spread around #Capital #Hill in small bite sized easy to understand pieces. I'm obviously going to give them @elena beautiful #movie on the #fedi (with some light editing which she's agreed to).

I'll of course show them https://fediverse.info/ and https://fedi.tips/ which are great websites. I figured I'd give them examples of amazing #AP projects such as #mastodon , #pixelfed , #peertube , #bandwagon , and #bonfire ; even things like @admin .

I'd love to know from folks any EASY to understand projects that best encompass the Fediverse and explanations of it.

What are some projects you'd hand to your friends and family that would explain and display to them what we are?

I'll say this isn't going to happen over night. There's lot of questions around regulations, trust & safety, etc. But I feel it's pertinent to at least get the conversation going, especially considering the current state of disdain for big social media and the impending legislation around these things.

I'll finally state if there's anyone in this list that does NOT want to be involved with this, that's totally fine and I understand and I can exclude you from the materials I give to them.

#boost #boostplease #government #laws #activityPub

@benpate @peertube @bonfire
@stefano @dansup @Mastodon

beSpacific's avatar
beSpacific

@bespacific@newsie.social

@jeff @TheAdmin can u please assist w my concern re access to our postings & per this update is largest app to adopt , protocol powering the fediverse, worrying some that Meta will take over decentralized, open source social network made up of interconnected servers. Though Threads isn’t yet full integrated, already some server operators have preemptively Threads, so their users can’t interact w Meta-run social network and vice versa.

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

This week's news:

- @activitypub.blog talks about how they plan to make WordPress sites a full member of the fediverse, with replies, follows, and your own feed
- @fediforum videos now available, with some thoughts on the ones that stood out to me
- server admins can now opt-in to @fed.brid.gy on a per-server basis
- @swf releases draft for E2EE messaging over with MLS

fediversereport.com/fediverse-

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon is a digital public good« blog.joinmastodon.org/2025/06/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Julian Fietkau's post

@julian

This is great, really love it. I recently overhauled the Experience curated list, with a different taxonomy to highlight more innovative areas other than those where adoption is already going strong.

The section still has disappointing few entries, so I am delighted to add @encyclia as newcomer.

delightful.coding.social/delig

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Just pushed a new release of to production. Now sprinkles the latest posts from your homeserver into your feed, caches more stuff for performance reasons, fully supports blocked domains, and some other stuff.

universeodon.com/@cryptadamist

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Just pushed a new release of to production. Now sprinkles the latest posts from your homeserver into your feed, caches more stuff for performance reasons, fully supports blocked domains, and some other stuff.

universeodon.com/@cryptadamist

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
, the customizable timeline algorithm / filtering system for your Mastodon feed, is now deployed on Github Pages and can be used from your web browser.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Just pushed a new release of to production. Now sprinkles the latest posts from your homeserver into your feed, caches more stuff for performance reasons, fully supports blocked domains, and some other stuff.

universeodon.com/@cryptadamist

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

This week's news:

- @activitypub.blog talks about how they plan to make WordPress sites a full member of the fediverse, with replies, follows, and your own feed
- @fediforum videos now available, with some thoughts on the ones that stood out to me
- server admins can now opt-in to @fed.brid.gy on a per-server basis
- @swf releases draft for E2EE messaging over with MLS

fediversereport.com/fediverse-

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
Just pushed a new release of to production. Now sprinkles the latest posts from your homeserver into your feed, caches more stuff for performance reasons, fully supports blocked domains, and some other stuff.

universeodon.com/@cryptadamist

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

This week's news:

- @activitypub.blog talks about how they plan to make WordPress sites a full member of the fediverse, with replies, follows, and your own feed
- @fediforum videos now available, with some thoughts on the ones that stood out to me
- server admins can now opt-in to @fed.brid.gy on a per-server basis
- @swf releases draft for E2EE messaging over with MLS

fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

This week's news:

- @activitypub.blog talks about how they plan to make WordPress sites a full member of the fediverse, with replies, follows, and your own feed
- @fediforum videos now available, with some thoughts on the ones that stood out to me
- server admins can now opt-in to @fed.brid.gy on a per-server basis
- @swf releases draft for E2EE messaging over with MLS

fediversereport.com/fediverse-

Winbuzzer's avatar
Winbuzzer

@winbuzzer@mastodon.social

Threads Launches Fediverse Feed, Sparking Strategic Debate

winbuzzer.com/2025/06/17/threa

Manyfold's avatar
Manyfold

@manyfold@3dp.chat

🥳 Manyfold v0.114.0 is out, once again focused on public instances. Features include automatic setup of a creator profile for new users, required creator and license for published models, and the usual host of bugfixes.

And, get ready, because now that lot's done, we're launching our public instance *very* soon.

🗞️ Full release notes: manyfold.app/news/2025/06/17/r

❤️ Support us on OpenCollective: opencollective.com/manyfold

🏷️ @3dprinting

Winbuzzer's avatar
Winbuzzer

@winbuzzer@mastodon.social

Threads Launches Fediverse Feed, Sparking Strategic Debate

winbuzzer.com/2025/06/17/threa

🍄🌈🎮💻🚲🥓🎃💀🏴🛻🇺🇸's avatar
🍄🌈🎮💻🚲🥓🎃💀🏴🛻🇺🇸

@schizanon@mastodon.social

I saw just updated their terms of service to prohibit scraping data for training which sucks. Maybe I'll move instances again.

But I wonder; how does this work across the ? Like, surely an instance that federates with m.s doesn't have to abide by this rule, and could allow the same content to be scrapped from their servers instead.

Which just makes this kind of performative.

Manyfold's avatar
Manyfold

@manyfold@3dp.chat

🥳 Manyfold v0.114.0 is out, once again focused on public instances. Features include automatic setup of a creator profile for new users, required creator and license for published models, and the usual host of bugfixes.

And, get ready, because now that lot's done, we're launching our public instance *very* soon.

🗞️ Full release notes: manyfold.app/news/2025/06/17/r

❤️ Support us on OpenCollective: opencollective.com/manyfold

🏷️ @3dprinting

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Doug Belshaw's post

@dajb @ruari @leeloo

For sure. The most interesting too re:fediverse, I think.

If this were brought to protocol extensions, there'd be opportunity to split into multiple separate domains.

Extension for geo and maps support, generally useful.

Health/fitness related metrics.

And maybe richer ways to model "community" as these metrics aren't typically global public square stuff.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Velocipede Rider's post

@ruari @leeloo

Hey there. AFAIK there are no alternatives with yet. However in my recent overhaul of the Experience curated list I found there's one platform planning it:

delightful.coding.social/delig

There is also a fediverse idea that you might add info to. See: codeberg.org/fediverse/fediver

There's regular interest for fedi trackers, and there might be a team of ppl to start a project. I tracked your interest.

CC'ing @dajb showing interest in the past.

Leeloo's avatar
Leeloo

@leeloo@techhub.social · Reply to Velocipede Rider's post

@ruari
Is the Strava link set to private, or did they decide that you can no longer show things to non-menbers, like Xitter when Musk took over?

Also, wondering if there's an open alternative (if not, someone go write one that federates with ActivityPub).

Leeloo's avatar
Leeloo

@leeloo@techhub.social · Reply to Velocipede Rider's post

@ruari
Is the Strava link set to private, or did they decide that you can no longer show things to non-menbers, like Xitter when Musk took over?

Also, wondering if there's an open alternative (if not, someone go write one that federates with ActivityPub).

Your inconvenient idiot's avatar
Your inconvenient idiot

@Rascha@mastodon.social · Reply to fromjason.xyz ❤️ 💻's post

@fromjason Do you know of a good article that compares the advantages and disadvantages of and the other protocol?

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to mray's post

@mray @cwebber would love to know as well.

For people not in the know, @librecast is a R&D initiative that's innovating the internet stack with support of @NGIZero and @nlnet

First, to enable on the unicast internet an overlay network is planned, based on . See:

librecast.net/librecast-strate

LIVE will bring all the technology together, to demonstrate and be a reference implementation. With support being planned. See:

librecast.net/live.html

fromjason.xyz ❤️ 💻's avatar
fromjason.xyz ❤️ 💻

@fromjason@mastodon.social

Has anyone coined a colloquial term for 's flavor of decentralization? is often associated with the “federation" flavor, but that term doesn't feel applicable to Bsky/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to mray's post

@mray @cwebber would love to know as well.

For people not in the know, @librecast is a R&D initiative that's innovating the internet stack with support of @NGIZero and @nlnet

First, to enable on the unicast internet an overlay network is planned, based on . See:

librecast.net/librecast-strate

LIVE will bring all the technology together, to demonstrate and be a reference implementation. With support being planned. See:

librecast.net/live.html

mray's avatar
mray

@mray@social.tchncs.de · Reply to Christine Lemmer-Webber's post

@cwebber I'd love to know what you think about (if you heard of it) in terms of what we "miss, now that there is ".

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Stevez's post

@theron29 @simon_brooke @hosford42
@gse @hosford42

Yes! Among others. Delightful developments are underway. Not just in and but more code softwares to follow.

🌱 As you likely know and with great help of @NGIZero - and @nlnet - the protocol extension of called @forgefed is maturing and evolving.

💎 The curated experience list taxonomy has a section with projects that are adopting specs. See:

delightful.coding.social/delig

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Stevez's post

@theron29 @simon_brooke @hosford42
@gse @hosford42

Yes! Among others. Delightful developments are underway. Not just in and but more code softwares to follow.

🌱 As you likely know and with great help of @NGIZero - and @nlnet - the protocol extension of called @forgefed is maturing and evolving.

💎 The curated experience list taxonomy has a section with projects that are adopting specs. See:

delightful.coding.social/delig

mray's avatar
mray

@mray@social.tchncs.de · Reply to Christine Lemmer-Webber's post

@cwebber I'd love to know what you think about (if you heard of it) in terms of what we "miss, now that there is ".

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Stevez's post

@theron29 @simon_brooke @hosford42
@gse @hosford42

Yes! Among others. Delightful developments are underway. Not just in and but more code softwares to follow.

🌱 As you likely know and with great help of @NGIZero - and @nlnet - the protocol extension of called @forgefed is maturing and evolving.

💎 The curated experience list taxonomy has a section with projects that are adopting specs. See:

delightful.coding.social/delig

Simon Brooke's avatar
Simon Brooke

@simon_brooke@mastodon.scot · Reply to Aaron's post

@hosford42 I have copies of all my public repositories on GitHub still, because on GitHub they're discoverable. But GitHub is no longer a safe place for people; it's increasingly an engine of exploitation, and it's increasingly a place where malefactors are tolerated.

I am really looking forward to the point where federation in @forgejo works well, so that we can have reasonable discoverability in .

journeyman.cc/blog/posts-outpu

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

What should happen if an Like activity uses direct addressing (no as:Public)? It seems the intent is that you want to send a "private" Like notification to the activity recipients. Should the public like count be incremented or not as a side-effect? If not, Like counts would be dependent on the authorization of the actor fetching an AP object. I hope ActivityPub 2.0 has better authorization guidance.

1TE.CH Tech News's avatar
1TE.CH Tech News

@1tech@mastodon.social

Join the Fedizens! Isn't it time to leave legacy social media and start afresh? 👉 @fedizen Fedizen.EU

,  🚫 Big Tech shapes opinions through targeted ads and polarizing content: empowers with transparent .

 🧠 Research shows that algorithm-driven feeds fuel anxiety and addiction: platforms, like , avoid manipulative engagement tactics. (1/2)

Simon Brooke's avatar
Simon Brooke

@simon_brooke@mastodon.scot · Reply to Aaron's post

@hosford42 I have copies of all my public repositories on GitHub still, because on GitHub they're discoverable. But GitHub is no longer a safe place for people; it's increasingly an engine of exploitation, and it's increasingly a place where malefactors are tolerated.

I am really looking forward to the point where federation in @forgejo works well, so that we can have reasonable discoverability in .

journeyman.cc/blog/posts-outpu

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

What should happen if an Like activity uses direct addressing (no as:Public)? It seems the intent is that you want to send a "private" Like notification to the activity recipients. Should the public like count be incremented or not as a side-effect? If not, Like counts would be dependent on the authorization of the actor fetching an AP object. I hope ActivityPub 2.0 has better authorization guidance.

bengo's avatar
bengo

@bengo@mastodon.social

⚠️ We’re now entering the “extinguish” part of “Embrace, extend, extinguish”. We’ve had the first proposals in @socialcg to remove requirements of that have been in place for 7+ years, and without an explanation how the removal improves anything.
en.m.wikipedia.org/wiki/Embrac

React if you’d like a when there are proposals to change the requirements of ActivityPub as we’ve begun to see the last couple weeks.

Join w3.org/community/socialcg/

1TE.CH Tech News's avatar
1TE.CH Tech News

@1tech@mastodon.social · Reply to 1TE.CH Tech News's post

 🔒 Unlike Facebook, Instagram, LinkedIn, Reddit, TikTok, YouTube, XTwitter, decentralised networks don’t harvest your data for profit: You are in !

 🚀 prevents corporate control, ensuring and moderation: Open standards ensure and foster .

👉 in the ⁂ on : Fedizen.EU (2/2)

1TE.CH Tech News's avatar
1TE.CH Tech News

@1tech@mastodon.social · Reply to 1TE.CH Tech News's post

 🔒 Unlike Facebook, Instagram, LinkedIn, Reddit, TikTok, YouTube, XTwitter, decentralised networks don’t harvest your data for profit: You are in !

 🚀 prevents corporate control, ensuring and moderation: Open standards ensure and foster .

👉 in the ⁂ on : Fedizen.EU (2/2)

1TE.CH Tech News's avatar
1TE.CH Tech News

@1tech@mastodon.social

Join the Fedizens! Isn't it time to leave legacy social media and start afresh? 👉 @fedizen Fedizen.EU

,  🚫 Big Tech shapes opinions through targeted ads and polarizing content: empowers with transparent .

 🧠 Research shows that algorithm-driven feeds fuel anxiety and addiction: platforms, like , avoid manipulative engagement tactics. (1/2)

bengo's avatar
bengo

@bengo@mastodon.social

⚠️ We’re now entering the “extinguish” part of “Embrace, extend, extinguish”. We’ve had the first proposals in @socialcg to remove requirements of that have been in place for 7+ years, and without an explanation how the removal improves anything.
en.m.wikipedia.org/wiki/Embrac

React if you’d like a when there are proposals to change the requirements of ActivityPub as we’ve begun to see the last couple weeks.

Join w3.org/community/socialcg/

Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"At the heart of these alternative apps lies platform — a portmanteau of "federated" and "universe" that represents a radical reimagining of how social media can work. Unlike traditional platforms where users are locked into isolated ecosystems, the Fediverse operates as an interconnected network of independent servers that communicate with each other through a standard protocol called ."

forbes.com/sites/esatdedezade/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

With just 32 hours left to go...I can't believe it...they are less than $500 away from meeting the $55k goal, which will add in-app live streaming capabilities.

Let's make this happen. 💪🏼

support.joinpeertube.org/en/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

With just 32 hours left to go...I can't believe it...they are less than $500 away from meeting the $55k goal, which will add in-app live streaming capabilities.

Let's make this happen. 💪🏼

support.joinpeertube.org/en/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

With just 32 hours left to go...I can't believe it...they are less than $500 away from meeting the $55k goal, which will add in-app live streaming capabilities.

Let's make this happen. 💪🏼

support.joinpeertube.org/en/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

With just 32 hours left to go...I can't believe it...they are less than $500 away from meeting the $55k goal, which will add in-app live streaming capabilities.

Let's make this happen. 💪🏼

support.joinpeertube.org/en/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

The spec says "sharedInbox endpoints SHOULD also be publicly readable OrderedCollection objects containing objects addressed to the Public special collection". Has anybody seen any implementations of this? The spec doesn't specify if the public objects are local to the instance being queried or should only include federated objects (or activities?). Given it's an "inbox" endpoint, I'd guess it's a collection of federated activities (since that's what's posted to the sharedInbox). 🤷

Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"At the heart of these alternative apps lies platform — a portmanteau of "federated" and "universe" that represents a radical reimagining of how social media can work. Unlike traditional platforms where users are locked into isolated ecosystems, the Fediverse operates as an interconnected network of independent servers that communicate with each other through a standard protocol called ."

forbes.com/sites/esatdedezade/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

The spec says "sharedInbox endpoints SHOULD also be publicly readable OrderedCollection objects containing objects addressed to the Public special collection". Has anybody seen any implementations of this? The spec doesn't specify if the public objects are local to the instance being queried or should only include federated objects (or activities?). Given it's an "inbox" endpoint, I'd guess it's a collection of federated activities (since that's what's posted to the sharedInbox). 🤷

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

The spec says "sharedInbox endpoints SHOULD also be publicly readable OrderedCollection objects containing objects addressed to the Public special collection". Has anybody seen any implementations of this? The spec doesn't specify if the public objects are local to the instance being queried or should only include federated objects (or activities?). Given it's an "inbox" endpoint, I'd guess it's a collection of federated activities (since that's what's posted to the sharedInbox). 🤷

Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"At the heart of these alternative apps lies platform — a portmanteau of "federated" and "universe" that represents a radical reimagining of how social media can work. Unlike traditional platforms where users are locked into isolated ecosystems, the Fediverse operates as an interconnected network of independent servers that communicate with each other through a standard protocol called ."

forbes.com/sites/esatdedezade/

Nick Bohle 🇪🇺's avatar
Nick Bohle 🇪🇺

@NickBohle@mastodon.social

Oh, the / team wrote about federated social networks, but they did not mention for .

blog.gravatar.com/2025/06/13/d

Nick Bohle 🇪🇺's avatar
Nick Bohle 🇪🇺

@NickBohle@mastodon.social

Oh, the / team wrote about federated social networks, but they did not mention for .

blog.gravatar.com/2025/06/13/d

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

I decided since I don't understand how all of this works, I will just simply ask Jerry personally about all of this data and technical details, so that people will no longer be confused about all of this.

Includes an exclusive interview with Jerry.

Read or listen: blenderdumbass.org/articles/cl

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Happy to be finding so many fediverse merchandise stores lately - I was sure I had them all when I setup the list originally. Glad to be proven wrong.

Here's an instance specific one - get the vmst.io logo on a t-shirt! The title of the shirt is "Toots In / Toots Out". 🎺

cottonbureau.com/p/5HW79D/shir

@vmstan

A blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
ALT text detailsA blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org · Reply to Sean Tilley's post

Hey @pfefferle, is there any recommended ways to scale up a WordPress installation that has a lot of #ActivityPub subscribers? It seems whenever I push out a podcast episode now, there’s a period of downtime while my server tries to push everything out. 😞

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Happy to be finding so many fediverse merchandise stores lately - I was sure I had them all when I setup the list originally. Glad to be proven wrong.

Here's an instance specific one - get the vmst.io logo on a t-shirt! The title of the shirt is "Toots In / Toots Out". 🎺

cottonbureau.com/p/5HW79D/shir

@vmstan

A blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
ALT text detailsA blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

I decided since I don't understand how all of this works, I will just simply ask Jerry personally about all of this data and technical details, so that people will no longer be confused about all of this.

Includes an exclusive interview with Jerry.

Read or listen: blenderdumbass.org/articles/cl

Peter Link 🍉🇨🇺🇵🇸🐧's avatar
Peter Link 🍉🇨🇺🇵🇸🐧

@Peter_Link@expressional.social

And , And Alternatives Could Transform

from
ByEsat Dedezade, Contributor.
Esat Dedezade is U.K.-based journalist who covers Big Tech for Forbes
Jan 25, 2025, 12:23pm EST

[a very well-written article with a favorable yet realistic angle on the ]

"At the heart of these alternative apps lies the Fediverse platform — a portmanteau of "federated" and "universe" that represents a radical reimagining of how social media can work. Unlike traditional platforms where users are locked into isolated ecosystems, the Fediverse operates as an interconnected network of independent servers that communicate with each other through a standard protocol called ."

forbes.com/sites/esatdedezade/

Sigismund Ninja's avatar
Sigismund Ninja

@sigismundninja@mastodon.nu · Reply to rabble's post

@rabble

What is the state of key-based identities in ActivityPub? Or applications that utilize key-based identities on top of ActivityPub?

Matthias Kirschner's avatar
Matthias Kirschner

@kirschner@mastodon.social

For today at I highly recommend @Tobias 's talk "about: - An introduction to the decentralised social network" at 11:00 in room A112! Learn more about , get a good overview about the concept of the fediverse and how @Mastodon @pixelfed @friendica @wordpress and other services work in a decentralised way.

pretalx.devconf.info/devconf-c

poster talk with us about the fediverse
ALT text detailsposter talk with us about the fediverse
Matthias Kirschner's avatar
Matthias Kirschner

@kirschner@mastodon.social

For today at I highly recommend @Tobias 's talk "about: - An introduction to the decentralised social network" at 11:00 in room A112! Learn more about , get a good overview about the concept of the fediverse and how @Mastodon @pixelfed @friendica @wordpress and other services work in a decentralised way.

pretalx.devconf.info/devconf-c

poster talk with us about the fediverse
ALT text detailsposter talk with us about the fediverse
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Happy to be finding so many fediverse merchandise stores lately - I was sure I had them all when I setup the list originally. Glad to be proven wrong.

Here's an instance specific one - get the vmst.io logo on a t-shirt! The title of the shirt is "Toots In / Toots Out". 🎺

cottonbureau.com/p/5HW79D/shir

@vmstan

A blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
ALT text detailsA blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-13

Servers

- Manyfold v0.112.0
- flohmarkt v0.10.0
- Lemmy v0.19.12
- ActivityPub for WordPress v6.0.2
- NodeBB v4.4.3
- Trunk & Tidbits, May 2025 (Mastodon)
- Our 2025 Roadmap: Building the Future of WordPress Federation (ActivityPub for WordPress)

Clients

- Pixelix v4.1.1
- Fread v1.4.2
- Aria v1.2.0
- Phanpy changelog
- Flutter application development: feedback (1/2) (PeerTube Mobile)

Tools and Plugins

- PeerTube livechat plugin v13.0.0

For developers

- Fedify v1.6.1
- megalodon v10.1.2
- Fedialgo v0.72.0
- macgirvin/http-message-signer: RFC 9421 signer and verifier class in PHP
- APx: Minimalistic ActivityPub toolkit written in Rust
- mastodon-openapi: A tool for generating OpenAPI schemas from Mastodon API documentation

Articles

- Backfilling Conversations: Two Major Approaches
- Introducing the Fediverse: a New Era of Social Media
- I Posted to Mastodon 1 Mile Away from an Internet Connection
- Fediverse Report – #120

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019746fb-8918-8fd7-2c16-4c142ccf7387

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Happy to be finding so many fediverse merchandise stores lately - I was sure I had them all when I setup the list originally. Glad to be proven wrong.

Here's an instance specific one - get the vmst.io logo on a t-shirt! The title of the shirt is "Toots In / Toots Out". 🎺

cottonbureau.com/p/5HW79D/shir

@vmstan

A blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
ALT text detailsA blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Happy to be finding so many fediverse merchandise stores lately - I was sure I had them all when I setup the list originally. Glad to be proven wrong.

Here's an instance specific one - get the vmst.io logo on a t-shirt! The title of the shirt is "Toots In / Toots Out". 🎺

cottonbureau.com/p/5HW79D/shir

@vmstan

A blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
ALT text detailsA blue t-shirt featuring a white graphic design with an upward arrow and a downward arrow, surrounding a circle.
Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-13

Servers

- Manyfold v0.112.0
- flohmarkt v0.10.0
- Lemmy v0.19.12
- ActivityPub for WordPress v6.0.2
- NodeBB v4.4.3
- Trunk & Tidbits, May 2025 (Mastodon)
- Our 2025 Roadmap: Building the Future of WordPress Federation (ActivityPub for WordPress)

Clients

- Pixelix v4.1.1
- Fread v1.4.2
- Aria v1.2.0
- Phanpy changelog
- Flutter application development: feedback (1/2) (PeerTube Mobile)

Tools and Plugins

- PeerTube livechat plugin v13.0.0

For developers

- Fedify v1.6.1
- megalodon v10.1.2
- Fedialgo v0.72.0
- macgirvin/http-message-signer: RFC 9421 signer and verifier class in PHP
- APx: Minimalistic ActivityPub toolkit written in Rust
- mastodon-openapi: A tool for generating OpenAPI schemas from Mastodon API documentation

Articles

- Backfilling Conversations: Two Major Approaches
- Introducing the Fediverse: a New Era of Social Media
- I Posted to Mastodon 1 Mile Away from an Internet Connection
- Fediverse Report – #120

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019746fb-8918-8fd7-2c16-4c142ccf7387

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-13

Servers

- Manyfold v0.112.0
- flohmarkt v0.10.0
- Lemmy v0.19.12
- ActivityPub for WordPress v6.0.2
- NodeBB v4.4.3
- Trunk & Tidbits, May 2025 (Mastodon)
- Our 2025 Roadmap: Building the Future of WordPress Federation (ActivityPub for WordPress)

Clients

- Pixelix v4.1.1
- Fread v1.4.2
- Aria v1.2.0
- Phanpy changelog
- Flutter application development: feedback (1/2) (PeerTube Mobile)

Tools and Plugins

- PeerTube livechat plugin v13.0.0

For developers

- Fedify v1.6.1
- megalodon v10.1.2
- Fedialgo v0.72.0
- macgirvin/http-message-signer: RFC 9421 signer and verifier class in PHP
- APx: Minimalistic ActivityPub toolkit written in Rust
- mastodon-openapi: A tool for generating OpenAPI schemas from Mastodon API documentation

Articles

- Backfilling Conversations: Two Major Approaches
- Introducing the Fediverse: a New Era of Social Media
- I Posted to Mastodon 1 Mile Away from an Internet Connection
- Fediverse Report – #120

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019746fb-8918-8fd7-2c16-4c142ccf7387

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-13

Servers

- Manyfold v0.112.0
- flohmarkt v0.10.0
- Lemmy v0.19.12
- ActivityPub for WordPress v6.0.2
- NodeBB v4.4.3
- Trunk & Tidbits, May 2025 (Mastodon)
- Our 2025 Roadmap: Building the Future of WordPress Federation (ActivityPub for WordPress)

Clients

- Pixelix v4.1.1
- Fread v1.4.2
- Aria v1.2.0
- Phanpy changelog
- Flutter application development: feedback (1/2) (PeerTube Mobile)

Tools and Plugins

- PeerTube livechat plugin v13.0.0

For developers

- Fedify v1.6.1
- megalodon v10.1.2
- Fedialgo v0.72.0
- macgirvin/http-message-signer: RFC 9421 signer and verifier class in PHP
- APx: Minimalistic ActivityPub toolkit written in Rust
- mastodon-openapi: A tool for generating OpenAPI schemas from Mastodon API documentation

Articles

- Backfilling Conversations: Two Major Approaches
- Introducing the Fediverse: a New Era of Social Media
- I Posted to Mastodon 1 Mile Away from an Internet Connection
- Fediverse Report – #120

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019746fb-8918-8fd7-2c16-4c142ccf7387

Peter Link 🍉🇨🇺🇵🇸🐧's avatar
Peter Link 🍉🇨🇺🇵🇸🐧

@Peter_Link@expressional.social

And , And Alternatives Could Transform

from
ByEsat Dedezade, Contributor.
Esat Dedezade is U.K.-based journalist who covers Big Tech for Forbes
Jan 25, 2025, 12:23pm EST

[a very well-written article with a favorable yet realistic angle on the ]

"At the heart of these alternative apps lies the Fediverse platform — a portmanteau of "federated" and "universe" that represents a radical reimagining of how social media can work. Unlike traditional platforms where users are locked into isolated ecosystems, the Fediverse operates as an interconnected network of independent servers that communicate with each other through a standard protocol called ."

forbes.com/sites/esatdedezade/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to UniversityofGroningenLibrary's post

@Bibliothecaris

Re: + . I'm initiator of Delightful for people to keep curated directories. Similar to Awesome on except only for open resources.

There's 2 lists I want to bring to attention. First one, the experience. It needs more open science entries 💪

delightful.coding.social/delig

2nd list needs co-maintainers with background because this list requires quality and rigour I can't deliver:

delightful.coding.social/delig

Peter Link 🍉🇨🇺🇵🇸🐧's avatar
Peter Link 🍉🇨🇺🇵🇸🐧

@Peter_Link@expressional.social

And , And Alternatives Could Transform

from
ByEsat Dedezade, Contributor.
Esat Dedezade is U.K.-based journalist who covers Big Tech for Forbes
Jan 25, 2025, 12:23pm EST

[a very well-written article with a favorable yet realistic angle on the ]

"At the heart of these alternative apps lies the Fediverse platform — a portmanteau of "federated" and "universe" that represents a radical reimagining of how social media can work. Unlike traditional platforms where users are locked into isolated ecosystems, the Fediverse operates as an interconnected network of independent servers that communicate with each other through a standard protocol called ."

forbes.com/sites/esatdedezade/

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

will now let you filter your feed by the server your timeline toots are originating from. You can also choose whether to color highlight hashtags you've participated in or favourited and some other fun stuff.

* Try it w/your browser: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

screenshot of fedialgo demo
ALT text detailsscreenshot of fedialgo demo
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

What's The experience?

Good question. Fedi sheds delight, informs, connects people. Brings hope, inclusion, spreads awareness, protects, loves and supports. This is a fedi to care for, foster, nurture and grow. Towards a

Built on foundations of free software projects, now we must build cohesive ecosystems in order to take our next steps.

W3C is getting a fresh portal. It awaits your input and ideas. I just gave my 2cts: a list.

github.com/swicg/activitypub.r

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

will now let you filter your feed by the server your timeline toots are originating from. You can also choose whether to color highlight hashtags you've participated in or favourited and some other fun stuff.

* Try it w/your browser: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

screenshot of fedialgo demo
ALT text detailsscreenshot of fedialgo demo
Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com · Reply to Andy Piper's post

@andypiper BIG FAN of both @johnonolan ‘s #Ghost and @pfefferle ‘s #ActivityPub for #Wordpress plugin - happy to give them shoutouts at any opportunity ❤️✨🚀

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com · Reply to Andy Piper's post

@andypiper BIG FAN of both @johnonolan ‘s #Ghost and @pfefferle ‘s #ActivityPub for #Wordpress plugin - happy to give them shoutouts at any opportunity ❤️✨🚀

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com · Reply to Andy Piper's post

@andypiper BIG FAN of both @johnonolan ‘s #Ghost and @pfefferle ‘s #ActivityPub for #Wordpress plugin - happy to give them shoutouts at any opportunity ❤️✨🚀

Our Wonderful Green Future's avatar
Our Wonderful Green Future

@OWGF@mastodon.world

Is this what my Wordpress blog should look like?
Bringing my Domain name, my primary blog and my SocialWeb stuff together into one united page? (they would stack in mobile)
🤔

OWGF wordpress page and mastodon pages combined.
ALT text detailsOWGF wordpress page and mastodon pages combined.
Our Wonderful Green Future's avatar
Our Wonderful Green Future

@OWGF@mastodon.world

Is this what my Wordpress blog should look like?
Bringing my Domain name, my primary blog and my SocialWeb stuff together into one united page? (they would stack in mobile)
🤔

OWGF wordpress page and mastodon pages combined.
ALT text detailsOWGF wordpress page and mastodon pages combined.
Our Wonderful Green Future's avatar
Our Wonderful Green Future

@OWGF@mastodon.world

Is this what my Wordpress blog should look like?
Bringing my Domain name, my primary blog and my SocialWeb stuff together into one united page? (they would stack in mobile)
🤔

OWGF wordpress page and mastodon pages combined.
ALT text detailsOWGF wordpress page and mastodon pages combined.
Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"In addition to the way servers communicate with each other across the Fediverse, also defines a “Client-to-Server” API.
This is mainly designed to allow apps and clients (such as mobile apps) to publish content to a Fediverse server.
In the future, this could open up interesting possibilities for — for example, allowing WordPress to act as a bridge or proxy, making it easier to bring in and federate content from other tools or platforms."

activitypub.blog/2025/06/11/ou

Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"In addition to the way servers communicate with each other across the Fediverse, also defines a “Client-to-Server” API.
This is mainly designed to allow apps and clients (such as mobile apps) to publish content to a Fediverse server.
In the future, this could open up interesting possibilities for — for example, allowing WordPress to act as a bridge or proxy, making it easier to bring in and federate content from other tools or platforms."

activitypub.blog/2025/06/11/ou

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Ecologia Digital's post

@josemurilo yes, remarkable.

I keep track of a list of implementations at the newly revamped delightful.coding.social/delig

See: codeberg.org/fediverse/delight

PS. @box464 also tooted about this today and I dropped off the codeberg issue too. I hope to find more C2S implementers or would-be ones.

Derick Rethans's avatar
Derick Rethans

@derickr@phpc.social

📜 I wrote a new article: "Own Your Content"

📢 In it, I discuss how the Fediverse, through ActivityPub, is the antidote against walled gardens, oppressive advertising, data-stealing, surveillance, and enshittification by Big Tech™.

🔗 derickrethans.nl/own-your-cont

💻 I gave a keynote based on it at in Berlin last week. I hope to soon make a recording too.

:fediverse: I also have an ActivityPub version which you can read at phpc.social/@blog@social.deric

Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"In addition to the way servers communicate with each other across the Fediverse, also defines a “Client-to-Server” API.
This is mainly designed to allow apps and clients (such as mobile apps) to publish content to a Fediverse server.
In the future, this could open up interesting possibilities for — for example, allowing WordPress to act as a bridge or proxy, making it easier to bring in and federate content from other tools or platforms."

activitypub.blog/2025/06/11/ou

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be

When I made my Fediverse list, I wasn't too focused on how things looked or read, so long as I got my list out as quickly as possible - Not knowing how fast things may happen in the world.

Things in the world are still getting, worse, that has, unfortunately, not changed, but I had time to finally get around improving the repo:

https://codeberg.org/Linux-Is-Best/The_Fediverse_Outside_United_States

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be

When I made my Fediverse list, I wasn't too focused on how things looked or read, so long as I got my list out as quickly as possible - Not knowing how fast things may happen in the world.

Things in the world are still getting, worse, that has, unfortunately, not changed, but I had time to finally get around improving the repo:

https://codeberg.org/Linux-Is-Best/The_Fediverse_Outside_United_States

eicker.news tech news's avatar
eicker.news tech news

@technews@eicker.news

The 2025 for the aims to finalise the full experience: seamless publishing, following, reading, interacting, moderating in the . activitypub.blog/2025/06/11/ou

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Embarrassed to say I completely missed the publication of this project site for Mastodon’s fedidiscovery project.

It aims to improve searching and discovery of content across instances work in an opt-in, decentralized manner.

fediscovery.org/

eicker.news tech news's avatar
eicker.news tech news

@technews@eicker.news

The 2025 for the aims to finalise the full experience: seamless publishing, following, reading, interacting, moderating in the . activitypub.blog/2025/06/11/ou

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Taking a look at the Wordpress ActivityPub Roadmap, at the very end I see this:

> Client-to-Server API (exploration)
> At this stage, we’re exploring and evaluating this based on community interest and potential use cases.

Client to Server API for ActivityPub is not widely utilized (or at all?) so this would be of great benefit to all fediverse platforms.

SHOW YOUR COMMUNITY INTEREST!!! @activitypub.blog

activitypub.blog/2025/06/11/ou

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Maho Pacheco 🦝🍻's post

@mapache @box464 @activitypub.blog @badgefed

Ah! The LGPL / Language totally forgotten during the monster job of the full list overhaul I did.

Would it be possible for you to PR or file an issue? (Codeberg account always comes in handy for submitting that 😜)

I will take a note on my backlog, but will be some time before I get to that.

Derick Rethans's avatar
Derick Rethans

@derickr@phpc.social

📜 I wrote a new article: "Own Your Content"

📢 In it, I discuss how the Fediverse, through ActivityPub, is the antidote against walled gardens, oppressive advertising, data-stealing, surveillance, and enshittification by Big Tech™.

🔗 derickrethans.nl/own-your-cont

💻 I gave a keynote based on it at in Berlin last week. I hope to soon make a recording too.

:fediverse: I also have an ActivityPub version which you can read at phpc.social/@blog@social.deric

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Jeff Sikes's post

@box464 @activitypub.blog

Nice! I have a issue in delightful.coding.social/delig where I track C2S ongoing work, or plans thereof. Will add this.

codeberg.org/fediverse/delight

Derick Rethans's avatar
Derick Rethans

@derickr@phpc.social

📜 I wrote a new article: "Own Your Content"

📢 In it, I discuss how the Fediverse, through ActivityPub, is the antidote against walled gardens, oppressive advertising, data-stealing, surveillance, and enshittification by Big Tech™.

🔗 derickrethans.nl/own-your-cont

💻 I gave a keynote based on it at in Berlin last week. I hope to soon make a recording too.

:fediverse: I also have an ActivityPub version which you can read at phpc.social/@blog@social.deric

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Taking a look at the Wordpress ActivityPub Roadmap, at the very end I see this:

> Client-to-Server API (exploration)
> At this stage, we’re exploring and evaluating this based on community interest and potential use cases.

Client to Server API for ActivityPub is not widely utilized (or at all?) so this would be of great benefit to all fediverse platforms.

SHOW YOUR COMMUNITY INTEREST!!! @activitypub.blog

activitypub.blog/2025/06/11/ou

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Jeff Sikes's post

@box464 @activitypub.blog

Nice! I have a issue in delightful.coding.social/delig where I track C2S ongoing work, or plans thereof. Will add this.

codeberg.org/fediverse/delight

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Taking a look at the Wordpress ActivityPub Roadmap, at the very end I see this:

> Client-to-Server API (exploration)
> At this stage, we’re exploring and evaluating this based on community interest and potential use cases.

Client to Server API for ActivityPub is not widely utilized (or at all?) so this would be of great benefit to all fediverse platforms.

SHOW YOUR COMMUNITY INTEREST!!! @activitypub.blog

activitypub.blog/2025/06/11/ou

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Jeff Sikes's post

@box464 @activitypub.blog

Nice! I have a issue in delightful.coding.social/delig where I track C2S ongoing work, or plans thereof. Will add this.

codeberg.org/fediverse/delight

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Taking a look at the Wordpress ActivityPub Roadmap, at the very end I see this:

> Client-to-Server API (exploration)
> At this stage, we’re exploring and evaluating this based on community interest and potential use cases.

Client to Server API for ActivityPub is not widely utilized (or at all?) so this would be of great benefit to all fediverse platforms.

SHOW YOUR COMMUNITY INTEREST!!! @activitypub.blog

activitypub.blog/2025/06/11/ou

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Metehan Özyürek's avatar
Metehan Özyürek

@MetehanOzyurek@mastodon.social

The pro-government technology R&D NGO T3 Foundation in Turkey has launched its own social media platform by forking Mastodon without giving any credit. Although it claims to be a decentralized social network in its server description, posts from accounts registered on sosyal.teknofest.app cannot be viewed on other Mastodon servers.

sosyal.teknofest.app/about

sosyal.t3vakfi.app/about

xChaos's avatar
xChaos

@xChaos@f.cz

I think the theoretical existence of "reply guys" on has very simple technical explanation.

The existing implementation in has critical flaw in displaying only small subset of replies to any given toot (status). This is because only subset of replies is shown: only those existing in already cached federated timeline are shown. This is typical example of state-of-the art primitive algorithm (actually: there is currently no algorithm, where there should be one: not shady and manipulating algorithm, but rather deterministic and transparent one).

And if we don't see all replies (which is true especially on small, self-hosted instances, which cache very limited subset of federated content), than we tend to answer. And because we don't see other like us, we don't know there are many like us explaining the same thing. And poor author of original toot sees it all - and don't understand, why we all repeat more or less the same thing. Why we don't just fav the other replies, like we did on Xitter? Well... because we don't see them! We would need to "open original page" each time we want to reply.

To make really useful tool of public discourse, we would need a chance to see all replies. Of course, we would like to apply our own sort criteria, not be manipulated by algorithm choosing "personalized best replies for us" like on late Xitter - but really, we need chance to see them all. Well, limitations may apply, like "only replies from first hour, only replies with most favs and boosts". But we need a chance to seem them all . Reply spam would become an issue, of course.

I wonder, if upcoming new releases of Mastodon are going to fix this issue... and to be true, it is not an easy engineering problem, as distributed information systems are really a hard problem. We are now merely confederated, we are not really federated.

dominik schwind's avatar
dominik schwind

@dominik@nona.social

This is how it looks when a reasonably big account boost a WordPress ActivityPub post.

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Nextcloud as first cloud software to get the Blauer Engel ecolabel for green IT« nextcloud.com/blog/nextcloud-a

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PeerTube will add live streaming to the mobile app if they reach their next milestone. Let’s make it happen! Share this post and donate if you can!


framapiaf.org/@peertube/114664

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Embarrassed to say I completely missed the publication of this project site for Mastodon’s fedidiscovery project.

It aims to improve searching and discovery of content across instances work in an opt-in, decentralized manner.

fediscovery.org/

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Remember when the web was fun? @cwebber does, and she reminded users of that in her keynote speech at last week's FediForum, in which she talked about how the fediverse can't succeed without joy. Here's @ricmac's writeup of the event, which included presentations from @_elena, @quillmatiq, @mike, @michael, @benpate and more.

flip.it/ft862s

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Raphael Lullis's avatar
Raphael Lullis

@raphael@communick.com

I borrowed a lot of the concepts I used to implement toolkit to implement the local-first client: usage of rdf libraries to process linked data regardless of implementation quirks, first-citizen classes for Actors/Objects/Activities, a handy "Reference" class to work as a container of data that has only URLs instead of documents, etc...

In the process of removing the "server stuff" (database, mostly) I ended up with a small "core" module for typescript.

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PeerTube will add live streaming to the mobile app if they reach their next milestone. Let’s make it happen! Share this post and donate if you can!


framapiaf.org/@peertube/114664

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Remember when the web was fun? @cwebber does, and she reminded users of that in her keynote speech at last week's FediForum, in which she talked about how the fediverse can't succeed without joy. Here's @ricmac's writeup of the event, which included presentations from @_elena, @quillmatiq, @mike, @michael, @benpate and more.

flip.it/ft862s

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's fediverse news:

- @fediforum happened, with a ton of demos, sessions and keynotes
- @bonfire gets close to a formal 1.0 release, and is already available for usage
- @anewsocial announces Bounce, a tool to migrate your social graph from to
- shutdown of a lemmy server provides opportunity for @piefedadmin

and much more!

read at: fediversereport.com/fediverse-

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Remember when the web was fun? @cwebber does, and she reminded users of that in her keynote speech at last week's FediForum, in which she talked about how the fediverse can't succeed without joy. Here's @ricmac's writeup of the event, which included presentations from @_elena, @quillmatiq, @mike, @michael, @benpate and more.

flip.it/ft862s

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Remember when the web was fun? @cwebber does, and she reminded users of that in her keynote speech at last week's FediForum, in which she talked about how the fediverse can't succeed without joy. Here's @ricmac's writeup of the event, which included presentations from @_elena, @quillmatiq, @mike, @michael, @benpate and more.

flip.it/ft862s

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Remember when the web was fun? @cwebber does, and she reminded users of that in her keynote speech at last week's FediForum, in which she talked about how the fediverse can't succeed without joy. Here's @ricmac's writeup of the event, which included presentations from @_elena, @quillmatiq, @mike, @michael, @benpate and more.

flip.it/ft862s

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Embarrassed to say I completely missed the publication of this project site for Mastodon’s fedidiscovery project.

It aims to improve searching and discovery of content across instances work in an opt-in, decentralized manner.

fediscovery.org/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PeerTube will add live streaming to the mobile app if they reach their next milestone. Let’s make it happen! Share this post and donate if you can!


framapiaf.org/@peertube/114664

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PeerTube will add live streaming to the mobile app if they reach their next milestone. Let’s make it happen! Share this post and donate if you can!


framapiaf.org/@peertube/114664

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Embarrassed to say I completely missed the publication of this project site for Mastodon’s fedidiscovery project.

It aims to improve searching and discovery of content across instances work in an opt-in, decentralized manner.

fediscovery.org/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Embarrassed to say I completely missed the publication of this project site for Mastodon’s fedidiscovery project.

It aims to improve searching and discovery of content across instances work in an opt-in, decentralized manner.

fediscovery.org/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PeerTube will add live streaming to the mobile app if they reach their next milestone. Let’s make it happen! Share this post and donate if you can!


framapiaf.org/@peertube/114664

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PeerTube will add live streaming to the mobile app if they reach their next milestone. Let’s make it happen! Share this post and donate if you can!


framapiaf.org/@peertube/114664

dominik schwind's avatar
dominik schwind

@dominik@nona.social

This is how it looks when a reasonably big account boost a WordPress ActivityPub post.

Lee 🌏's avatar
Lee 🌏

@MrLee@aus.social

Nicely put
activitypub.ghost.org/ramping-

This launch, though, feels bigger than most, because ActivityPub is more than a protocol or a fancy feature; it’s a statement that the open web still matters. 

Federating Ghost means publishers no longer have to choose between owning their work and reaching an audience. You post once, on your own domain, and it travels everywhere—the network effect without the lock-in.

That's the dream.
ALT text detailsThis launch, though, feels bigger than most, because ActivityPub is more than a protocol or a fancy feature; it’s a statement that the open web still matters. Federating Ghost means publishers no longer have to choose between owning their work and reaching an audience. You post once, on your own domain, and it travels everywhere—the network effect without the lock-in. That's the dream.
Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Nextcloud as first cloud software to get the Blauer Engel ecolabel for green IT« nextcloud.com/blog/nextcloud-a

xChaos's avatar
xChaos

@xChaos@f.cz

I think the theoretical existence of "reply guys" on has very simple technical explanation.

The existing implementation in has critical flaw in displaying only small subset of replies to any given toot (status). This is because only subset of replies is shown: only those existing in already cached federated timeline are shown. This is typical example of state-of-the art primitive algorithm (actually: there is currently no algorithm, where there should be one: not shady and manipulating algorithm, but rather deterministic and transparent one).

And if we don't see all replies (which is true especially on small, self-hosted instances, which cache very limited subset of federated content), than we tend to answer. And because we don't see other like us, we don't know there are many like us explaining the same thing. And poor author of original toot sees it all - and don't understand, why we all repeat more or less the same thing. Why we don't just fav the other replies, like we did on Xitter? Well... because we don't see them! We would need to "open original page" each time we want to reply.

To make really useful tool of public discourse, we would need a chance to see all replies. Of course, we would like to apply our own sort criteria, not be manipulated by algorithm choosing "personalized best replies for us" like on late Xitter - but really, we need chance to see them all. Well, limitations may apply, like "only replies from first hour, only replies with most favs and boosts". But we need a chance to seem them all . Reply spam would become an issue, of course.

I wonder, if upcoming new releases of Mastodon are going to fix this issue... and to be true, it is not an easy engineering problem, as distributed information systems are really a hard problem. We are now merely confederated, we are not really federated.

Lee 🌏's avatar
Lee 🌏

@MrLee@aus.social

Nicely put
activitypub.ghost.org/ramping-

This launch, though, feels bigger than most, because ActivityPub is more than a protocol or a fancy feature; it’s a statement that the open web still matters. 

Federating Ghost means publishers no longer have to choose between owning their work and reaching an audience. You post once, on your own domain, and it travels everywhere—the network effect without the lock-in.

That's the dream.
ALT text detailsThis launch, though, feels bigger than most, because ActivityPub is more than a protocol or a fancy feature; it’s a statement that the open web still matters. Federating Ghost means publishers no longer have to choose between owning their work and reaching an audience. You post once, on your own domain, and it travels everywhere—the network effect without the lock-in. That's the dream.
Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Trunk & Tidbits, May 2025« blog.joinmastodon.org/2025/06/

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

The , a collection of web products, aims to provide a viable web alternative to corporate .

💗 While it has a user base, it remains a platform.

📲 At , new apps like , , and were showcased, demonstrating progress in social graph migration, feed management, and monetisation for creators.

👉 thenewstack.io/bringing-joy-ba

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Trunk & Tidbits, May 2025« blog.joinmastodon.org/2025/06/

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Trunk & Tidbits, May 2025« blog.joinmastodon.org/2025/06/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

Open science forms the pillar for mankind to invent a better world, and a society worth living in. Or so it should be, if academia weren’t held captive or willing prisoner to commercial interests. Fediverse opens new grazing grounds for , , or anyone for that matter, to uncover new and collectively.

If only more tools would add support to join our .

But we have @bonfire Open Science app, and @scifed as early adopters.

Snapshot of draft text for delightful-fediverse-experience curated list. It displays the text in the toot as well as the 2 platforms I mentioned.
ALT text detailsSnapshot of draft text for delightful-fediverse-experience curated list. It displays the text in the toot as well as the 2 platforms I mentioned.
Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

The , a collection of web products, aims to provide a viable web alternative to corporate .

💗 While it has a user base, it remains a platform.

📲 At , new apps like , , and were showcased, demonstrating progress in social graph migration, feed management, and monetisation for creators.

👉 thenewstack.io/bringing-joy-ba

Tom Casavant's avatar
Tom Casavant

@tom@tomkahe.com

I wonder how close Tumblr is to that ActivityPub support

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

A fedi explainer video you can share with your grandma. Thanks for your work on this @_elena

news.elenarossini.com/fedivers

Terence Eden's avatar
Terence Eden

@Edent@mastodon.social

OK Fedifriends, I need your help with some complex ActivityPub stuff.

Mastodon won't show a list of followers for @colours

It has an orderedcollection at colours.bots.edent.tel/followe which paginates properly.

The mimetype and JSON are all correct, I think.

You can check out the source code at gitlab.com/edent/activity-bot/

What magical incantation do I need to do to help Mastodon see the details of the account's followers?

Feel free to reply here or on the repo.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

A fedi explainer video you can share with your grandma. Thanks for your work on this @_elena

news.elenarossini.com/fedivers

Emelia 👸🏻's avatar
Emelia 👸🏻

@thisismissem@hachyderm.io

ActivityPub Trust & Safety Taskforce Meeting starts in 30 minutes: w3.org/events/meetings/a54ae3c

Terence Eden's avatar
Terence Eden

@Edent@mastodon.social

OK Fedifriends, I need your help with some complex ActivityPub stuff.

Mastodon won't show a list of followers for @colours

It has an orderedcollection at colours.bots.edent.tel/followe which paginates properly.

The mimetype and JSON are all correct, I think.

You can check out the source code at gitlab.com/edent/activity-bot/

What magical incantation do I need to do to help Mastodon see the details of the account's followers?

Feel free to reply here or on the repo.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

A fedi explainer video you can share with your grandma. Thanks for your work on this @_elena

news.elenarossini.com/fedivers

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

Open science forms the pillar for mankind to invent a better world, and a society worth living in. Or so it should be, if academia weren’t held captive or willing prisoner to commercial interests. Fediverse opens new grazing grounds for , , or anyone for that matter, to uncover new and collectively.

If only more tools would add support to join our .

But we have @bonfire Open Science app, and @scifed as early adopters.

Snapshot of draft text for delightful-fediverse-experience curated list. It displays the text in the toot as well as the 2 platforms I mentioned.
ALT text detailsSnapshot of draft text for delightful-fediverse-experience curated list. It displays the text in the toot as well as the 2 platforms I mentioned.
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

Open science forms the pillar for mankind to invent a better world, and a society worth living in. Or so it should be, if academia weren’t held captive or willing prisoner to commercial interests. Fediverse opens new grazing grounds for , , or anyone for that matter, to uncover new and collectively.

If only more tools would add support to join our .

But we have @bonfire Open Science app, and @scifed as early adopters.

Snapshot of draft text for delightful-fediverse-experience curated list. It displays the text in the toot as well as the 2 platforms I mentioned.
ALT text detailsSnapshot of draft text for delightful-fediverse-experience curated list. It displays the text in the toot as well as the 2 platforms I mentioned.
mastodon.raddemo.host's avatar
mastodon.raddemo.host

@admin@mastodon.raddemo.host

How to Host Your Own Server on a (5 Minute Quick-Start Guide)

This article provides a guide for how to host your own Mastodon server on a VPS.

Running your own Mastodon server on a VPS is an excellent way to enjoy an efficient and secure Mastodon experience.
What is Mastodon?
Mastodon is a social media platform that enables users to post ...
Continued 👉 blog.radwebhosting.com/how-to-

mastodon.raddemo.host's avatar
mastodon.raddemo.host

@admin@mastodon.raddemo.host

How to Host Your Own Server on a (5 Minute Quick-Start Guide)

This article provides a guide for how to host your own Mastodon server on a VPS.

Running your own Mastodon server on a VPS is an excellent way to enjoy an efficient and secure Mastodon experience.
What is Mastodon?
Mastodon is a social media platform that enables users to post ...
Continued 👉 blog.radwebhosting.com/how-to-

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

💃🕺 Personal social networking

Social experience is uniquely personal, social networking starts with us. A social web supportive of real people allows us to roam freely, to express ourselves, and be with whom we want to be. From global public square to intimite inter-personal relationships, our fediverse must support whom we actually want to be, in connection with those around us. 💞

💪 People. Be in control and free.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

Follow-up to chat with @mapache and @dajb on and 's realization.

Some more draft text of the - thanks to @nlnet support - soon revamped delightful-fediverse-experience curated list, demonstrating how I deliberately step away from strict .

After all the cold hard is just a click away. Tons of awaiting our 😄

Not sure if you like the language. Yet feel its good if fluffy and spiky are in balance.

An exerpt from the draft text that shows various section descriptions of the new taxonomy..

--

# Personal social networking

Social experience is uniquely personal, social networking starts with us. A social web supportive of real people allows us to roam freely, to express ourselves, and be with whom we want to be. From global public square to intimite inter-personal relationships, our fediverse must support whom we actually want to be, in connection with those around us.

Personal social networking is where 💪 people are in control and free to live their daily life.

## Social profiles

Be free. Be who you want to be. Proudly show your identities. Manage rich, fun, and self-sovereign profiles for every fediverse experience.

## Social verifiable credentials

We all deserve to be recognized for who we are and what we do. Get attribution for our work and acknowledgment for our skills and human traits. Social verifiable credentials as envisioned by Doug Belshaw makes strides towards open recognition of all the splendid individuals that make a fediverse thrive.
ALT text detailsAn exerpt from the draft text that shows various section descriptions of the new taxonomy.. -- # Personal social networking Social experience is uniquely personal, social networking starts with us. A social web supportive of real people allows us to roam freely, to express ourselves, and be with whom we want to be. From global public square to intimite inter-personal relationships, our fediverse must support whom we actually want to be, in connection with those around us. Personal social networking is where 💪 people are in control and free to live their daily life. ## Social profiles Be free. Be who you want to be. Proudly show your identities. Manage rich, fun, and self-sovereign profiles for every fediverse experience. ## Social verifiable credentials We all deserve to be recognized for who we are and what we do. Get attribution for our work and acknowledgment for our skills and human traits. Social verifiable credentials as envisioned by Doug Belshaw makes strides towards open recognition of all the splendid individuals that make a fediverse thrive.
Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

Updated my ActivityPub PDS PR. For the fellow crazies, It should build now.

RE: https://bsky.app/profile/did:plc:svpym4ujks7qxczscyzq7fuy/post/3lr5iki7sf22a

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Via 's PDS pull request I bumped into @ludumdare ..

> . The original game jam for everyone.

ludumdare.com

And I was immediately reminded of Fedijam, originally started by @houkime using , after which I think a total 7 or 8 fun jams were organized on the .

itch.io/jam/fediverse-jam

was reinvigorated in January. See e.g. @RyunoKi entry at:

code.jaenis.ch/andre/fedijam-2

jams should get support, become fedi-native.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Take note, fedizens..

socialhub.activitypub.rocks/t/

irelephant's avatar
irelephant

@irelephant@calckey.world

holy fucking shit

https://github.com/bluesky-social/atproto/pull/3943

irelephant's avatar
irelephant

@irelephant@calckey.world

holy fucking shit

https://github.com/bluesky-social/atproto/pull/3943

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Maho Pacheco 🦝🍻's post

@mapache @badgefed@vocalcat.com @badgefed@badges.vocalcat.com @julian

Okay, okay then 😜

Inspired by @dajb I will use 'Social verifiable credentials' as the category for in the new taxonomy I am creating for delightful-fediverse-apps curated list. Which I am in the process of giving a complete makeover and revitalization. Hope to have it live soon

delightful.coding.social/delig

PS. Was also talking badges & credentials with @RyunoKi today, regarding roadmap.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Maho Pacheco 🦝🍻's post

@mapache @badgefed@vocalcat.com @badgefed@badges.vocalcat.com @julian

Okay, okay then 😜

Inspired by @dajb I will use 'Social verifiable credentials' as the category for in the new taxonomy I am creating for delightful-fediverse-apps curated list. Which I am in the process of giving a complete makeover and revitalization. Hope to have it live soon

delightful.coding.social/delig

PS. Was also talking badges & credentials with @RyunoKi today, regarding roadmap.

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be · Reply to Linux Is Best's post

7 / 7

A list of Fedi sites that use NON - US Domain extensions, meaning their domain name extension is outside Us Jurisdiction. I have not verified where all these are hosting.

I shared the full current list as of June 9, 2025, here on the Fediverse, but you can also find the list at the URL, which is hosting on a GIT by Code Berg, located in Germany, Europe.

You can also download the current list (June 9, 2025), that I just shared, by downloading the ZIP file attached.

URL:
https://codeberg.org/Linux-Is-Best/The_Fediverse_Outside_United_States

ZIP (attached)

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be · Reply to Linux Is Best's post

7 / 7

A list of Fedi sites that use NON - US Domain extensions, meaning their domain name extension is outside Us Jurisdiction. I have not verified where all these are hosting.

I shared the full current list as of June 9, 2025, here on the Fediverse, but you can also find the list at the URL, which is hosting on a GIT by Code Berg, located in Germany, Europe.

You can also download the current list (June 9, 2025), that I just shared, by downloading the ZIP file attached.

URL:
https://codeberg.org/Linux-Is-Best/The_Fediverse_Outside_United_States

ZIP (attached)

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

Draft PR, who dis? github.com/bluesky-soci... (I need to sleep now, but I've started isolating the code-bits into something that *could* be merged into mainline 🤯)

PDS ActivityPub support 😉 by m...

Manyfold's avatar
Manyfold

@manyfold@3dp.chat

🥳 Manyfold v0.112.0 is out, with improvements to ActivityPub federation (remote previews, more notes), a brand new Japanese translation, and a bulk hide option for problems.

🗞️ Full release notes: manyfold.app/news/2025/06/09/r

❤️ Support us on OpenCollective: opencollective.com/manyfold

🏷️ @3dprinting

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

Updated my ActivityPub PDS PR. For the fellow crazies, It should build now.

RE: https://bsky.app/profile/did:plc:svpym4ujks7qxczscyzq7fuy/post/3lr5iki7sf22a

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.

If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...

Read: blenderdumbass.org/articles/pl

Manyfold's avatar
Manyfold

@manyfold@3dp.chat

🥳 Manyfold v0.112.0 is out, with improvements to ActivityPub federation (remote previews, more notes), a brand new Japanese translation, and a bulk hide option for problems.

🗞️ Full release notes: manyfold.app/news/2025/06/09/r

❤️ Support us on OpenCollective: opencollective.com/manyfold

🏷️ @3dprinting

Manyfold's avatar
Manyfold

@manyfold@3dp.chat

🥳 Manyfold v0.112.0 is out, with improvements to ActivityPub federation (remote previews, more notes), a brand new Japanese translation, and a bulk hide option for problems.

🗞️ Full release notes: manyfold.app/news/2025/06/09/r

❤️ Support us on OpenCollective: opencollective.com/manyfold

🏷️ @3dprinting

Manyfold's avatar
Manyfold

@manyfold@3dp.chat

🥳 Manyfold v0.112.0 is out, with improvements to ActivityPub federation (remote previews, more notes), a brand new Japanese translation, and a bulk hide option for problems.

🗞️ Full release notes: manyfold.app/news/2025/06/09/r

❤️ Support us on OpenCollective: opencollective.com/manyfold

🏷️ @3dprinting

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.

If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...

Read: blenderdumbass.org/articles/pl

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

Draft PR, who dis? github.com/bluesky-soci... (I need to sleep now, but I've started isolating the code-bits into something that *could* be merged into mainline 🤯)

PDS ActivityPub support 😉 by m...

Madiator2011's avatar
Madiator2011

@madiator2011@shark.madiator.com

My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches:
https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here:
https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py

❤️

silverpill's avatar
silverpill

@silverpill@mitra.social

APx is finally available on crates.io / docs.rs

https://docs.rs/apx_sdk/latest/apx_sdk/

This is an ActivityPub library used internally in Mitra and in other my projects.

Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
It also contains primitives for building nomadic applications (FEP-ef61).

The license is AGPL-3, but I might consider changing it to a more permissive one.

#apx #activitypub #rust

Madiator2011's avatar
Madiator2011

@madiator2011@shark.madiator.com

My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches:
https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here:
https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py

❤️

Madiator2011's avatar
Madiator2011

@madiator2011@shark.madiator.com

My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches:
https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here:
https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py

❤️

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Maho Pacheco 🦝🍻's post

@mapache @badgefed@vocalcat.com @badgefed@badges.vocalcat.com @julian

Btw , I bumped into activitybadges.org and even though it hasn't been updated in a while, it might be interesting if you hadn't seen it already.

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.

If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...

Read: blenderdumbass.org/articles/pl

silverpill's avatar
silverpill

@silverpill@mitra.social

APx is finally available on crates.io / docs.rs

https://docs.rs/apx_sdk/latest/apx_sdk/

This is an ActivityPub library used internally in Mitra and in other my projects.

Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
It also contains primitives for building nomadic applications (FEP-ef61).

The license is AGPL-3, but I might consider changing it to a more permissive one.

#apx #activitypub #rust

xszsx

@xszsx@app.wafrn.net

Hello waffle! Been escaping from the dumpster fire that is Big Social for a while now, but only to find that the two main alternatives are not on talking terms with each other, due to technical differences which sucks. I hope wafrn will deliver the ease of moving between ActivityPub and ATProto. Having accounts on both is not ideal.
I'm still wrapping my head around it, a bit woozy from the Millennial tumblr chaotic energy.
Here's some galettes.


#waffle #wafrn #mastodon #bluesky #activitypub #atproto #millennial #tumblr #galette
galettes on a plate duh
ALT text detailsgalettes on a plate duh
Madiator2011's avatar
Madiator2011

@madiator2011@shark.madiator.com

My friend @blenderdumbass@mastodon.online is implementing ActivityPub for his blog platform and running into weird issues - Lemmy/Misskey can find his account (@blenderdumbass@blenderdumbass.org) but Mastodon can't, even though ActivityPub requests are hitting his server.
He wrote up the full technical journey with all the RSA signature headaches:
https://blenderdumbass.org/articles/please_help_me_with_activity_pub
Anyone with ActivityPub experience who could take a look? Code is here:
https://codeberg.org/blenderdumbass/BDServer/src/branch/main/modules/ActivityPub.py

❤️

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

From: blenderdumbass . org

This article is published on a website which is powered by BDServer. And I'm trying to make this website support ActivityPub, so you could for example, subscribe to me from your Mastodon account. Yet it is easier said than done.

If you have any experience with ActivityPub, web-development or Python, please consider helping me. We have BDServ...

Read: blenderdumbass.org/articles/pl

silverpill's avatar
silverpill

@silverpill@mitra.social

APx is finally available on crates.io / docs.rs

https://docs.rs/apx_sdk/latest/apx_sdk/

This is an ActivityPub library used internally in Mitra and in other my projects.

Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
It also contains primitives for building nomadic applications (FEP-ef61).

The license is AGPL-3, but I might consider changing it to a more permissive one.

#apx #activitypub #rust

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Did you know? provides optimized for LLMs through the llms.txt standard.

Available endpoints:

Useful for training assistants on / development, building documentation chatbots, or -powered dev tools.

silverpill's avatar
silverpill

@silverpill@mitra.social

APx is finally available on crates.io / docs.rs

https://docs.rs/apx_sdk/latest/apx_sdk/

This is an ActivityPub library used internally in Mitra and in other my projects.

Unlike some other ActivityPub libraries, this library is low-level. It doesn't restrict what databases or frameworks could be used, and doesn't care about object types or properties. There are only URIs, keys, signatures, JSON documents and HTTP requests.
It also contains primitives for building nomadic applications (FEP-ef61).

The license is AGPL-3, but I might consider changing it to a more permissive one.

#apx #activitypub #rust

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

samvie's avatar
samvie

@samvie@chaos.social

Great demo of @encyclia by @julian

Day 3 of starts strong with a great tool for the academic sphere👏

Making available for via @fedify

Open science communication is very relevant for the future development of the 🚀

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
ALT text detailsJulian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
Julians page of Encyclia which he Demos at FediForum
ALT text detailsJulians page of Encyclia which he Demos at FediForum
Rad Web Hosting's avatar
Rad Web Hosting

@radwebhosting@mastodon.social

How to Host Your Own Server on a (5 Minute Quick-Start Guide)

This article provides a guide for how to host your own Mastodon server on a VPS.

Running your own Mastodon server on a VPS is an excellent way to enjoy an efficient and secure Mastodon experience.
What is Mastodon?
Mastodon is a social media platform that enables users to post ...
Continued 👉 blog.radwebhosting.com/how-to-

Risotto Bias's avatar
Risotto Bias

@risottobias@toot.risottobias.org

huh. wild. why isn't mastodon's /api/v2/instance data (specifically .contact.account.acct) part of .well-known/nodeinfo (github.com/jhass/nodeinfo/blob)

Rad Web Hosting's avatar
Rad Web Hosting

@radwebhosting@mastodon.social

How to Host Your Own Server on a (5 Minute Quick-Start Guide)

This article provides a guide for how to host your own Mastodon server on a VPS.

Running your own Mastodon server on a VPS is an excellent way to enjoy an efficient and secure Mastodon experience.
What is Mastodon?
Mastodon is a social media platform that enables users to post ...
Continued 👉 blog.radwebhosting.com/how-to-

Risotto Bias's avatar
Risotto Bias

@risottobias@toot.risottobias.org

huh. wild. why isn't mastodon's /api/v2/instance data (specifically .contact.account.acct) part of .well-known/nodeinfo (github.com/jhass/nodeinfo/blob)

Dyptre's avatar
Dyptre

@geoff_eg@mastodon.social

Just learnt of Bounce. May be a good tool to be aware of for those using or the

blog.anew.social/bounce-a-cros

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

Trying to add support for my website's software to join the .

So far works on @madiator2011 's instance ( which is not ) shark.madiator.com/@blenderdum

Hope I can get it to work here. But it seems complicated.

Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

@WordPress have created the files, a serie of videos about the Fediverse and ActivityPub, hosted by @docpop. It's really refreshing and you'll probably learn a thing or two!

youtube.com/playlist?list=PL6n

The Fediverse file
ALT text detailsThe Fediverse file
The Fediverse files : what is the Fediverse
ALT text detailsThe Fediverse files : what is the Fediverse
The Fediverse files : ActivityPub
ALT text detailsThe Fediverse files : ActivityPub
Rad Web Hosting's avatar
Rad Web Hosting

@radwebhosting@mastodon.social

How to Host Your Own Server on a (5 Minute Quick-Start Guide)

This article provides a guide for how to host your own Mastodon server on a VPS.

Running your own Mastodon server on a VPS is an excellent way to enjoy an efficient and secure Mastodon experience.
What is Mastodon?
Mastodon is a social media platform that enables users to post ...
Continued 👉 blog.radwebhosting.com/how-to-

samvie's avatar
samvie

@samvie@chaos.social

Great demo of @encyclia by @julian

Day 3 of starts strong with a great tool for the academic sphere👏

Making available for via @fedify

Open science communication is very relevant for the future development of the 🚀

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
ALT text detailsJulian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
Julians page of Encyclia which he Demos at FediForum
ALT text detailsJulians page of Encyclia which he Demos at FediForum
Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

ActivityPub 5.9.0 for WordPress just dropped, and I couldn't be more excited!

Check out our brand new Onboarding experience!

👉 Full changelog: wordpress.org/plugins/activity

Screenshot of the ActivityPub plugin onboarding screen in WordPress. The page welcomes users to the Fediverse and displays a progress circle showing step 2 of 6. Completed steps include 'Plugin installed' and 'Check your site’s health.' Remaining steps are: 'New to the Fediverse? Start Here' with a 'View intro' button, 'Select how you want to share' with a 'Choose mode' button, 'Set up your public profile' with an 'Edit profile' button, and 'Learn more about Fediverse features' with an 'Explore features' button.
ALT text detailsScreenshot of the ActivityPub plugin onboarding screen in WordPress. The page welcomes users to the Fediverse and displays a progress circle showing step 2 of 6. Completed steps include 'Plugin installed' and 'Check your site’s health.' Remaining steps are: 'New to the Fediverse? Start Here' with a 'View intro' button, 'Select how you want to share' with a 'Choose mode' button, 'Set up your public profile' with an 'Edit profile' button, and 'Learn more about Fediverse features' with an 'Explore features' button.
Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

@WordPress have created the files, a serie of videos about the Fediverse and ActivityPub, hosted by @docpop. It's really refreshing and you'll probably learn a thing or two!

youtube.com/playlist?list=PL6n

The Fediverse file
ALT text detailsThe Fediverse file
The Fediverse files : what is the Fediverse
ALT text detailsThe Fediverse files : what is the Fediverse
The Fediverse files : ActivityPub
ALT text detailsThe Fediverse files : ActivityPub
Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social

@pfefferle I’m building out this feed for @surf
…. Want to add all top active developers of the WP
Plugin…. Reply to help me build this out: surf.social/feed/surf%2Fcustom

Astro's avatar
Astro

@astro@c3d2.social

Do you regard the list of relays a Mastodon instance follows as publishable or as protected info?

Cc:

OptionVoters
Public5 (56%)
Private0 (0%)
No opinion4 (44%)
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Astro's avatar
Astro

@astro@c3d2.social

Do you regard the list of relays a Mastodon instance follows as publishable or as protected info?

Cc:

OptionVoters
Public5 (56%)
Private0 (0%)
No opinion4 (44%)
Astro's avatar
Astro

@astro@c3d2.social

Do you regard the list of relays a Mastodon instance follows as publishable or as protected info?

Cc:

OptionVoters
Public5 (56%)
Private0 (0%)
No opinion4 (44%)
Bob Dunn's avatar
Bob Dunn

@DotheWoo@openchannels.fm

In Episode 642 of Do the Woo, host Matthias Pfefferle brings us another Open Web Conversations and dives into the world of decentralized social networks and the open web, specifically focusing on the Fediverse, with guest André Menrath. André shares his unconventional journey into software development, driven by his passion for events and democracy, and his vision for a federated future. They explore the challenges and opportunities in integrating WordPress with the Fediverse, discussing André's innovative plugins bridging WordPress events with ActivityPub. The conversation sheds light on the potential for WordPress to become a dominant platform in the Fediverse, hosting diverse content types while maintaining an open and interconnected web. Join them as they navigate the technical and social landscape of creating a truly decentralized internet. […]
Bring Federated Events to Your WordPress Site with André Menrath
ALT text detailsBring Federated Events to Your WordPress Site with André Menrath
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

@badgefed@vocalcat.com @badgefed@badges.vocalcat.com

I created an issue in the repo.

github.com/tryvocalcat/badgefe

Anthony Accioly's avatar
Anthony Accioly

@anthony@accioly.social

Is anyone running their blog on a static or semi-static stack like Hugo, VitePress, etc.?

If so, is there an easy way to add an ActivityPub-based comment system, maybe some share buttons, and also republish content to the Fediverse? I'm not looking for ActivityPub-native blogging platforms, more interested in adding ActivityPub support in a mostly client-side way.

Anthony Accioly's avatar
Anthony Accioly

@anthony@accioly.social

Is anyone running their blog on a static or semi-static stack like Hugo, VitePress, etc.?

If so, is there an easy way to add an ActivityPub-based comment system, maybe some share buttons, and also republish content to the Fediverse? I'm not looking for ActivityPub-native blogging platforms, more interested in adding ActivityPub support in a mostly client-side way.

samvie's avatar
samvie

@samvie@chaos.social

Great demo of @encyclia by @julian

Day 3 of starts strong with a great tool for the academic sphere👏

Making available for via @fedify

Open science communication is very relevant for the future development of the 🚀

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
ALT text detailsJulian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
Julians page of Encyclia which he Demos at FediForum
ALT text detailsJulians page of Encyclia which he Demos at FediForum
samvie's avatar
samvie

@samvie@chaos.social

Great demo of @encyclia by @julian

Day 3 of starts strong with a great tool for the academic sphere👏

Making available for via @fedify

Open science communication is very relevant for the future development of the 🚀

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
ALT text detailsJulian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
Julians page of Encyclia which he Demos at FediForum
ALT text detailsJulians page of Encyclia which he Demos at FediForum
samvie's avatar
samvie

@samvie@chaos.social

Great demo of @encyclia by @julian

Day 3 of starts strong with a great tool for the academic sphere👏

Making available for via @fedify

Open science communication is very relevant for the future development of the 🚀

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
ALT text detailsJulian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
Julians page of Encyclia which he Demos at FediForum
ALT text detailsJulians page of Encyclia which he Demos at FediForum
samvie's avatar
samvie

@samvie@chaos.social

Great demo of @encyclia by @julian

Day 3 of starts strong with a great tool for the academic sphere👏

Making available for via @fedify

Open science communication is very relevant for the future development of the 🚀

Julian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
ALT text detailsJulian presenting Encyclia at Fediforum. You see a screenshare and Julians camera.
Julians page of Encyclia which he Demos at FediForum
ALT text detailsJulians page of Encyclia which he Demos at FediForum
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

LisPi's avatar
LisPi

@lispi314@udongein.xyz

Periodic reminder, "tags" is an explicit array slot in Note activity objects.

There is no good reason for various implementations and clients not to expose that to the users when writing a post.

#ActivityPub
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

Three new , Bonfire Social, Channel.org, and Bounce, were showcased at the virtual conference:

1️⃣ is a for creating digital .

2️⃣ content across the web.

3️⃣ allows users to their accounts to while retaining followers.

👉 theverge.com/news/680895/fediv

Ewen Bell 📷's avatar
Ewen Bell 📷

@ewen@photog.social

We've turned on ActivityPub for Shellie's website :)

That means you can follow Shellie at @shellie and each time she updates the blog with a new recipe, you should see that pop into your feed.

I had hoped the plugin would make all her old recipes live, but that doesn't happen. Unless, you punch the URL into a search box for Mastodon. In which case it makes a new toot, but backdated, and I can retoot it :)

This is the new home for Shellie on the Fediverse.
ALT text detailsThis is the new home for Shellie on the Fediverse.
Videospielgeschichten's avatar
Videospielgeschichten

@vsg_DE@mastodon.social · Reply to ActivityPub for WordPress's post

@activitypub.blog Since the update all my followers are not shown anymore. Also not in the Followers-Block. 😔 Is this a known bug?

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Lenz Grimmer's avatar
Lenz Grimmer

@lenzgr@mastodon.social

I've been a Pro user for a long-time, but decided not to renew my subscription as the platform seems to have stopped evolving and I no longer find value in paying for the service. The WebUI is outdated, the mobile Android app sucks.

I wonder if Flickr could become more attractive again if they would support and became part of the . Maybe as an alternative to ? Or are there any clients that could use Flickr as a storage backend for pictures?

Videospielgeschichten's avatar
Videospielgeschichten

@vsg_DE@mastodon.social · Reply to ActivityPub for WordPress's post

@activitypub.blog Since the update all my followers are not shown anymore. Also not in the Followers-Block. 😔 Is this a known bug?

Ewen Bell 📷's avatar
Ewen Bell 📷

@ewen@photog.social

We've turned on ActivityPub for Shellie's website :)

That means you can follow Shellie at @shellie and each time she updates the blog with a new recipe, you should see that pop into your feed.

I had hoped the plugin would make all her old recipes live, but that doesn't happen. Unless, you punch the URL into a search box for Mastodon. In which case it makes a new toot, but backdated, and I can retoot it :)

This is the new home for Shellie on the Fediverse.
ALT text detailsThis is the new home for Shellie on the Fediverse.
Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

Three new , Bonfire Social, Channel.org, and Bounce, were showcased at the virtual conference:

1️⃣ is a for creating digital .

2️⃣ content across the web.

3️⃣ allows users to their accounts to while retaining followers.

👉 theverge.com/news/680895/fediv

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce the release of 1.6.1, which marks the beginning of the 1.6 series following the retraction of version 1.6.0. This release introduces significant new capabilities that expand Fedify's deployment options and enhance security compatibility across the .

🌐 Cloudflare Workers support

Fedify 1.6 introduces first-class support for Cloudflare Workers, enabling deployment of applications at the edge.

New components

Key features

  • Seamless integration with 's serverless runtime
  • Automatic handling of queue message processing through Workers' queue() method
  • Support for Node.js compatibility flag required for Fedify's cryptographic operations
  • Manual queue processing via Federation.processQueuedTask() method

For a complete working example, see the Cloudflare Workers example in the Fedify repository.

🏗️ Federation builder pattern

Fedify 1.6 introduces the FederationBuilder class and createFederationBuilder() function to support deferred federation instantiation. This pattern provides several benefits:

  • Deferred instantiation: Set up dispatchers and listeners before creating the federation object
  • Better code organization: Avoid circular dependencies and improve project structure
  • Cloudflare compatibility: Accommodates binding-based architectures where resources are passed as arguments rather than globals
  • Modular setup: Build complex federations piece by piece before instantiation

The builder pattern is particularly useful for large applications and environments like Cloudflare Workers where configuration data is only available at runtime.

🔐 HTTP Message Signatures (RFC 9421)

Fedify 1.6 implements the official HTTP Message Signatures standard (RFC 9421) specification, the final revision of the HTTP Signatures specification.

Double-knocking mechanism

To ensure maximum compatibility across the fediverse, Fedify 1.6 introduces an intelligent double-knocking mechanism:

  1. Primary attempt: RFC 9421 (HTTP Message Signatures) for modern implementations
  2. Fallback: Draft cavage version for legacy compatibility
  3. Adaptive caching: The system remembers which version each server supports to optimize future requests

This approach ensures seamless communication with both modern and legacy ActivityPub implementations while positioning Fedify at the forefront of security standards.

Interoperability testing

The RFC 9421 implementation has been thoroughly tested for interoperability with existing ActivityPub implementations that support RFC 9421 signature verification:

  • Mitra 4.4.0: Successfully verified Fedify-generated RFC 9421 signatures
  • Mastodon 4.4.0 development version: Tested RFC 9421 signature verification against Fedify's implementation (refer to Mastodon PR #34814, though Mastodon 4.4.0 has not yet been released)

These tests confirm that other ActivityPub implementations can successfully verify RFC 9421 signatures generated by Fedify, ensuring proper federation as the ecosystem gradually adopts the official specification. While these implementations currently support verification of RFC 9421 signatures, they do not yet generate RFC 9421 signatures themselves—making Fedify one of the first ActivityPub implementations to support both generation and verification of the modern standard.

🔍 WebFinger enhancements

Dedicated WebFinger lookup

The new Context.lookupWebFinger() method provides direct access to WebFinger data, offering developers more granular control over account discovery and resource resolution beyond the higher-level Context.lookupObject() method.

🛠 Context API improvements

Context data replacement

The new Context.clone() method enables dynamic context data replacement, providing greater flexibility in request processing and data flow management. This is particularly useful for middleware implementations and complex request routing scenarios.

🚀 Migration considerations

Backward compatibility

Fedify 1.6 maintains full backward compatibility with existing applications. The new HTTP Message Signatures and double-knocking mechanisms work transparently without requiring any code changes.

Node.js version requirement

Important: Fedify 1.6 requires Node.js 22.0.0 or later for Node.js environments. This change does not affect applications using Deno or Bun runtimes. If you're currently using Node.js, please ensure your environment meets this requirement before upgrading.

New deployment options

For new deployments, consider leveraging Cloudflare Workers support for:

  • Global edge deployment with low latency
  • Serverless scaling and automatic resource management
  • Integration with Cloudflare's ecosystem of services

🎯 Looking forward

Fedify 1.6 represents a significant expansion of deployment possibilities while maintaining the framework's commitment to broad compatibility across the fediverse. The addition of Cloudflare Workers support opens new architectural patterns for federated applications, while the RFC 9421 implementation ensures Fedify stays current with emerging ActivityPub security standards.


For detailed migration guides, API documentation, and examples, please visit the Fedify documentation. Join our community on Matrix or Discord for support and discussions.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-06

Servers

- snac v2.78
- PeerTube v7.2.0
- Hollo v0.6.0
- Mitra v4.4.0
- ActivityPub for WordPress v6.0.0
- Mobilizon v5.1.4
- Honk v1.5.0
- Misskey v2025.6.0
- Vernissage Server v1.16.0
- NodeBB v4.4.2
- Forgejo monthly report - May 2025
- Lemmy Development Update May 2025
- shops: A free & open source federated marketplace
- selective-relay: A fork from pub-relay which relays only activities that meet the conditions

Clients

- Fedilab v3.33.0
- Jerboa v0.0.79
- Voyager v2.35.1
- Blorp v1.8.0
- Interstellar v0.9.3
- Tesseract v1.4.39
- pl-fe change summary
- Splinter: Turns long articles into Mastodon posts and publishes them for you automatically

For developers

- Fedialgo v0.66.0

Articles

- Fediverse Report – #119

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019722fb-77a9-f1e3-879a-e1a6c24abea7

LisPi's avatar
LisPi

@lispi314@udongein.xyz

Periodic reminder, "tags" is an explicit array slot in Note activity objects.

There is no good reason for various implementations and clients not to expose that to the users when writing a post.

#ActivityPub
⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
, the customizable timeline algorithm / filtering system for your Mastodon feed, now has a "TOTAL CHAOS" preset for when you're really feeling like mixing up your timeline in addition to a way to weight toots based on the author's follower count, highlighting of hashtags based on how much you use or interact with them, and a bunch of other fund stuff.

* Try It: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo with TOTAL CHAOS preset chosen
ALT text detailsscreenshot of fedialgo with TOTAL CHAOS preset chosen
⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
, the customizable timeline algorithm / filtering system for your Mastodon feed, now has a "TOTAL CHAOS" preset for when you're really feeling like mixing up your timeline in addition to a way to weight toots based on the author's follower count, highlighting of hashtags based on how much you use or interact with them, and a bunch of other fund stuff.

* Try It: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo with TOTAL CHAOS preset chosen
ALT text detailsscreenshot of fedialgo with TOTAL CHAOS preset chosen
Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-06

Servers

- snac v2.78
- PeerTube v7.2.0
- Hollo v0.6.0
- Mitra v4.4.0
- ActivityPub for WordPress v6.0.0
- Mobilizon v5.1.4
- Honk v1.5.0
- Misskey v2025.6.0
- Vernissage Server v1.16.0
- NodeBB v4.4.2
- Forgejo monthly report - May 2025
- Lemmy Development Update May 2025
- shops: A free & open source federated marketplace
- selective-relay: A fork from pub-relay which relays only activities that meet the conditions

Clients

- Fedilab v3.33.0
- Jerboa v0.0.79
- Voyager v2.35.1
- Blorp v1.8.0
- Interstellar v0.9.3
- Tesseract v1.4.39
- pl-fe change summary
- Splinter: Turns long articles into Mastodon posts and publishes them for you automatically

For developers

- Fedialgo v0.66.0

Articles

- Fediverse Report – #119

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019722fb-77a9-f1e3-879a-e1a6c24abea7

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-06

Servers

- snac v2.78
- PeerTube v7.2.0
- Hollo v0.6.0
- Mitra v4.4.0
- ActivityPub for WordPress v6.0.0
- Mobilizon v5.1.4
- Honk v1.5.0
- Misskey v2025.6.0
- Vernissage Server v1.16.0
- NodeBB v4.4.2
- Forgejo monthly report - May 2025
- Lemmy Development Update May 2025
- shops: A free & open source federated marketplace
- selective-relay: A fork from pub-relay which relays only activities that meet the conditions

Clients

- Fedilab v3.33.0
- Jerboa v0.0.79
- Voyager v2.35.1
- Blorp v1.8.0
- Interstellar v0.9.3
- Tesseract v1.4.39
- pl-fe change summary
- Splinter: Turns long articles into Mastodon posts and publishes them for you automatically

For developers

- Fedialgo v0.66.0

Articles

- Fediverse Report – #119

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019722fb-77a9-f1e3-879a-e1a6c24abea7

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-06

Servers

- snac v2.78
- PeerTube v7.2.0
- Hollo v0.6.0
- Mitra v4.4.0
- ActivityPub for WordPress v6.0.0
- Mobilizon v5.1.4
- Honk v1.5.0
- Misskey v2025.6.0
- Vernissage Server v1.16.0
- NodeBB v4.4.2
- Forgejo monthly report - May 2025
- Lemmy Development Update May 2025
- shops: A free & open source federated marketplace
- selective-relay: A fork from pub-relay which relays only activities that meet the conditions

Clients

- Fedilab v3.33.0
- Jerboa v0.0.79
- Voyager v2.35.1
- Blorp v1.8.0
- Interstellar v0.9.3
- Tesseract v1.4.39
- pl-fe change summary
- Splinter: Turns long articles into Mastodon posts and publishes them for you automatically

For developers

- Fedialgo v0.66.0

Articles

- Fediverse Report – #119

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019722fb-77a9-f1e3-879a-e1a6c24abea7

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-06-06

Servers

- snac v2.78
- PeerTube v7.2.0
- Hollo v0.6.0
- Mitra v4.4.0
- ActivityPub for WordPress v6.0.0
- Mobilizon v5.1.4
- Honk v1.5.0
- Misskey v2025.6.0
- Vernissage Server v1.16.0
- NodeBB v4.4.2
- Forgejo monthly report - May 2025
- Lemmy Development Update May 2025
- shops: A free & open source federated marketplace
- selective-relay: A fork from pub-relay which relays only activities that meet the conditions

Clients

- Fedilab v3.33.0
- Jerboa v0.0.79
- Voyager v2.35.1
- Blorp v1.8.0
- Interstellar v0.9.3
- Tesseract v1.4.39
- pl-fe change summary
- Splinter: Turns long articles into Mastodon posts and publishes them for you automatically

For developers

- Fedialgo v0.66.0

Articles

- Fediverse Report – #119

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/019722fb-77a9-f1e3-879a-e1a6c24abea7

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
, the customizable timeline algorithm / filtering system for your Mastodon feed, now has a "TOTAL CHAOS" preset for when you're really feeling like mixing up your timeline in addition to a way to weight toots based on the author's follower count, highlighting of hashtags based on how much you use or interact with them, and a bunch of other fund stuff.

* Try It: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo with TOTAL CHAOS preset chosen
ALT text detailsscreenshot of fedialgo with TOTAL CHAOS preset chosen
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Did you know? provides optimized for LLMs through the llms.txt standard.

Available endpoints:

Useful for training assistants on / development, building documentation chatbots, or -powered dev tools.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Did you know? provides optimized for LLMs through the llms.txt standard.

Available endpoints:

Useful for training assistants on / development, building documentation chatbots, or -powered dev tools.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Did you know? provides optimized for LLMs through the llms.txt standard.

Available endpoints:

Useful for training assistants on / development, building documentation chatbots, or -powered dev tools.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Did you know? provides optimized for LLMs through the llms.txt standard.

Available endpoints:

Useful for training assistants on / development, building documentation chatbots, or -powered dev tools.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Did you know? provides optimized for LLMs through the llms.txt standard.

Available endpoints:

Useful for training assistants on / development, building documentation chatbots, or -powered dev tools.

Keith Böhler's avatar
Keith Böhler

@keithnator3000@universeodon.com

Why Decentralized Social Media Matters

publicknowledge.org/why-decent

Keith Böhler's avatar
Keith Böhler

@keithnator3000@universeodon.com

Why Decentralized Social Media Matters

publicknowledge.org/why-decent

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Keith Böhler's avatar
Keith Böhler

@keithnator3000@universeodon.com

Why Decentralized Social Media Matters

publicknowledge.org/why-decent

Blender Dumbass ( J.Y.Amihud )'s avatar
Blender Dumbass ( J.Y.Amihud )

@blenderdumbass@mastodon.online

Trying to add support for my website's software to join the .

So far works on @madiator2011 's instance ( which is not ) shark.madiator.com/@blenderdum

Hope I can get it to work here. But it seems complicated.

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

In Mastodon flavor ActivityPub, the webfinger's subject decides a user's displayed handle. The URLs used as IDs or the location of the "self" endpoint don't have to match the user at all. So then, what if webfingers resolved to DID URLs instead? ❤️‍🔥 CHAOS! ❤️‍🔥

In my code I have my activitypub endpoints that take a user handle and resolve things. What if we used DID's instead?
ALT text detailsIn my code I have my activitypub endpoints that take a user handle and resolve things. What if we used DID's instead?
Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

Does your Bluesky PDS support Mastodon? Mine does*. 😋

Test user's profile page shown in the official Bluesky client app
ALT text detailsTest user's profile page shown in the official Bluesky client app
Mastodon client Tusky showing the same test user
ALT text detailsMastodon client Tusky showing the same test user
Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Dyptre's avatar
Dyptre

@geoff_eg@mastodon.social

Just learnt of Bounce. May be a good tool to be aware of for those using or the

blog.anew.social/bounce-a-cros

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Dyptre's avatar
Dyptre

@geoff_eg@mastodon.social

Just learnt of Bounce. May be a good tool to be aware of for those using or the

blog.anew.social/bounce-a-cros

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Dyptre's avatar
Dyptre

@geoff_eg@mastodon.social

Just learnt of Bounce. May be a good tool to be aware of for those using or the

blog.anew.social/bounce-a-cros

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

Bonfire's avatar
Bonfire

@bonfire@indieweb.social

🔥 Bonfire Social 1.0 release candidate has landed!

Curious about what the fediverse could look like with real community control?

Try out features like custom feeds, nested discussions, shared profiles, circles, and boundary-based permissions — then let us know what breaks or needs improvement.

More details and video demos: bonfirenetworks.org/posts/bonf

OldForest's avatar
OldForest

@oldforest@libretooth.gr

Does work with ?

FediForum's avatar
FediForum

@fediforum@mastodon.social

We are in the middle of the speed demo track.

A New Social just announced Bounce, the first-ever migration tool of accounts between and . You can keep your followers across networks!

anew.social/

FediForum's avatar
FediForum

@fediforum@mastodon.social

We are in the middle of the speed demo track.

A New Social just announced Bounce, the first-ever migration tool of accounts between and . You can keep your followers across networks!

anew.social/

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Introducing . Hollo is an -enabled single-user microblogging software. Although it's for a single user, it also supports creating and running multiple accounts for different topics.

It's headless, meaning you can use existing client apps instead, with its Mastodon-compatible APIs. It has most feature parity with Mastodon. Two big differences with Mastodon is that you can use in the content of your posts and you can quote another post.

Oh, and Hollo is built using and .

https://github.com/dahlia/hollo

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social

Hi @mikedev,
as you implemented you may know - which servers in the wild use it?
Request

I built a parser for yesterday and am curious to look at other implementations/code as well. Mine so far: codeberg.org/mro/seppo/src/com
Would love to discuss it.

Nick Bohle 🇪🇺's avatar
Nick Bohle 🇪🇺

@NickBohle@mastodon.social

Hey @pfefferle and @obenland, your thoughts on quote posts (FEP-044f: Consent-respecting quote posts) and their implementation in for ? 🙏

Mastodon
mastodon.social/@Gargron/11462
blog.joinmastodon.org/2025/02/

ActivityPub
socialhub.activitypub.rocks/t/

Bonfire's avatar
Bonfire

@bonfire@indieweb.social · Reply to Bonfire's post

This is a chance to poke at the process, challenge assumptions, and have an open conversation. Bring your curiosity, hard questions, and ideas about co-design, funding, burnout, moderation, and the messy realities of open-source work.

Let’s dig into how fediverse apps get built, maintained, and shaped by their communities.

See you there! 🔗 fediforum.org

SpicyBiCutiePie 🌶🇨🇦's avatar
SpicyBiCutiePie 🌶🇨🇦

@Crissy@tech.lgbt

@fediforum is the place for the open social web community to meet, learn, interact and organize.

Find out more thru their page and register for the Online Conference happening soon this June 5-7, 2025 via fediforum.org/events/

Bonfire's avatar
Bonfire

@bonfire@indieweb.social · Reply to Bonfire's post

This is a chance to poke at the process, challenge assumptions, and have an open conversation. Bring your curiosity, hard questions, and ideas about co-design, funding, burnout, moderation, and the messy realities of open-source work.

Let’s dig into how fediverse apps get built, maintained, and shaped by their communities.

See you there! 🔗 fediforum.org

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Introducing . Hollo is an -enabled single-user microblogging software. Although it's for a single user, it also supports creating and running multiple accounts for different topics.

It's headless, meaning you can use existing client apps instead, with its Mastodon-compatible APIs. It has most feature parity with Mastodon. Two big differences with Mastodon is that you can use in the content of your posts and you can quote another post.

Oh, and Hollo is built using and .

https://github.com/dahlia/hollo

Nick Bohle 🇪🇺's avatar
Nick Bohle 🇪🇺

@NickBohle@mastodon.social

Hey @pfefferle and @obenland, your thoughts on quote posts (FEP-044f: Consent-respecting quote posts) and their implementation in for ? 🙏

Mastodon
mastodon.social/@Gargron/11462
blog.joinmastodon.org/2025/02/

ActivityPub
socialhub.activitypub.rocks/t/

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social

Hi @mikedev,
as you implemented you may know - which servers in the wild use it?
Request

I built a parser for yesterday and am curious to look at other implementations/code as well. Mine so far: codeberg.org/mro/seppo/src/com
Would love to discuss it.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social

Hi @mikedev,
as you implemented you may know - which servers in the wild use it?
Request

I built a parser for yesterday and am curious to look at other implementations/code as well. Mine so far: codeberg.org/mro/seppo/src/com
Would love to discuss it.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

Exciting news for the project! We're thrilled to announce that Emelia Smith (@thisismissem) has joined as a co-maintainer alongside Hong Minhee (@hongminhee).

Emelia brings extensive experience in the ecosystem, having been a long-time contributor to Mastodon and a leading expert in trust & safety tooling for decentralized social networks. She's dedicated years to improving moderation systems and security across platforms.

Her recent contributions to Hollo have been substantial—implementing the reporting/flagging system and making significant improvements to OAuth and security features. These valuable contributions naturally led to her joining as a co-maintainer.

This collaboration marks an important milestone for Hollo as we continue building better single-user microblogging software for the fediverse. Welcome aboard, Emelia! 🚀

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

The first badge by a using was issued, and it was not me! Just in time for the fediforum!

Follow @podcast by @sweedarbk to see feature guests receiving recognitions!

And see the badge here verifiedby.baddie.tech/view/gr !

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Fediverse, we’ve got a new mascot! Meet Waffy from Wafrn

app.wafrn.net/fediverse/post/4

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be

So, if you wondered why that random friend or family member, tried Mastodon, but that week felts drawn to use Facebook more, that is why. They were targeted.



RE: https://mk.absturztau.be/notes/a8m9uef425pm00c2

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be · Reply to Linux Is Best's post

If at any time you shared a link back to any of your personal accounts, anywhere -- Meta knows you have an account.

That includes competing social media platforms, such as the Fediverse.

The value in this is both market resource and further marketing, for example, if you talked about watching Netflix, expect Meta to recommend, HBO Max. And if Meta notices you're using a known competing app or platform, Meta's app will increase the notification to draw you back to Meta.

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be · Reply to Linux Is Best's post

If at any time you shared a link back to any of your personal accounts, anywhere -- Meta knows you have an account.

That includes competing social media platforms, such as the Fediverse.

The value in this is both market resource and further marketing, for example, if you talked about watching Netflix, expect Meta to recommend, HBO Max. And if Meta notices you're using a known competing app or platform, Meta's app will increase the notification to draw you back to Meta.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Fediverse, we’ve got a new mascot! Meet Waffy from Wafrn

app.wafrn.net/fediverse/post/4

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be

So, if you wondered why that random friend or family member, tried Mastodon, but that week felts drawn to use Facebook more, that is why. They were targeted.



RE: https://mk.absturztau.be/notes/a8m9uef425pm00c2

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be · Reply to Linux Is Best's post

If at any time you shared a link back to any of your personal accounts, anywhere -- Meta knows you have an account.

That includes competing social media platforms, such as the Fediverse.

The value in this is both market resource and further marketing, for example, if you talked about watching Netflix, expect Meta to recommend, HBO Max. And if Meta notices you're using a known competing app or platform, Meta's app will increase the notification to draw you back to Meta.

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be · Reply to Linux Is Best's post

If at any time you shared a link back to any of your personal accounts, anywhere -- Meta knows you have an account.

That includes competing social media platforms, such as the Fediverse.

The value in this is both market resource and further marketing, for example, if you talked about watching Netflix, expect Meta to recommend, HBO Max. And if Meta notices you're using a known competing app or platform, Meta's app will increase the notification to draw you back to Meta.

Nik | Klampfradler 🎸🚲's avatar
Nik | Klampfradler 🎸🚲

@nik@toot.teckids.org

I might be overdoing this whole and thing, but… here's the first steps with , a RDF-to-HTML mapper and :

codeberg.org/Taganak/trinja/sr

The idea is: Use *any* resource described as RDF (e.g. from or an action), link a template to it or its rdf:type in your own set of statements, and there you got your visualisation!

Based on , the development kit by @codecraft and me. We are collecting real-world examples at a good rate!

Screenshot of a Turtle document; see linked code in post for text version.
ALT text detailsScreenshot of a Turtle document; see linked code in post for text version.
A quite basic web page with heading "Ninja Turtles", followed by four cards with names and depictions of the four Ninja Turtles Leonardo, Raphael, Donatello and Michelangelo.
ALT text detailsA quite basic web page with heading "Ninja Turtles", followed by four cards with names and depictions of the four Ninja Turtles Leonardo, Raphael, Donatello and Michelangelo.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Fediverse, we’ve got a new mascot! Meet Waffy from Wafrn

app.wafrn.net/fediverse/post/4

Ken Weber's avatar
Ken Weber

@kenweber@mastodon.social

I realize that all of you reading this are already a part of the but you may want to pass this article around to your friends who aren't a part of it yet.

publicknowledge.org/why-decent

SpicyBiCutiePie 🌶🇨🇦's avatar
SpicyBiCutiePie 🌶🇨🇦

@Crissy@tech.lgbt

@fediforum is the place for the open social web community to meet, learn, interact and organize.

Find out more thru their page and register for the Online Conference happening soon this June 5-7, 2025 via fediforum.org/events/

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

The first badge by a using was issued, and it was not me! Just in time for the fediforum!

Follow @podcast by @sweedarbk to see feature guests receiving recognitions!

And see the badge here verifiedby.baddie.tech/view/gr !

Nik | Klampfradler 🎸🚲's avatar
Nik | Klampfradler 🎸🚲

@nik@toot.teckids.org

I might be overdoing this whole and thing, but… here's the first steps with , a RDF-to-HTML mapper and :

codeberg.org/Taganak/trinja/sr

The idea is: Use *any* resource described as RDF (e.g. from or an action), link a template to it or its rdf:type in your own set of statements, and there you got your visualisation!

Based on , the development kit by @codecraft and me. We are collecting real-world examples at a good rate!

Screenshot of a Turtle document; see linked code in post for text version.
ALT text detailsScreenshot of a Turtle document; see linked code in post for text version.
A quite basic web page with heading "Ninja Turtles", followed by four cards with names and depictions of the four Ninja Turtles Leonardo, Raphael, Donatello and Michelangelo.
ALT text detailsA quite basic web page with heading "Ninja Turtles", followed by four cards with names and depictions of the four Ninja Turtles Leonardo, Raphael, Donatello and Michelangelo.
Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»PeerTube v7.2 is out!« joinpeertube.org/news/release-

Ken Weber's avatar
Ken Weber

@kenweber@mastodon.social

I realize that all of you reading this are already a part of the but you may want to pass this article around to your friends who aren't a part of it yet.

publicknowledge.org/why-decent

Ken Weber's avatar
Ken Weber

@kenweber@mastodon.social

I realize that all of you reading this are already a part of the but you may want to pass this article around to your friends who aren't a part of it yet.

publicknowledge.org/why-decent

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»PeerTube v7.2 is out!« joinpeertube.org/news/release-

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Since it is more related to adoption and evolution of the commons-based social web in general, I brought the ⚒️ Golden Hammer discussion to the Social coding commons forum.

discuss.coding.social/t/overco

This relates to the Fediverse Vision wiki and discussion started by @helge and the proposal to start a fellowship of people that focus on fedi evolution beyond the nitty-gritty implementation details that are commonly discussed (and that lead to protocol decay and tech debt).

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's news

A quiet week as the hype announcements are waiting for this week's @fediforum . You can catch me on Thursday on Fediforum with a session on whats new on the open social web!

In other news:
- A @peertube AMA on Lemmy, and the first milestone of their fundraising for their app reached
- The @swf publishes Web Components

fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report - This week's news

A quiet week as the hype announcements are waiting for this week's @fediforum . You can catch me on Thursday on Fediforum with a session on whats new on the open social web!

In other news:
- A @peertube AMA on Lemmy, and the first milestone of their fundraising for their app reached
- The @swf publishes Web Components

fediversereport.com/fediverse-

8's avatar
8

@octarine_wiggle@mastodon.au

What's the minimum viable replacement?

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

trick question. If a C2S client actor identified by “http://bar.example/actor” posts {“id”: “https://foo.example/something”} to its *outbox* server endpoint, is that valid? Why or why not? If the answer is “it depends”, it depends on what?

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

trick question. If a C2S client actor identified by “http://bar.example/actor” posts {“id”: “https://foo.example/something”} to its *outbox* server endpoint, is that valid? Why or why not? If the answer is “it depends”, it depends on what?

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

trick question. If a C2S client actor identified by “http://bar.example/actor” posts {“id”: “https://foo.example/something”} to its *outbox* server endpoint, is that valid? Why or why not? If the answer is “it depends”, it depends on what?

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

#Fediverse #tech is everywhere y'all!

#3Dprint file sharing over #activitypub via
https://manyfold.app/

So excited when I see new projects like this! It just makes us more resilient and means we'll be here forever forever! :-D

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

#Fediverse #tech is everywhere y'all!

#3Dprint file sharing over #activitypub via
https://manyfold.app/

So excited when I see new projects like this! It just makes us more resilient and means we'll be here forever forever! :-D

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

#Fediverse #tech is everywhere y'all!

#3Dprint file sharing over #activitypub via
https://manyfold.app/

So excited when I see new projects like this! It just makes us more resilient and means we'll be here forever forever! :-D

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Just replied to discussion to @evanprodromou on support for long-form text.

There's a broader discussion that the dev community isn't really addressing.

Nowhere in the specs is defined that is the foundation of . And certainly not 's app-specific interpretation of this domain.

The entire AS extension mechanism is overlooked, and that leads to a massive ⚒️ Golden Hammer anti-pattern.

socialhub.activitypub.rocks/t/

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

Hollo :hollo:'s avatar
Hollo :hollo:

@hollo@hollo.social

0.6.0 is coming soon!

We're putting the finishing touches on our biggest security and feature update yet. Here's what's coming:

Enhanced

  • RFC 8414 (OAuth metadata discovery)
  • RFC 7636 ( support)
  • Improved authorization flows following RFC 9700 best practices

New features

  • Extended character limit (4K → 10K)
  • Code syntax highlighting
  • Customizable profile themes
  • EXIF metadata stripping for privacy

Important notes for update

  • Node.js 24+ required
  • Updated environment variables for asset storage
  • Stronger SECRET_KEY requirements (44+ chars)

Special thanks to @thisismissem for the extensive OAuth improvements that help keep the secure and compatible! 🙏

Full changelog and upgrade guide coming with the release.

8's avatar
8

@octarine_wiggle@mastodon.au

What's the minimum viable replacement?

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Kye Fox's avatar
Kye Fox

@Kye@tech.lgbt · Reply to Kye Fox's post

New problems emerge the more I try to use it. Direct AP<->AP works fine. Bridged stuff is inconsistent. Likes, boosts, etc don't go through. Follows don't show even if there's a bridged pair for the following account.

I don't fault the people working on Bridgy but I do know this would be easier to get right if follow relationships were simple data any authenticated app could read.

I haven't heard a positive account of developing anything moderately complex for AP. By comparison, all the AT dev accounts are positive, usually noting how easy it is to work with everything since everything is "on protocol" (the term of art for storing data in lexicons on your PDS) rather than dependent on negotiating implementation differences between the dominant platform and everything else.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Kye Fox's avatar
Kye Fox

@Kye@tech.lgbt · Reply to Kye Fox's post

New problems emerge the more I try to use it. Direct AP<->AP works fine. Bridged stuff is inconsistent. Likes, boosts, etc don't go through. Follows don't show even if there's a bridged pair for the following account.

I don't fault the people working on Bridgy but I do know this would be easier to get right if follow relationships were simple data any authenticated app could read.

I haven't heard a positive account of developing anything moderately complex for AP. By comparison, all the AT dev accounts are positive, usually noting how easy it is to work with everything since everything is "on protocol" (the term of art for storing data in lexicons on your PDS) rather than dependent on negotiating implementation differences between the dominant platform and everything else.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

1.6 is approaching with three major enhancements: RFC 9421 HTTP Message Signatures support with double-knocking for seamless backward compatibility, a new builder pattern for better code organization in large applications, and native support for serverless deployments. These additions strengthen Fedify's standards compliance while expanding deployment flexibility across different environments. Stay tuned for the official release! 🚀

Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

Does your Bluesky PDS support Mastodon? Mine does*. 😋

Test user's profile page shown in the official Bluesky client app
ALT text detailsTest user's profile page shown in the official Bluesky client app
Mastodon client Tusky showing the same test user
ALT text detailsMastodon client Tusky showing the same test user
⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
The new version of is much, much faster at loading and reordering the timeline. Also has fancy gradients to show you which hashtags in your feed are the ones trending the most and which ones you post about the most. Also a bunch of other tweaks and improvements.

* Try the demo: michelcrypt4d4mus.github.io/fe
* Video of it in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

Screenshot of Fedialgo demo
ALT text detailsScreenshot of Fedialgo demo
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hi @mikelynch 👋

I am updating delightful.coding.social/delig and wanted to include your archive to pages utility.

Yet the curated list is only for open source resources and without license the script is technically not. Would you be open to add a FOSS license to it, perhaps?

git.tilde.town/bombinans/apub2

8's avatar
8

@octarine_wiggle@mastodon.au

What's the minimum viable replacement?

8's avatar
8

@octarine_wiggle@mastodon.au

What's the minimum viable replacement?

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Reminder: AS/AP-based suffers from based ad-hoc expansion unless we find common practices and stick to them. Collaboration across a commons is essential here. Just coding your app with custom protocol extension is contributing to and increasing complexity to facilitate broad .

The process and are where collective effort and proactive participation can improve for all. We need a bottom up standardization process.

Scene from Indiana Jones Raiders of the Lost Ark, where Indy is fleeing a tunnel vision with a huge boulder in pursuit. The boulder is named "Protocol Decay" and Indy is labeled "Fediverse".
ALT text detailsScene from Indiana Jones Raiders of the Lost Ark, where Indy is fleeing a tunnel vision with a huge boulder in pursuit. The boulder is named "Protocol Decay" and Indy is labeled "Fediverse".
Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

In Mastodon flavor ActivityPub, the webfinger's subject decides a user's displayed handle. The URLs used as IDs or the location of the "self" endpoint don't have to match the user at all. So then, what if webfingers resolved to DID URLs instead? ❤️‍🔥 CHAOS! ❤️‍🔥

In my code I have my activitypub endpoints that take a user handle and resolve things. What if we used DID's instead?
ALT text detailsIn my code I have my activitypub endpoints that take a user handle and resolve things. What if we used DID's instead?
Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social

Fascinating use of for dev work…
manton.org/2025/06/01/ai-hater

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Bumped into this interesting yet unmaintained project while updating delightful.coding.social/delig

"Stonenet is a (social) publish-subscribe network, also known as a decentralized social media platform. It is designed to protect free speech, and resist censorship. Everyone moderates their own home feed, and content is only distributed by those peers that have consented to do so, by subscribing to someone and thereby explicitly supporting their content"

github.com/bamidev/stonenet

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
The new version of is much, much faster at loading and reordering the timeline. Also has fancy gradients to show you which hashtags in your feed are the ones trending the most and which ones you post about the most. Also a bunch of other tweaks and improvements.

* Try the demo: michelcrypt4d4mus.github.io/fe
* Video of it in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

Screenshot of Fedialgo demo
ALT text detailsScreenshot of Fedialgo demo
Mike Kasprzak's avatar
Mike Kasprzak

@distraction.engineer@bsky.brid.gy

Does your Bluesky PDS support Mastodon? Mine does*. 😋

Test user's profile page shown in the official Bluesky client app
ALT text detailsTest user's profile page shown in the official Bluesky client app
Mastodon client Tusky showing the same test user
ALT text detailsMastodon client Tusky showing the same test user
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hi @delta 👋

I am making updates to delightful.coding.social/delig and bumped into this interesting to proof of concept. Just a heads-up to make you aware, in case it is interesting for in some way or other.

apubtest2.srcbeat.com/apas.htm

Kye Fox's avatar
Kye Fox

@Kye@tech.lgbt

Trying Ghost's AP implementation just emphasizes what I don't like about AP-in-practice. Between that and all the bridge profiles, there are 4 new profiles, each with their own copy of the data to maintain.

With AT, it's just the one account across all platforms with all the data stored on my PDS.

Worse, to get any notice to posts appearing on them, I have to boost from my existing accounts on each network. That's a lot of trouble! With AT, they would just pull it from the relay, which pulls from my PDS. Or go directly to the PDS in some circumstances.

AP could probably be better in practice, but everyone is required to make it work with Mastodon or essentially be incompatible since it has most of the network on a few servers with a standard ignoring implementation.

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
The new version of is much, much faster at loading and reordering the timeline. Also has fancy gradients to show you which hashtags in your feed are the ones trending the most and which ones you post about the most. Also a bunch of other tweaks and improvements.

* Try the demo: michelcrypt4d4mus.github.io/fe
* Video of it in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

Screenshot of Fedialgo demo
ALT text detailsScreenshot of Fedialgo demo
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
The new version of is much, much faster at loading and reordering the timeline. Also has fancy gradients to show you which hashtags in your feed are the ones trending the most and which ones you post about the most. Also a bunch of other tweaks and improvements.

* Try the demo: michelcrypt4d4mus.github.io/fe
* Video of it in action: universeodon.com/@cryptadamist
* Release notes: github.com/michelcrypt4d4mus/f

Screenshot of Fedialgo demo
ALT text detailsScreenshot of Fedialgo demo
Kye Fox's avatar
Kye Fox

@Kye@tech.lgbt

Trying Ghost's AP implementation just emphasizes what I don't like about AP-in-practice. Between that and all the bridge profiles, there are 4 new profiles, each with their own copy of the data to maintain.

With AT, it's just the one account across all platforms with all the data stored on my PDS.

Worse, to get any notice to posts appearing on them, I have to boost from my existing accounts on each network. That's a lot of trouble! With AT, they would just pull it from the relay, which pulls from my PDS. Or go directly to the PDS in some circumstances.

AP could probably be better in practice, but everyone is required to make it work with Mastodon or essentially be incompatible since it has most of the network on a few servers with a standard ignoring implementation.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Plumf's avatar
Plumf

@plumf@piaille.fr

Salut le Fediverse, je cherche à autohéberger (sur ) un serveur pour microblogger. Pas trop envie d'installer pour 2,3 comptes qui ne feront que publier automatiquement les actus des projets. Il y a mais il est en version nowasm (Et ça me semble risqué). Est-ce qu'il y a des utilisateur⋅ices de ou qui ont un retour d'expérience à exprimer ? Et dans l'idéal, moins il consomme de ressources, plus ça me convient =)

Il y a aussi et (mais je n'ai pas besoin d'une interface graphique qui consomme de la ressource pour rien...)

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

🎉 support is now complete! After implementing the test infrastructure, core module, examples, and comprehensive documentation, can now run on Cloudflare Workers.

What's included:

Try it now: Available in the development release v1.6.1-dev.876+7b07d213:

This will be included in the upcoming Fedify 1.6 stable release. Thank you to everyone who requested this feature and provided feedback throughout the implementation!

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Elena Rossini ⁂'s post

@_elena @enocc @sylvia

Nice! Good opportunity to mention I just added some fedi-related resources, magic of the to:

codeberg.org/fediverse/delight

(In the Bridges section)

Had a huge backlog and I am making lotsa updates now to process it. Earlier did too to apps and clients fedi delightful lists, and the root list, now hosted at delightful.coding.social

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I deployed my first application on Cloudflare Workers and saw it running smoothly. Now all that's left is the documentation!

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Richie Khoo's post

@richiekhoo hey there.

I think both and are projects to check out.

codeberg.org/fediverse/delight

There is also recent discussion on the forum around events :

socialhub.activitypub.rocks/t/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I deployed my first application on Cloudflare Workers and saw it running smoothly. Now all that's left is the documentation!

Gregory's avatar
Gregory

@grishka@mastodon.social

Gregory's avatar
Gregory

@grishka@mastodon.social

Gregory's avatar
Gregory

@grishka@mastodon.social

Gregory's avatar
Gregory

@grishka@mastodon.social

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Jared Jennings's post

@jaredj

Check out .. "Organise and share your 3d print files"

manyfold.app

github.com/manyfold3d/manyfold

Jared Jennings's avatar
Jared Jennings

@jaredj@bsd.cafe

Hi ! I just fashioned a knob that goes on a kg271 wheel lock. Where do people post models for these days, where the models are findable (implying some amount of centralization), but the site works (last I checked, this means not Thingiverse) and the organization is not toxic in some way? (... is there an extension for 3d model sharing? ... someone wanted to do one in 2023, socialhub.activitypub.rocks/t/ ... who were you, Y0z64? WHAT DID YOU SEE? xkcd.com/979)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

Tom Casavant's avatar
Tom Casavant

@tom@tomkahe.com

Ha, you can run an ActivityPub server on your android phone through termux

image/jpeg
Screenshot of a mastodon user page from activitypub.academy
Page shows a user named Tom Casavant (Android)
@tomcasavant@rnyyg-86-48-9-153.a.free.pin...

1 post 22s ago:
Hello from my samsung s22
ALT text detailsimage/jpeg Screenshot of a mastodon user page from activitypub.academy Page shows a user named Tom Casavant (Android) @tomcasavant@rnyyg-86-48-9-153.a.free.pin... 1 post 22s ago: Hello from my samsung s22
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

Jared Jennings's avatar
Jared Jennings

@jaredj@bsd.cafe

Hi ! I just fashioned a knob that goes on a kg271 wheel lock. Where do people post models for these days, where the models are findable (implying some amount of centralization), but the site works (last I checked, this means not Thingiverse) and the organization is not toxic in some way? (... is there an extension for 3d model sharing? ... someone wanted to do one in 2023, socialhub.activitypub.rocks/t/ ... who were you, Y0z64? WHAT DID YOU SEE? xkcd.com/979)

xszsx

@xszsx@app.wafrn.net

Hello waffle! Been escaping from the dumpster fire that is Big Social for a while now, but only to find that the two main alternatives are not on talking terms with each other, due to technical differences which sucks. I hope wafrn will deliver the ease of moving between ActivityPub and ATProto. Having accounts on both is not ideal.
I'm still wrapping my head around it, a bit woozy from the Millennial tumblr chaotic energy.
Here's some galettes.


#waffle #wafrn #mastodon #bluesky #activitypub #atproto #millennial #tumblr #galette
galettes on a plate duh
ALT text detailsgalettes on a plate duh
Tom Casavant's avatar
Tom Casavant

@tom@tomkahe.com

Ha, you can run an ActivityPub server on your android phone through termux

image/jpeg
Screenshot of a mastodon user page from activitypub.academy
Page shows a user named Tom Casavant (Android)
@tomcasavant@rnyyg-86-48-9-153.a.free.pin...

1 post 22s ago:
Hello from my samsung s22
ALT text detailsimage/jpeg Screenshot of a mastodon user page from activitypub.academy Page shows a user named Tom Casavant (Android) @tomcasavant@rnyyg-86-48-9-153.a.free.pin... 1 post 22s ago: Hello from my samsung s22
Tom Casavant's avatar
Tom Casavant

@tom@tomkahe.com

Ha, you can run an ActivityPub server on your android phone through termux

image/jpeg
Screenshot of a mastodon user page from activitypub.academy
Page shows a user named Tom Casavant (Android)
@tomcasavant@rnyyg-86-48-9-153.a.free.pin...

1 post 22s ago:
Hello from my samsung s22
ALT text detailsimage/jpeg Screenshot of a mastodon user page from activitypub.academy Page shows a user named Tom Casavant (Android) @tomcasavant@rnyyg-86-48-9-153.a.free.pin... 1 post 22s ago: Hello from my samsung s22
Tom Casavant's avatar
Tom Casavant

@tom@tomkahe.com

Ha, you can run an ActivityPub server on your android phone through termux

image/jpeg
Screenshot of a mastodon user page from activitypub.academy
Page shows a user named Tom Casavant (Android)
@tomcasavant@rnyyg-86-48-9-153.a.free.pin...

1 post 22s ago:
Hello from my samsung s22
ALT text detailsimage/jpeg Screenshot of a mastodon user page from activitypub.academy Page shows a user named Tom Casavant (Android) @tomcasavant@rnyyg-86-48-9-153.a.free.pin... 1 post 22s ago: Hello from my samsung s22
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

Tom Casavant's avatar
Tom Casavant

@tom@tomkahe.com

Ha, you can run an ActivityPub server on your android phone through termux

image/jpeg
Screenshot of a mastodon user page from activitypub.academy
Page shows a user named Tom Casavant (Android)
@tomcasavant@rnyyg-86-48-9-153.a.free.pin...

1 post 22s ago:
Hello from my samsung s22
ALT text detailsimage/jpeg Screenshot of a mastodon user page from activitypub.academy Page shows a user named Tom Casavant (Android) @tomcasavant@rnyyg-86-48-9-153.a.free.pin... 1 post 22s ago: Hello from my samsung s22
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

ActivityPubサーバーを構築してみたいけれど、どこから始めればよいかわからない方には、Fedifyのチュートリアル『自分だけのフェディバースのマイクロブログを作ろう!』をおすすめします。包括的でステップバイステップのガイドで、完全に機能する連合型アプリケーションの構築方法を丁寧に解説しています。フェディバースに飛び込みたい開発者にぴったりです!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

If you're interested in building your own server but don't know where to start, I recommend checking out 's Creating your own federated microblog. It provides a comprehensive, step-by-step guide that walks you through building a fully functional federated application. Perfect for developers who want to dive into the !

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-30

Servers

- Socialhome v0.21.0
- Sharkey v2025.4.2
- gathio v1.6.0
- Ibis v0.3.1
- NeoDB v0.11.7.3
- Platform update - May 2025 (Vernissage)
- PieFed development update May 2025 - Passkeys, Flair, Image hashing & much more
- Metabolizing mentions (Ghost)
- Tvmarks: a TV tracking site connected to the Fediverse

Clients

- Pachli v2.13.0
- Mangane v1.14.0
- Fread v1.4.0

Tools and Plugins

- FIRES Server v0.1.0

For developers

- Fedialgo v0.55.0
- ap-components: A collection of Web Components for showing ActivityPub objects in a browser

Articles

- Fediverse Report – #118

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196feaa-e902-fdfb-9628-0a17333c6da5

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hi @tedu 👋

Even though it hasn't been updated for a while I want to add idkfa to delightful-activitypub-development, given the interesting approach you experiment with. Yet there is no license AFAIK, and the curated list is FOSS-only. Would you consider adding one?

delightful.club/delightful-act

flak.tedunangst.com/post/idkfa

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-30

Servers

- Socialhome v0.21.0
- Sharkey v2025.4.2
- gathio v1.6.0
- Ibis v0.3.1
- NeoDB v0.11.7.3
- Platform update - May 2025 (Vernissage)
- PieFed development update May 2025 - Passkeys, Flair, Image hashing & much more
- Metabolizing mentions (Ghost)
- Tvmarks: a TV tracking site connected to the Fediverse

Clients

- Pachli v2.13.0
- Mangane v1.14.0
- Fread v1.4.0

Tools and Plugins

- FIRES Server v0.1.0

For developers

- Fedialgo v0.55.0
- ap-components: A collection of Web Components for showing ActivityPub objects in a browser

Articles

- Fediverse Report – #118

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196feaa-e902-fdfb-9628-0a17333c6da5

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-30

Servers

- Socialhome v0.21.0
- Sharkey v2025.4.2
- gathio v1.6.0
- Ibis v0.3.1
- NeoDB v0.11.7.3
- Platform update - May 2025 (Vernissage)
- PieFed development update May 2025 - Passkeys, Flair, Image hashing & much more
- Metabolizing mentions (Ghost)
- Tvmarks: a TV tracking site connected to the Fediverse

Clients

- Pachli v2.13.0
- Mangane v1.14.0
- Fread v1.4.0

Tools and Plugins

- FIRES Server v0.1.0

For developers

- Fedialgo v0.55.0
- ap-components: A collection of Web Components for showing ActivityPub objects in a browser

Articles

- Fediverse Report – #118

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196feaa-e902-fdfb-9628-0a17333c6da5

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-30

Servers

- Socialhome v0.21.0
- Sharkey v2025.4.2
- gathio v1.6.0
- Ibis v0.3.1
- NeoDB v0.11.7.3
- Platform update - May 2025 (Vernissage)
- PieFed development update May 2025 - Passkeys, Flair, Image hashing & much more
- Metabolizing mentions (Ghost)
- Tvmarks: a TV tracking site connected to the Fediverse

Clients

- Pachli v2.13.0
- Mangane v1.14.0
- Fread v1.4.0

Tools and Plugins

- FIRES Server v0.1.0

For developers

- Fedialgo v0.55.0
- ap-components: A collection of Web Components for showing ActivityPub objects in a browser

Articles

- Fediverse Report – #118

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196feaa-e902-fdfb-9628-0a17333c6da5

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Automattic says it will start contributing to WordPress again after pause« techcrunch.com/2025/05/30/auto

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Automattic says it will start contributing to WordPress again after pause« techcrunch.com/2025/05/30/auto

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hey 👋

I gave some good updates to the curated fediverse clients list. So many new fresh and cool web, desktop and mobile clients to choose from to access your favorite web services.

What is your favorite fedi client?

delightful.coding.social/delig

PS. See something missing? File an issue or pull request at at:

codeberg.org/fediverse/delight

Also check out the other fedi-related lists at delightful.coding.social or.. maybe you even want to start your own sub-list?

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to ianjs's post

@ianjs

I agree. Yet the fediverse-related delightful lists serve a different purpose: to inform developers of all the things that are out there, give overview of the open ecosystem, so they can be inspired by prior art or choose where to contribute and help improve the fedi as a whole.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hey 👋

I gave some good updates to the curated fediverse clients list. So many new fresh and cool web, desktop and mobile clients to choose from to access your favorite web services.

What is your favorite fedi client?

delightful.coding.social/delig

PS. See something missing? File an issue or pull request at at:

codeberg.org/fediverse/delight

Also check out the other fedi-related lists at delightful.coding.social or.. maybe you even want to start your own sub-list?

Stefan's avatar
Stefan

@stefan@gardenstate.social

Hey , do you love ? I've launched a new app to track your tv in a single user app with support!

After you watch give my github repo a ⭐ ! github.com/stefanhayden/tvmark

a demo of the tvtime web app.
ALT text detailsa demo of the tvtime web app.
naturzukunft's avatar
naturzukunft

@naturzukunft@mastodon.social

Grrrr spent almost an hour debugging a problem. It was the receiver as:Public. as:Public is the devil !

naturzukunft's avatar
naturzukunft

@naturzukunft@mastodon.social

Grrrr spent almost an hour debugging a problem. It was the receiver as:Public. as:Public is the devil !

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, not just Decentralized Social (DeSo), but instead —

Decentralized Social (DeSo), Federated Social (FeSo), Localized Social (LoSo)

The goal is 'social' that is simultaneously — 'Decentralized', 'Federated', and 'Localized', all at the same time.

RE: mastodon.social/@reiver/114551

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Federation is the word we use to describe that act of bringing together and connecting these separate Decentralized, Localized communities.

This is where protocols such as ActivityPub, ActivityStreams, etc come into play.

Federation is a voluntary choice.
But, so too is Defederation, if desired.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to abeorch's post

@abeorch @nextcloud @warmaster @buyeuropean

Good idea. And it might also federate with the developer community that is custodian of the process, among others.

socialhub.activitypub.rocks

Synaps Media's avatar
Synaps Media

@synapsmedia@mastodon.social

Social Media (beta) arrives at Synaps Media!

synapsmedia.com/changelog/soci

Synaps Media's avatar
Synaps Media

@synapsmedia@mastodon.social

Social Media (beta) arrives at Synaps Media!

synapsmedia.com/changelog/soci

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

! I will be hosting an unconference of @badgefed - an microcredentials system decentralizing using and - in the @fediforum

I will be giving an attendee badge to everyone to stop and say hi, so, if you have not registered for this virtual conference on June 5-7 go to fediforum.org/ and do it if you can!

See you there!

The image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
ALT text detailsThe image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

! I will be hosting an unconference of @badgefed - an microcredentials system decentralizing using and - in the @fediforum

I will be giving an attendee badge to everyone to stop and say hi, so, if you have not registered for this virtual conference on June 5-7 go to fediforum.org/ and do it if you can!

See you there!

The image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
ALT text detailsThe image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

I just created a badge for anyone attending my unconference at the @fediforum ! Look how beautiful it is.

See you there!

badges.vocalcat.com/explore

The image features a purple background with a prominent orange and brown geometric logo in the center, resembling a stylized "W" or "V" shape. In the top left corner, there is a white speech bubble with the text "#UNCONFERENCED ... and unbothered" in purple. In the top right corner, another white speech bubble contains the text "FediForum 2025" in white. At the bottom of the image, in white text, it reads "I Showed Up • I Shared • I #BadgeFed - June 2025." The overall design is simple and modern, with a focus on the central logo and the text elements.
ALT text detailsThe image features a purple background with a prominent orange and brown geometric logo in the center, resembling a stylized "W" or "V" shape. In the top left corner, there is a white speech bubble with the text "#UNCONFERENCED ... and unbothered" in purple. In the top right corner, another white speech bubble contains the text "FediForum 2025" in white. At the bottom of the image, in white text, it reads "I Showed Up • I Shared • I #BadgeFed - June 2025." The overall design is simple and modern, with a focus on the central logo and the text elements.
Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

I just created a badge for anyone attending my unconference at the @fediforum ! Look how beautiful it is.

See you there!

badges.vocalcat.com/explore

The image features a purple background with a prominent orange and brown geometric logo in the center, resembling a stylized "W" or "V" shape. In the top left corner, there is a white speech bubble with the text "#UNCONFERENCED ... and unbothered" in purple. In the top right corner, another white speech bubble contains the text "FediForum 2025" in white. At the bottom of the image, in white text, it reads "I Showed Up • I Shared • I #BadgeFed - June 2025." The overall design is simple and modern, with a focus on the central logo and the text elements.
ALT text detailsThe image features a purple background with a prominent orange and brown geometric logo in the center, resembling a stylized "W" or "V" shape. In the top left corner, there is a white speech bubble with the text "#UNCONFERENCED ... and unbothered" in purple. In the top right corner, another white speech bubble contains the text "FediForum 2025" in white. At the bottom of the image, in white text, it reads "I Showed Up • I Shared • I #BadgeFed - June 2025." The overall design is simple and modern, with a focus on the central logo and the text elements.
Stefan's avatar
Stefan

@stefan@gardenstate.social

Hey , do you love ? I've launched a new app to track your tv in a single user app with support!

After you watch give my github repo a ⭐ ! github.com/stefanhayden/tvmark

a demo of the tvtime web app.
ALT text detailsa demo of the tvtime web app.
Alex Plaum's avatar
Alex Plaum

@lxplm@mastodon.social

(1/2) Good news, everyone!

Seit Anfang Mai bin ich Fellow bei einem wegweisenden Programm von Media Lab Bayern, SWR X Lab und Mastodon:

Reinvent Social Platforms!

Gemeinsam wollen wir dezentrale, nachhaltige stärken. Mit und experimentieren. Medienmenschen an Bord holen. Innovative, attraktive Lösungen für journalistische Herausforderungen finden.

Falls ihr auf diese Themen auch Bock habt: Meldet euch sehr gerne bei mir. Ich habe viele Fragen. Und Ideen.

Alex Plaum's avatar
Alex Plaum

@lxplm@mastodon.social

(1/2) Good news, everyone!

Seit Anfang Mai bin ich Fellow bei einem wegweisenden Programm von Media Lab Bayern, SWR X Lab und Mastodon:

Reinvent Social Platforms!

Gemeinsam wollen wir dezentrale, nachhaltige stärken. Mit und experimentieren. Medienmenschen an Bord holen. Innovative, attraktive Lösungen für journalistische Herausforderungen finden.

Falls ihr auf diese Themen auch Bock habt: Meldet euch sehr gerne bei mir. Ich habe viele Fragen. Und Ideen.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're planning to reorganize our labels to better reflect 's project structure! 🏷️

Currently using GitHub's default labels, but we want something more tailored to our needs—like component-specific labels (vocab, federation, actor, etc.), runtime tags (Deno/Node/Bun), and compatibility tracking.

The proposal includes hierarchical labeling with categories like:

  • type/ for bug, feature, documentation
  • component/ for different parts of Fedify
  • activitypub/ for interop issues with Mastodon, Misskey, etc.

We'd love your thoughts! What labels would be most helpful for contributors and maintainers?

Check out the full proposal: https://github.com/fedify-dev/fedify/issues/238.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're planning to reorganize our labels to better reflect 's project structure! 🏷️

Currently using GitHub's default labels, but we want something more tailored to our needs—like component-specific labels (vocab, federation, actor, etc.), runtime tags (Deno/Node/Bun), and compatibility tracking.

The proposal includes hierarchical labeling with categories like:

  • type/ for bug, feature, documentation
  • component/ for different parts of Fedify
  • activitypub/ for interop issues with Mastodon, Misskey, etc.

We'd love your thoughts! What labels would be most helpful for contributors and maintainers?

Check out the full proposal: https://github.com/fedify-dev/fedify/issues/238.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're planning to reorganize our labels to better reflect 's project structure! 🏷️

Currently using GitHub's default labels, but we want something more tailored to our needs—like component-specific labels (vocab, federation, actor, etc.), runtime tags (Deno/Node/Bun), and compatibility tracking.

The proposal includes hierarchical labeling with categories like:

  • type/ for bug, feature, documentation
  • component/ for different parts of Fedify
  • activitypub/ for interop issues with Mastodon, Misskey, etc.

We'd love your thoughts! What labels would be most helpful for contributors and maintainers?

Check out the full proposal: https://github.com/fedify-dev/fedify/issues/238.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're planning to reorganize our labels to better reflect 's project structure! 🏷️

Currently using GitHub's default labels, but we want something more tailored to our needs—like component-specific labels (vocab, federation, actor, etc.), runtime tags (Deno/Node/Bun), and compatibility tracking.

The proposal includes hierarchical labeling with categories like:

  • type/ for bug, feature, documentation
  • component/ for different parts of Fedify
  • activitypub/ for interop issues with Mastodon, Misskey, etc.

We'd love your thoughts! What labels would be most helpful for contributors and maintainers?

Check out the full proposal: https://github.com/fedify-dev/fedify/issues/238.

Stefan's avatar
Stefan

@stefan@gardenstate.social

Hey , do you love ? I've launched a new app to track your tv in a single user app with support!

After you watch give my github repo a ⭐ ! github.com/stefanhayden/tvmark

a demo of the tvtime web app.
ALT text detailsa demo of the tvtime web app.
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hey 👋

I gave some good updates to the curated fediverse clients list. So many new fresh and cool web, desktop and mobile clients to choose from to access your favorite web services.

What is your favorite fedi client?

delightful.coding.social/delig

PS. See something missing? File an issue or pull request at at:

codeberg.org/fediverse/delight

Also check out the other fedi-related lists at delightful.coding.social or.. maybe you even want to start your own sub-list?

Stefan's avatar
Stefan

@stefan@gardenstate.social

Look at this app I built!

I call it and you can find the code here: github.com/stefanhayden/tvmark

"look at this photograph" meme with tvmarks as the photo
ALT text details"look at this photograph" meme with tvmarks as the photo
Joomla!'s avatar
Joomla!

@joomla@joomla.social · Reply to ralf tauscher :FreiburgSocial:'s post

@stereo @dagger

Check it here magazine.joomla.org/all-issues

Turning the Joomla website into an ActivityPub server and being an independent participant in the Fediverse - A start

and on GitHub github.com/nikosdion/fediverse

Joomla!'s avatar
Joomla!

@joomla@joomla.social · Reply to ralf tauscher :FreiburgSocial:'s post

@stereo @dagger

Check it here magazine.joomla.org/all-issues

Turning the Joomla website into an ActivityPub server and being an independent participant in the Fediverse - A start

and on GitHub github.com/nikosdion/fediverse

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Stefan's post

@stefan @categulario

That's great. Intrinsic motivation is what works best in the commons. Nice project! I have it queued up for addition to the delightful lists, in particular this one:

delightful.coding.social/delig

ralf tauscher :FreiburgSocial:'s avatar
ralf tauscher :FreiburgSocial:

@stereo@freiburg.social · Reply to Dagger ☀️'s post

@dagger dank plugin fuer oder oefter moeglich als man denkt.
hat das schon jemand mit am laufen?

cc @joomla

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Stefan's post

@stefan @categulario

That's great. Intrinsic motivation is what works best in the commons. Nice project! I have it queued up for addition to the delightful lists, in particular this one:

delightful.coding.social/delig

Stefan's avatar
Stefan

@stefan@gardenstate.social

Look at this app I built!

I call it and you can find the code here: github.com/stefanhayden/tvmark

"look at this photograph" meme with tvmarks as the photo
ALT text details"look at this photograph" meme with tvmarks as the photo
Stefan's avatar
Stefan

@stefan@gardenstate.social

Look at this app I built!

I call it and you can find the code here: github.com/stefanhayden/tvmark

"look at this photograph" meme with tvmarks as the photo
ALT text details"look at this photograph" meme with tvmarks as the photo
Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»New external tools for PeerTube Live!« joinpeertube.org/news/live-plu

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hey 👋

I gave some good updates to the curated fediverse clients list. So many new fresh and cool web, desktop and mobile clients to choose from to access your favorite web services.

What is your favorite fedi client?

delightful.coding.social/delig

PS. See something missing? File an issue or pull request at at:

codeberg.org/fediverse/delight

Also check out the other fedi-related lists at delightful.coding.social or.. maybe you even want to start your own sub-list?

Stefan's avatar
Stefan

@stefan@gardenstate.social

Look at this app I built!

I call it and you can find the code here: github.com/stefanhayden/tvmark

"look at this photograph" meme with tvmarks as the photo
ALT text details"look at this photograph" meme with tvmarks as the photo
Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»New external tools for PeerTube Live!« joinpeertube.org/news/live-plu

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»New external tools for PeerTube Live!« joinpeertube.org/news/live-plu

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hey 👋

I gave some good updates to the curated fediverse clients list. So many new fresh and cool web, desktop and mobile clients to choose from to access your favorite web services.

What is your favorite fedi client?

delightful.coding.social/delig

PS. See something missing? File an issue or pull request at at:

codeberg.org/fediverse/delight

Also check out the other fedi-related lists at delightful.coding.social or.. maybe you even want to start your own sub-list?

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hey 👋

I gave some good updates to the curated fediverse clients list. So many new fresh and cool web, desktop and mobile clients to choose from to access your favorite web services.

What is your favorite fedi client?

delightful.coding.social/delig

PS. See something missing? File an issue or pull request at at:

codeberg.org/fediverse/delight

Also check out the other fedi-related lists at delightful.coding.social or.. maybe you even want to start your own sub-list?

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Hey 👋

I gave some good updates to the curated fediverse clients list. So many new fresh and cool web, desktop and mobile clients to choose from to access your favorite web services.

What is your favorite fedi client?

delightful.coding.social/delig

PS. See something missing? File an issue or pull request at at:

codeberg.org/fediverse/delight

Also check out the other fedi-related lists at delightful.coding.social or.. maybe you even want to start your own sub-list?

甘瀬ここあ's avatar
甘瀬ここあ

@cocoa@hackers.pub


When installing the patched versions of Misskey (Pull Request available) and Sharkey (with changes already applied) on a Fedora 42 environment, you may encounter the following errors:

error: ‘uint8_t’ was not declared in this scope
error: ‘state’ was not declared in this scope

These issues seem to stem from the version of GCC being used (Reference). Below, I will outline how to resolve these problems on Fedora 42.

Step 1: Install Dependencies

First, as indicated in the wiki, install the necessary dependencies:

sudo dnf install cairo-devel libjpeg-turbo-devel pango-devel giflib-devel pixman-devel

Step 2: Compile GCC/G++

Using the default GCC bundled with Fedora may lead to failed installations when running pnpm install (as of May 27, 2025). To avoid this issue, we need to compile and use a other version of GCC/G++.

Start by downloading the GCC source code using wget, then extract it and navigate to the source directory:

wget https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.3.0/gcc-13.3.0.tar.gz
tar xzf gcc-13.3.0.tar.gz
cd gcc-13.3.0
mkdir build
cd build

Next, install the dependencies required for building GCC/G++:

sudo dnf group install development-tools
sudo dnf install mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel libgphobos-static

Now, configure the build (Flags should be changed as needed.):

../configure --disable-bootstrap --prefix=/usr --program-suffix=-13.3 --mandir=/usr/share/man --enable-languages=c,c++

After configuration, compile GCC with the following command:

make

To utilize multiple cores for a faster build, use the -j flag:

make -j6

Once the compilation is complete, install the new GCC version:

sudo make install

You can verify the installation of the compiled GCC using:

gcc-13.3 -v

Step 3: Modify Installation Command for Misskey/Sharkey

Finally, to successfully install Sharkey and Misskey, modify the installation command as follows:

CXX=/usr/sbin/g++-13.3 CC=/usr/sbin/gcc-13.3 pnpm install --frozen-lockfile

With these adjustments, you should be able to install Misskey and Sharkey without any issues. Enjoy Fediverse!

*I have used LLM to some extent to modify the text to make it more natural. I checked to some extent before post, but please let us know if there are any unnatural parts.

References

甘瀬ここあ's avatar
甘瀬ここあ

@cocoa@hackers.pub


When installing the patched versions of Misskey (Pull Request available) and Sharkey (with changes already applied) on a Fedora 42 environment, you may encounter the following errors:

error: ‘uint8_t’ was not declared in this scope
error: ‘state’ was not declared in this scope

These issues seem to stem from the version of GCC being used (Reference). Below, I will outline how to resolve these problems on Fedora 42.

Step 1: Install Dependencies

First, as indicated in the wiki, install the necessary dependencies:

sudo dnf install cairo-devel libjpeg-turbo-devel pango-devel giflib-devel pixman-devel

Step 2: Compile GCC/G++

Using the default GCC bundled with Fedora may lead to failed installations when running pnpm install (as of May 27, 2025). To avoid this issue, we need to compile and use a other version of GCC/G++.

Start by downloading the GCC source code using wget, then extract it and navigate to the source directory:

wget https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.3.0/gcc-13.3.0.tar.gz
tar xzf gcc-13.3.0.tar.gz
cd gcc-13.3.0
mkdir build
cd build

Next, install the dependencies required for building GCC/G++:

sudo dnf group install development-tools
sudo dnf install mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel libgphobos-static

Now, configure the build (Flags should be changed as needed.):

../configure --disable-bootstrap --prefix=/usr --program-suffix=-13.3 --mandir=/usr/share/man --enable-languages=c,c++

After configuration, compile GCC with the following command:

make

To utilize multiple cores for a faster build, use the -j flag:

make -j6

Once the compilation is complete, install the new GCC version:

sudo make install

You can verify the installation of the compiled GCC using:

gcc-13.3 -v

Step 3: Modify Installation Command for Misskey/Sharkey

Finally, to successfully install Sharkey and Misskey, modify the installation command as follows:

CXX=/usr/sbin/g++-13.3 CC=/usr/sbin/gcc-13.3 pnpm install --frozen-lockfile

With these adjustments, you should be able to install Misskey and Sharkey without any issues. Enjoy Fediverse!

*I have used LLM to some extent to modify the text to make it more natural. I checked to some extent before post, but please let us know if there are any unnatural parts.

References

甘瀬ここあ's avatar
甘瀬ここあ

@cocoa@hackers.pub


When installing the patched versions of Misskey (Pull Request available) and Sharkey (with changes already applied) on a Fedora 42 environment, you may encounter the following errors:

error: ‘uint8_t’ was not declared in this scope
error: ‘state’ was not declared in this scope

These issues seem to stem from the version of GCC being used (Reference). Below, I will outline how to resolve these problems on Fedora 42.

Step 1: Install Dependencies

First, as indicated in the wiki, install the necessary dependencies:

sudo dnf install cairo-devel libjpeg-turbo-devel pango-devel giflib-devel pixman-devel

Step 2: Compile GCC/G++

Using the default GCC bundled with Fedora may lead to failed installations when running pnpm install (as of May 27, 2025). To avoid this issue, we need to compile and use a other version of GCC/G++.

Start by downloading the GCC source code using wget, then extract it and navigate to the source directory:

wget https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.3.0/gcc-13.3.0.tar.gz
tar xzf gcc-13.3.0.tar.gz
cd gcc-13.3.0
mkdir build
cd build

Next, install the dependencies required for building GCC/G++:

sudo dnf group install development-tools
sudo dnf install mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel libgphobos-static

Now, configure the build (Flags should be changed as needed.):

../configure --disable-bootstrap --prefix=/usr --program-suffix=-13.3 --mandir=/usr/share/man --enable-languages=c,c++

After configuration, compile GCC with the following command:

make

To utilize multiple cores for a faster build, use the -j flag:

make -j6

Once the compilation is complete, install the new GCC version:

sudo make install

You can verify the installation of the compiled GCC using:

gcc-13.3 -v

Step 3: Modify Installation Command for Misskey/Sharkey

Finally, to successfully install Sharkey and Misskey, modify the installation command as follows:

CXX=/usr/sbin/g++-13.3 CC=/usr/sbin/gcc-13.3 pnpm install --frozen-lockfile

With these adjustments, you should be able to install Misskey and Sharkey without any issues. Enjoy Fediverse!

*I have used LLM to some extent to modify the text to make it more natural. I checked to some extent before post, but please let us know if there are any unnatural parts.

References

甘瀬ここあ's avatar
甘瀬ここあ

@cocoa@hackers.pub


When installing the patched versions of Misskey (Pull Request available) and Sharkey (with changes already applied) on a Fedora 42 environment, you may encounter the following errors:

error: ‘uint8_t’ was not declared in this scope
error: ‘state’ was not declared in this scope

These issues seem to stem from the version of GCC being used (Reference). Below, I will outline how to resolve these problems on Fedora 42.

Step 1: Install Dependencies

First, as indicated in the wiki, install the necessary dependencies:

sudo dnf install cairo-devel libjpeg-turbo-devel pango-devel giflib-devel pixman-devel

Step 2: Compile GCC/G++

Using the default GCC bundled with Fedora may lead to failed installations when running pnpm install (as of May 27, 2025). To avoid this issue, we need to compile and use a other version of GCC/G++.

Start by downloading the GCC source code using wget, then extract it and navigate to the source directory:

wget https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.3.0/gcc-13.3.0.tar.gz
tar xzf gcc-13.3.0.tar.gz
cd gcc-13.3.0
mkdir build
cd build

Next, install the dependencies required for building GCC/G++:

sudo dnf group install development-tools
sudo dnf install mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel libgphobos-static

Now, configure the build (Flags should be changed as needed.):

../configure --disable-bootstrap --prefix=/usr --program-suffix=-13.3 --mandir=/usr/share/man --enable-languages=c,c++

After configuration, compile GCC with the following command:

make

To utilize multiple cores for a faster build, use the -j flag:

make -j6

Once the compilation is complete, install the new GCC version:

sudo make install

You can verify the installation of the compiled GCC using:

gcc-13.3 -v

Step 3: Modify Installation Command for Misskey/Sharkey

Finally, to successfully install Sharkey and Misskey, modify the installation command as follows:

CXX=/usr/sbin/g++-13.3 CC=/usr/sbin/gcc-13.3 pnpm install --frozen-lockfile

With these adjustments, you should be able to install Misskey and Sharkey without any issues. Enjoy Fediverse!

*I have used LLM to some extent to modify the text to make it more natural. I checked to some extent before post, but please let us know if there are any unnatural parts.

References

甘瀬ここあ's avatar
甘瀬ここあ

@cocoa@hackers.pub


When installing the patched versions of Misskey (Pull Request available) and Sharkey (with changes already applied) on a Fedora 42 environment, you may encounter the following errors:

error: ‘uint8_t’ was not declared in this scope
error: ‘state’ was not declared in this scope

These issues seem to stem from the version of GCC being used (Reference). Below, I will outline how to resolve these problems on Fedora 42.

Step 1: Install Dependencies

First, as indicated in the wiki, install the necessary dependencies:

sudo dnf install cairo-devel libjpeg-turbo-devel pango-devel giflib-devel pixman-devel

Step 2: Compile GCC/G++

Using the default GCC bundled with Fedora may lead to failed installations when running pnpm install (as of May 27, 2025). To avoid this issue, we need to compile and use a other version of GCC/G++.

Start by downloading the GCC source code using wget, then extract it and navigate to the source directory:

wget https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.3.0/gcc-13.3.0.tar.gz
tar xzf gcc-13.3.0.tar.gz
cd gcc-13.3.0
mkdir build
cd build

Next, install the dependencies required for building GCC/G++:

sudo dnf group install development-tools
sudo dnf install mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel libgphobos-static

Now, configure the build (Flags should be changed as needed.):

../configure --disable-bootstrap --prefix=/usr --program-suffix=-13.3 --mandir=/usr/share/man --enable-languages=c,c++

After configuration, compile GCC with the following command:

make

To utilize multiple cores for a faster build, use the -j flag:

make -j6

Once the compilation is complete, install the new GCC version:

sudo make install

You can verify the installation of the compiled GCC using:

gcc-13.3 -v

Step 3: Modify Installation Command for Misskey/Sharkey

Finally, to successfully install Sharkey and Misskey, modify the installation command as follows:

CXX=/usr/sbin/g++-13.3 CC=/usr/sbin/gcc-13.3 pnpm install --frozen-lockfile

With these adjustments, you should be able to install Misskey and Sharkey without any issues. Enjoy Fediverse!

*I have used LLM to some extent to modify the text to make it more natural. I checked to some extent before post, but please let us know if there are any unnatural parts.

References

甘瀬ここあ's avatar
甘瀬ここあ

@cocoa@hackers.pub


When installing the patched versions of Misskey (Pull Request available) and Sharkey (with changes already applied) on a Fedora 42 environment, you may encounter the following errors:

error: ‘uint8_t’ was not declared in this scope
error: ‘state’ was not declared in this scope

These issues seem to stem from the version of GCC being used (Reference). Below, I will outline how to resolve these problems on Fedora 42.

Step 1: Install Dependencies

First, as indicated in the wiki, install the necessary dependencies:

sudo dnf install cairo-devel libjpeg-turbo-devel pango-devel giflib-devel pixman-devel

Step 2: Compile GCC/G++

Using the default GCC bundled with Fedora may lead to failed installations when running pnpm install (as of May 27, 2025). To avoid this issue, we need to compile and use a other version of GCC/G++.

Start by downloading the GCC source code using wget, then extract it and navigate to the source directory:

wget https://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-13.3.0/gcc-13.3.0.tar.gz
tar xzf gcc-13.3.0.tar.gz
cd gcc-13.3.0
mkdir build
cd build

Next, install the dependencies required for building GCC/G++:

sudo dnf group install development-tools
sudo dnf install mpfr-devel gmp-devel libmpc-devel zlib-devel glibc-devel.i686 glibc-devel isl-devel libgphobos-static

Now, configure the build (Flags should be changed as needed.):

../configure --disable-bootstrap --prefix=/usr --program-suffix=-13.3 --mandir=/usr/share/man --enable-languages=c,c++

After configuration, compile GCC with the following command:

make

To utilize multiple cores for a faster build, use the -j flag:

make -j6

Once the compilation is complete, install the new GCC version:

sudo make install

You can verify the installation of the compiled GCC using:

gcc-13.3 -v

Step 3: Modify Installation Command for Misskey/Sharkey

Finally, to successfully install Sharkey and Misskey, modify the installation command as follows:

CXX=/usr/sbin/g++-13.3 CC=/usr/sbin/gcc-13.3 pnpm install --frozen-lockfile

With these adjustments, you should be able to install Misskey and Sharkey without any issues. Enjoy Fediverse!

*I have used LLM to some extent to modify the text to make it more natural. I checked to some extent before post, but please let us know if there are any unnatural parts.

References

Paul Chambers's avatar
Paul Chambers

@paul@oldfriends.live

Congratulations on your Open Source Social Network ( )
plugin, @redegelde

It's been a pleasure watching it come together.

It's great when more platforms enter the , esp a project like OSSN.

Esp awesome since OSSN is installable in so many PHP hosting control panels, like CPANEL's Softaculous. It's like it is opening the Fediverse to a entirely new class of self-hosters.

cc @evan

github.com/compie67/ossn-Fediv

Stefan's avatar
Stefan

@stefan@gardenstate.social

Hey , do you love ? I've launched a new app to track your tv in a single user app with support!

After you watch give my github repo a ⭐ ! github.com/stefanhayden/tvmark

a demo of the tvtime web app.
ALT text detailsa demo of the tvtime web app.
Paul Chambers's avatar
Paul Chambers

@paul@oldfriends.live

Congratulations on your Open Source Social Network ( )
plugin, @redegelde

It's been a pleasure watching it come together.

It's great when more platforms enter the , esp a project like OSSN.

Esp awesome since OSSN is installable in so many PHP hosting control panels, like CPANEL's Softaculous. It's like it is opening the Fediverse to a entirely new class of self-hosters.

cc @evan

github.com/compie67/ossn-Fediv

Stefan's avatar
Stefan

@stefan@gardenstate.social

Hey , do you love ? I've launched a new app to track your tv in a single user app with support!

After you watch give my github repo a ⭐ ! github.com/stefanhayden/tvmark

a demo of the tvtime web app.
ALT text detailsa demo of the tvtime web app.
Tom :damnified:'s avatar
Tom :damnified:

@thomas@metalhead.club

Wow, Flipboard.com really stick to their Fediverse promise.

The image displays a list titled "TOP ACTIVE SERVERS" against a dark background. The list is organized in a vertical format with each server name followed by its corresponding number of active users. The servers are listed in descending order of user count. The first server, "mastodon.social," has 708,592 active users, followed by "newsmast.community" with 240,301 users, "troet.cafe" with 161,996 users, "mstdn.social" with 156,552 users, "flipboard.com" with 155,969 users, "chaos.social" with 124,363 users, "pubeurope.com" with 108,015 users, and "norden.social" with 91,883 users. Each server name is preceded by a dark blue dot, and the numbers are in a lighter blue color. The text is white, providing a clear contrast against the dark background.
ALT text detailsThe image displays a list titled "TOP ACTIVE SERVERS" against a dark background. The list is organized in a vertical format with each server name followed by its corresponding number of active users. The servers are listed in descending order of user count. The first server, "mastodon.social," has 708,592 active users, followed by "newsmast.community" with 240,301 users, "troet.cafe" with 161,996 users, "mstdn.social" with 156,552 users, "flipboard.com" with 155,969 users, "chaos.social" with 124,363 users, "pubeurope.com" with 108,015 users, and "norden.social" with 91,883 users. Each server name is preceded by a dark blue dot, and the numbers are in a lighter blue color. The text is white, providing a clear contrast against the dark background.
Stefan's avatar
Stefan

@stefan@gardenstate.social

Hey , do you love ? I've launched a new app to track your tv in a single user app with support!

After you watch give my github repo a ⭐ ! github.com/stefanhayden/tvmark

a demo of the tvtime web app.
ALT text detailsa demo of the tvtime web app.
Stefan's avatar
Stefan

@stefan@gardenstate.social

Hey , do you love ? I've launched a new app to track your tv in a single user app with support!

After you watch give my github repo a ⭐ ! github.com/stefanhayden/tvmark

a demo of the tvtime web app.
ALT text detailsa demo of the tvtime web app.
Tom :damnified:'s avatar
Tom :damnified:

@thomas@metalhead.club

Wow, Flipboard.com really stick to their Fediverse promise.

The image displays a list titled "TOP ACTIVE SERVERS" against a dark background. The list is organized in a vertical format with each server name followed by its corresponding number of active users. The servers are listed in descending order of user count. The first server, "mastodon.social," has 708,592 active users, followed by "newsmast.community" with 240,301 users, "troet.cafe" with 161,996 users, "mstdn.social" with 156,552 users, "flipboard.com" with 155,969 users, "chaos.social" with 124,363 users, "pubeurope.com" with 108,015 users, and "norden.social" with 91,883 users. Each server name is preceded by a dark blue dot, and the numbers are in a lighter blue color. The text is white, providing a clear contrast against the dark background.
ALT text detailsThe image displays a list titled "TOP ACTIVE SERVERS" against a dark background. The list is organized in a vertical format with each server name followed by its corresponding number of active users. The servers are listed in descending order of user count. The first server, "mastodon.social," has 708,592 active users, followed by "newsmast.community" with 240,301 users, "troet.cafe" with 161,996 users, "mstdn.social" with 156,552 users, "flipboard.com" with 155,969 users, "chaos.social" with 124,363 users, "pubeurope.com" with 108,015 users, and "norden.social" with 91,883 users. Each server name is preceded by a dark blue dot, and the numbers are in a lighter blue color. The text is white, providing a clear contrast against the dark background.
⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
You can now send replies to Toots as well as expand threads directly within the demo app, no need to click through to the regular Mastodon web interface.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo showing threaded feature in background and reply box in foreground
ALT text detailsscreenshot of fedialgo showing threaded feature in background and reply box in foreground
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

While 's API provides comprehensive support for and major vendor extensions, its code-generation approach makes runtime extensions challenging. However, the project welcomes contributions to expand the supported types and properties.

Fedify accepts vocabulary contributions when they meet any of these criteria:

  • Documented in FEP (Fediverse Enhancement Proposals) or equivalent specification
  • Already adopted by widely-used implementations like Mastodon or Pleroma
  • Thoroughly discussed within the Fedify community (Discord, Matrix, GitHub Discussions)

Contributing new vocabulary is straightforward. The vocabulary definitions live in YAML files within the fedify/vocab/ directory. To add a new type, create a new .yaml file. To add properties to existing types, extend the properties section in the relevant .yaml file.

This approach ensures Fedify's vocabulary coverage grows with the fediverse ecosystem while maintaining type safety and comprehensive documentation. If you're working with custom ActivityPub extensions, consider contributing them upstream to benefit the entire community.

For detailed guidance on the contribution process, see the Extending the vocabulary section in Fedify's docs.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

While 's API provides comprehensive support for and major vendor extensions, its code-generation approach makes runtime extensions challenging. However, the project welcomes contributions to expand the supported types and properties.

Fedify accepts vocabulary contributions when they meet any of these criteria:

  • Documented in FEP (Fediverse Enhancement Proposals) or equivalent specification
  • Already adopted by widely-used implementations like Mastodon or Pleroma
  • Thoroughly discussed within the Fedify community (Discord, Matrix, GitHub Discussions)

Contributing new vocabulary is straightforward. The vocabulary definitions live in YAML files within the fedify/vocab/ directory. To add a new type, create a new .yaml file. To add properties to existing types, extend the properties section in the relevant .yaml file.

This approach ensures Fedify's vocabulary coverage grows with the fediverse ecosystem while maintaining type safety and comprehensive documentation. If you're working with custom ActivityPub extensions, consider contributing them upstream to benefit the entire community.

For detailed guidance on the contribution process, see the Extending the vocabulary section in Fedify's docs.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

While 's API provides comprehensive support for and major vendor extensions, its code-generation approach makes runtime extensions challenging. However, the project welcomes contributions to expand the supported types and properties.

Fedify accepts vocabulary contributions when they meet any of these criteria:

  • Documented in FEP (Fediverse Enhancement Proposals) or equivalent specification
  • Already adopted by widely-used implementations like Mastodon or Pleroma
  • Thoroughly discussed within the Fedify community (Discord, Matrix, GitHub Discussions)

Contributing new vocabulary is straightforward. The vocabulary definitions live in YAML files within the fedify/vocab/ directory. To add a new type, create a new .yaml file. To add properties to existing types, extend the properties section in the relevant .yaml file.

This approach ensures Fedify's vocabulary coverage grows with the fediverse ecosystem while maintaining type safety and comprehensive documentation. If you're working with custom ActivityPub extensions, consider contributing them upstream to benefit the entire community.

For detailed guidance on the contribution process, see the Extending the vocabulary section in Fedify's docs.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

While 's API provides comprehensive support for and major vendor extensions, its code-generation approach makes runtime extensions challenging. However, the project welcomes contributions to expand the supported types and properties.

Fedify accepts vocabulary contributions when they meet any of these criteria:

  • Documented in FEP (Fediverse Enhancement Proposals) or equivalent specification
  • Already adopted by widely-used implementations like Mastodon or Pleroma
  • Thoroughly discussed within the Fedify community (Discord, Matrix, GitHub Discussions)

Contributing new vocabulary is straightforward. The vocabulary definitions live in YAML files within the fedify/vocab/ directory. To add a new type, create a new .yaml file. To add properties to existing types, extend the properties section in the relevant .yaml file.

This approach ensures Fedify's vocabulary coverage grows with the fediverse ecosystem while maintaining type safety and comprehensive documentation. If you're working with custom ActivityPub extensions, consider contributing them upstream to benefit the entire community.

For detailed guidance on the contribution process, see the Extending the vocabulary section in Fedify's docs.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

While 's API provides comprehensive support for and major vendor extensions, its code-generation approach makes runtime extensions challenging. However, the project welcomes contributions to expand the supported types and properties.

Fedify accepts vocabulary contributions when they meet any of these criteria:

  • Documented in FEP (Fediverse Enhancement Proposals) or equivalent specification
  • Already adopted by widely-used implementations like Mastodon or Pleroma
  • Thoroughly discussed within the Fedify community (Discord, Matrix, GitHub Discussions)

Contributing new vocabulary is straightforward. The vocabulary definitions live in YAML files within the fedify/vocab/ directory. To add a new type, create a new .yaml file. To add properties to existing types, extend the properties section in the relevant .yaml file.

This approach ensures Fedify's vocabulary coverage grows with the fediverse ecosystem while maintaining type safety and comprehensive documentation. If you're working with custom ActivityPub extensions, consider contributing them upstream to benefit the entire community.

For detailed guidance on the contribution process, see the Extending the vocabulary section in Fedify's docs.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, not just Decentralized Social (DeSo), but instead —

Decentralized Social (DeSo), Federated Social (FeSo), Localized Social (LoSo)

The goal is 'social' that is simultaneously — 'Decentralized', 'Federated', and 'Localized', all at the same time.

RE: mastodon.social/@reiver/114551

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
You can now send replies to Toots as well as expand threads directly within the demo app, no need to click through to the regular Mastodon web interface.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

screenshot of fedialgo showing threaded feature in background and reply box in foreground
ALT text detailsscreenshot of fedialgo showing threaded feature in background and reply box in foreground
Xamanismo Coletivo's avatar
Xamanismo Coletivo

@eliasulrich@hachyderm.io

" is a – like email, jpeg, MP3 and ‘http’ (behind every website) – that’s built for a world with millions of ‘pubs’ with 1000s or 100 or even just one or two people in them. But it’s not just a mini-social network builder – there’s the key extra ability to connect with anyone in any pub, and chat/subscribe/like/repost not-to-mention change venue, at any point. This is a completely new approach to the challenge of moderating social media: break it into smaller human-run ‘pubs’, and then let those pubs federate with those with similar values and skills. So the technology itself isn’t where happens – but between ".
@nic

25.netribution.co.uk/nic/edito

Xamanismo Coletivo's avatar
Xamanismo Coletivo

@eliasulrich@hachyderm.io

" is a – like email, jpeg, MP3 and ‘http’ (behind every website) – that’s built for a world with millions of ‘pubs’ with 1000s or 100 or even just one or two people in them. But it’s not just a mini-social network builder – there’s the key extra ability to connect with anyone in any pub, and chat/subscribe/like/repost not-to-mention change venue, at any point. This is a completely new approach to the challenge of moderating social media: break it into smaller human-run ‘pubs’, and then let those pubs federate with those with similar values and skills. So the technology itself isn’t where happens – but between ".
@nic

25.netribution.co.uk/nic/edito

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»If I started fresh: What are the that will provide a true ? And how can we ensure it succeeds?« werd.io/2025/if-i-started-fres

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-23

Servers

- Manyfold v0.111.0
- Smithereen v0.10.0
- Mitra v4.3.0
- Ibis v0.3.0
- ActivityPub for WordPress v5.9.2
- tootik v0.16.1
- NeoDB v0.11.7.2
- Gush! v0.0.19
- Moderation preferences (Ghost)
- Updating some legal features (Mastodon)
- Omnom: A webpage bookmarking and snapshotting service

Clients

- Aria v1.1.1
- Voyager v2.35.0
- Blorp v1.7.3

For developers

- Federails v0.7.0
- Fedialgo v0.48.0

Articles

- Take It Down Act 2025 (USA)
- Federation Compatibility : Mastodon and Lemmy
- Hubzilla Timeline and History
- Fediverse Report – #117

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196da9a-e025-140d-921e-0fe8c41656c8

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social

Esteemed 💖

all the nice videos from popped up in the peertube channel.

Our Talk on the Why and How of is video.publicspaces.net/w/9USsJ

An hour is incredible short, we should maybe demo the protocol on a large table rather in an expo space next year (?)

You can view all videos at the channell page
:digitalcourage: video.publicspaces.net/c/pubco

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»If I started fresh: What are the that will provide a true ? And how can we ensure it succeeds?« werd.io/2025/if-i-started-fres

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social

Esteemed 💖

all the nice videos from popped up in the peertube channel.

Our Talk on the Why and How of is video.publicspaces.net/w/9USsJ

An hour is incredible short, we should maybe demo the protocol on a large table rather in an expo space next year (?)

You can view all videos at the channell page
:digitalcourage: video.publicspaces.net/c/pubco

potatomeow's avatar
potatomeow

@potatomeow@fosstodon.org

just a shower thought... while making a compatible server, should i allow anyone for download access to attachment type of files? like images, vids, etc.

for context, my server is only gonna serve physical products (like tshirts, shoes, or whatever), for now.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-23

Servers

- Manyfold v0.111.0
- Smithereen v0.10.0
- Mitra v4.3.0
- Ibis v0.3.0
- ActivityPub for WordPress v5.9.2
- tootik v0.16.1
- NeoDB v0.11.7.2
- Gush! v0.0.19
- Moderation preferences (Ghost)
- Updating some legal features (Mastodon)
- Omnom: A webpage bookmarking and snapshotting service

Clients

- Aria v1.1.1
- Voyager v2.35.0
- Blorp v1.7.3

For developers

- Federails v0.7.0
- Fedialgo v0.48.0

Articles

- Take It Down Act 2025 (USA)
- Federation Compatibility : Mastodon and Lemmy
- Hubzilla Timeline and History
- Fediverse Report – #117

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196da9a-e025-140d-921e-0fe8c41656c8

potatomeow's avatar
potatomeow

@potatomeow@fosstodon.org

just a shower thought... while making a compatible server, should i allow anyone for download access to attachment type of files? like images, vids, etc.

for context, my server is only gonna serve physical products (like tshirts, shoes, or whatever), for now.

potatomeow's avatar
potatomeow

@potatomeow@fosstodon.org

just a shower thought... while making a compatible server, should i allow anyone for download access to attachment type of files? like images, vids, etc.

for context, my server is only gonna serve physical products (like tshirts, shoes, or whatever), for now.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-23

Servers

- Manyfold v0.111.0
- Smithereen v0.10.0
- Mitra v4.3.0
- Ibis v0.3.0
- ActivityPub for WordPress v5.9.2
- tootik v0.16.1
- NeoDB v0.11.7.2
- Gush! v0.0.19
- Moderation preferences (Ghost)
- Updating some legal features (Mastodon)
- Omnom: A webpage bookmarking and snapshotting service

Clients

- Aria v1.1.1
- Voyager v2.35.0
- Blorp v1.7.3

For developers

- Federails v0.7.0
- Fedialgo v0.48.0

Articles

- Take It Down Act 2025 (USA)
- Federation Compatibility : Mastodon and Lemmy
- Hubzilla Timeline and History
- Fediverse Report – #117

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196da9a-e025-140d-921e-0fe8c41656c8

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-23

Servers

- Manyfold v0.111.0
- Smithereen v0.10.0
- Mitra v4.3.0
- Ibis v0.3.0
- ActivityPub for WordPress v5.9.2
- tootik v0.16.1
- NeoDB v0.11.7.2
- Gush! v0.0.19
- Moderation preferences (Ghost)
- Updating some legal features (Mastodon)
- Omnom: A webpage bookmarking and snapshotting service

Clients

- Aria v1.1.1
- Voyager v2.35.0
- Blorp v1.7.3

For developers

- Federails v0.7.0
- Fedialgo v0.48.0

Articles

- Take It Down Act 2025 (USA)
- Federation Compatibility : Mastodon and Lemmy
- Hubzilla Timeline and History
- Fediverse Report – #117

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196da9a-e025-140d-921e-0fe8c41656c8

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-23

Servers

- Manyfold v0.111.0
- Smithereen v0.10.0
- Mitra v4.3.0
- Ibis v0.3.0
- ActivityPub for WordPress v5.9.2
- tootik v0.16.1
- NeoDB v0.11.7.2
- Gush! v0.0.19
- Moderation preferences (Ghost)
- Updating some legal features (Mastodon)
- Omnom: A webpage bookmarking and snapshotting service

Clients

- Aria v1.1.1
- Voyager v2.35.0
- Blorp v1.7.3

For developers

- Federails v0.7.0
- Fedialgo v0.48.0

Articles

- Take It Down Act 2025 (USA)
- Federation Compatibility : Mastodon and Lemmy
- Hubzilla Timeline and History
- Fediverse Report – #117

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196da9a-e025-140d-921e-0fe8c41656c8

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-23

Servers

- Manyfold v0.111.0
- Smithereen v0.10.0
- Mitra v4.3.0
- Ibis v0.3.0
- ActivityPub for WordPress v5.9.2
- tootik v0.16.1
- NeoDB v0.11.7.2
- Gush! v0.0.19
- Moderation preferences (Ghost)
- Updating some legal features (Mastodon)
- Omnom: A webpage bookmarking and snapshotting service

Clients

- Aria v1.1.1
- Voyager v2.35.0
- Blorp v1.7.3

For developers

- Federails v0.7.0
- Fedialgo v0.48.0

Articles

- Take It Down Act 2025 (USA)
- Federation Compatibility : Mastodon and Lemmy
- Hubzilla Timeline and History
- Fediverse Report – #117

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196da9a-e025-140d-921e-0fe8c41656c8

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

GreatApe, a federated live video / audio platform, is hosting an event right now! Give it a go, help test it out.

mastodon.social/@reiver/114558

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

GreatApe, a federated live video / audio platform, is hosting an event right now! Give it a go, help test it out.

mastodon.social/@reiver/114558

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

GreatApe, a federated live video / audio platform, is hosting an event right now! Give it a go, help test it out.

mastodon.social/@reiver/114558

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

! I will be hosting an unconference of @badgefed - an microcredentials system decentralizing using and - in the @fediforum

I will be giving an attendee badge to everyone to stop and say hi, so, if you have not registered for this virtual conference on June 5-7 go to fediforum.org/ and do it if you can!

See you there!

The image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
ALT text detailsThe image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

! I will be hosting an unconference of @badgefed - an microcredentials system decentralizing using and - in the @fediforum

I will be giving an attendee badge to everyone to stop and say hi, so, if you have not registered for this virtual conference on June 5-7 go to fediforum.org/ and do it if you can!

See you there!

The image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
ALT text detailsThe image showcases the BadgeFed website, a platform for creating, issuing, and verifying digital badges. It begins with a purple banner featuring the text "Empower Your Community with Digital Badges" and a call-to-action button labeled "Get Started." Below, three sections highlight the platform's features: "Secure & Verifiable," "Decentralized," and "Community Focused," each accompanied by relevant icons and descriptions.
Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

If you’re looking for a Pocket replacement, the good news is that there are tons of open source options available - if you’re willing to self host. And if you’re going that route, why not try a federated bookmarking platform? I know of two.

Might be a little biased as I’ve contributed once or twice, but Postmarks works great. Yes, it was built with Glitch in mind but I run it as a Docker container myself.

github.com/ckolderup/postmarks

Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

Just an update: I’ve added a speculative section for how data from Pocket could be converted into #ActivityPub data for a potential implementation: https://cloud.deadsuperhero.com/s/Tyc6woCaPBgGfSd#h-activitypub-representation

There are probably some flaws in here, reading the specs for ActivityStreams and Mastodon reminds me of a number of quirks regarding how different platforms implement things.

mbajur's avatar
mbajur

@mbajur@mastodon.social

Is there a need for / alternative to for ? Would you use it?

marius's avatar
marius

@mariusor@metalhead.club

the single user ActivityPub server, is getting some improvements on directly running it out of the box without requiring any set-up steps.

It is now available on the first run and every modification can be done afterwards using client to server calls. Yay!

Reminder that there is a demo instance up, and running my sporadic blog: @marius

Gregory's avatar
Gregory

@grishka@mastodon.social

0.10 is out!

This release adds instant notifications, online statuses, friend lists, email notifications, account migration, and more. It's also the first version of Smithereen that isn't frustrating to install.

Full release notes here: github.com/grishka/Smithereen/

Michael's avatar
Michael

@michael@thms.uk

I have posted about this before, but wanted to re-iterate how much in love I am with FediAlgo:

I’m currently on paternity leave so have around half an hour per day for social. That is of course far from enough to keep up with a chronological timeline like mine, and previously with Mastodon the FOMO was real.

Now I go to FediAlgo and I feel I got an overview over what’s interesting in that day. It’s also immensely customisable, but the defaults do a decent job for me.

If you haven’t tried it yet, I highly recommend you try it out. You can try it out on my personal playground at fedialgo.thms.uk or on the maintainer’s official website at michelcrypt4d4mus.github.io/fe

Thanks @cryptadamist for the work you put into this!

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

If you’re looking for a Pocket replacement, the good news is that there are tons of open source options available - if you’re willing to self host. And if you’re going that route, why not try a federated bookmarking platform? I know of two.

Might be a little biased as I’ve contributed once or twice, but Postmarks works great. Yes, it was built with Glitch in mind but I run it as a Docker container myself.

github.com/ckolderup/postmarks

Gregory's avatar
Gregory

@grishka@mastodon.social

0.10 is out!

This release adds instant notifications, online statuses, friend lists, email notifications, account migration, and more. It's also the first version of Smithereen that isn't frustrating to install.

Full release notes here: github.com/grishka/Smithereen/

Gregory's avatar
Gregory

@grishka@mastodon.social

0.10 is out!

This release adds instant notifications, online statuses, friend lists, email notifications, account migration, and more. It's also the first version of Smithereen that isn't frustrating to install.

Full release notes here: github.com/grishka/Smithereen/

Gregory's avatar
Gregory

@grishka@mastodon.social

0.10 is out!

This release adds instant notifications, online statuses, friend lists, email notifications, account migration, and more. It's also the first version of Smithereen that isn't frustrating to install.

Full release notes here: github.com/grishka/Smithereen/

Gregory's avatar
Gregory

@grishka@mastodon.social

0.10 is out!

This release adds instant notifications, online statuses, friend lists, email notifications, account migration, and more. It's also the first version of Smithereen that isn't frustrating to install.

Full release notes here: github.com/grishka/Smithereen/

Michael's avatar
Michael

@michael@thms.uk

I have posted about this before, but wanted to re-iterate how much in love I am with FediAlgo:

I’m currently on paternity leave so have around half an hour per day for social. That is of course far from enough to keep up with a chronological timeline like mine, and previously with Mastodon the FOMO was real.

Now I go to FediAlgo and I feel I got an overview over what’s interesting in that day. It’s also immensely customisable, but the defaults do a decent job for me.

If you haven’t tried it yet, I highly recommend you try it out. You can try it out on my personal playground at fedialgo.thms.uk or on the maintainer’s official website at michelcrypt4d4mus.github.io/fe

Thanks @cryptadamist for the work you put into this!

marius's avatar
marius

@mariusor@metalhead.club

the single user ActivityPub server, is getting some improvements on directly running it out of the box without requiring any set-up steps.

It is now available on the first run and every modification can be done afterwards using client to server calls. Yay!

Reminder that there is a demo instance up, and running my sporadic blog: @marius

Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

Just an update: I’ve added a speculative section for how data from Pocket could be converted into #ActivityPub data for a potential implementation: https://cloud.deadsuperhero.com/s/Tyc6woCaPBgGfSd#h-activitypub-representation

There are probably some flaws in here, reading the specs for ActivityStreams and Mastodon reminds me of a number of quirks regarding how different platforms implement things.

mbajur's avatar
mbajur

@mbajur@mastodon.social

Is there a need for / alternative to for ? Would you use it?

Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

Just an update: I’ve added a speculative section for how data from Pocket could be converted into #ActivityPub data for a potential implementation: https://cloud.deadsuperhero.com/s/Tyc6woCaPBgGfSd#h-activitypub-representation

There are probably some flaws in here, reading the specs for ActivityStreams and Mastodon reminds me of a number of quirks regarding how different platforms implement things.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

5/

So, not just Decentralized Social (DeSo), but instead —

Decentralized Social (DeSo), Federated Social (FeSo), Localized Social (LoSo)

The goal is 'social' that is simultaneously — 'Decentralized', 'Federated', and 'Localized', all at the same time.

RE: mastodon.social/@reiver/114551

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social · Reply to @reiver ⊼ (Charles) :batman:'s post

4/

Federation is the word we use to describe that act of bringing together and connecting these separate Decentralized, Localized communities.

This is where protocols such as ActivityPub, ActivityStreams, etc come into play.

Federation is a voluntary choice.
But, so too is Defederation, if desired.

mbajur's avatar
mbajur

@mbajur@mastodon.social

Is there a need for / alternative to for ? Would you use it?

mbajur's avatar
mbajur

@mbajur@mastodon.social

Is there a need for / alternative to for ? Would you use it?

marius's avatar
marius

@mariusor@metalhead.club

the single user ActivityPub server, is getting some improvements on directly running it out of the box without requiring any set-up steps.

It is now available on the first run and every modification can be done afterwards using client to server calls. Yay!

Reminder that there is a demo instance up, and running my sporadic blog: @marius

marius's avatar
marius

@mariusor@metalhead.club

the single user ActivityPub server, is getting some improvements on directly running it out of the box without requiring any set-up steps.

It is now available on the first run and every modification can be done afterwards using client to server calls. Yay!

Reminder that there is a demo instance up, and running my sporadic blog: @marius

Emanuele's avatar
Emanuele

@emanuele@m.divita.eu

«Easier Onboarding for Your Fediverse Experience»

Getting started with on just got a lot easier. A new guided onboarding experience is now part of the plugin, designed to help you configure key settings and understand how your site connects to the —from the moment you activate it.

activitypub.blog/2025/05/14/5-

Emanuele's avatar
Emanuele

@emanuele@m.divita.eu

«Easier Onboarding for Your Fediverse Experience»

Getting started with on just got a lot easier. A new guided onboarding experience is now part of the plugin, designed to help you configure key settings and understand how your site connects to the —from the moment you activate it.

activitypub.blog/2025/05/14/5-

Johannes Ernst's avatar
Johannes Ernst

@j12t@j12t.social

Does anybody know how the term "ActivityPub" was coined? Why that particular name?

(It's not an obvious one for a decentralized social media protocol.)

Emanuele's avatar
Emanuele

@emanuele@m.divita.eu

«Easier Onboarding for Your Fediverse Experience»

Getting started with on just got a lot easier. A new guided onboarding experience is now part of the plugin, designed to help you configure key settings and understand how your site connects to the —from the moment you activate it.

activitypub.blog/2025/05/14/5-

Johannes Ernst's avatar
Johannes Ernst

@j12t@j12t.social

Does anybody know how the term "ActivityPub" was coined? Why that particular name?

(It's not an obvious one for a decentralized social media protocol.)

Johannes Ernst's avatar
Johannes Ernst

@j12t@j12t.social

Does anybody know how the term "ActivityPub" was coined? Why that particular name?

(It's not an obvious one for a decentralized social media protocol.)

Emanuele's avatar
Emanuele

@emanuele@m.divita.eu

«Easier Onboarding for Your Fediverse Experience»

Getting started with on just got a lot easier. A new guided onboarding experience is now part of the plugin, designed to help you configure key settings and understand how your site connects to the —from the moment you activate it.

activitypub.blog/2025/05/14/5-

Emanuele's avatar
Emanuele

@emanuele@m.divita.eu

«Easier Onboarding for Your Fediverse Experience»

Getting started with on just got a lot easier. A new guided onboarding experience is now part of the plugin, designed to help you configure key settings and understand how your site connects to the —from the moment you activate it.

activitypub.blog/2025/05/14/5-

Emanuele's avatar
Emanuele

@emanuele@m.divita.eu

«Easier Onboarding for Your Fediverse Experience»

Getting started with on just got a lot easier. A new guided onboarding experience is now part of the plugin, designed to help you configure key settings and understand how your site connects to the —from the moment you activate it.

activitypub.blog/2025/05/14/5-

Nicol Wistreich's avatar
Nicol Wistreich

@nicol@social.coop

Can't deny being made up that three months after 1st trying to build a site using @pfefferle's plugin - yesterday it finally clicked, with two posts getting lots of boosts, stars & comments:

social.coop/@nic@25.netributio

&

social.coop/@nic@25.netributio

Am still far from perfecting the integration, but this bar at the bottom is lovely… as is discovering a bunch of servers using different forks/UIs to regular Masto that I've not seen before. Curiously still only one subscriber tho.

A screengrab from the bottom of a WordPress post with the fediverse reaction.
ALT text detailsA screengrab from the bottom of a WordPress post with the fediverse reaction.
Nicol Wistreich's avatar
Nicol Wistreich

@nicol@social.coop

Can't deny being made up that three months after 1st trying to build a site using @pfefferle's plugin - yesterday it finally clicked, with two posts getting lots of boosts, stars & comments:

social.coop/@nic@25.netributio

&

social.coop/@nic@25.netributio

Am still far from perfecting the integration, but this bar at the bottom is lovely… as is discovering a bunch of servers using different forks/UIs to regular Masto that I've not seen before. Curiously still only one subscriber tho.

A screengrab from the bottom of a WordPress post with the fediverse reaction.
ALT text detailsA screengrab from the bottom of a WordPress post with the fediverse reaction.
Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

Just a friendly reminder: my personal blog is powered by Ghost, and has #ActivityPub integration enabled!

It’s meant to be a more personal alt that focuses on projects and opinions, but there’s probably still going to be some overlap between this account and that one. But, if you like what I have to say, feel free to give it a follow!

Handle can be found here: (at)sean@deadsuperhero.com

Sean Tilley's avatar
Sean Tilley

@deadsuperhero@social.wedistribute.org

Just a friendly reminder: my personal blog is powered by Ghost, and has #ActivityPub integration enabled!

It’s meant to be a more personal alt that focuses on projects and opinions, but there’s probably still going to be some overlap between this account and that one. But, if you like what I have to say, feel free to give it a follow!

Handle can be found here: (at)sean@deadsuperhero.com

maxdonati 📸's avatar
maxdonati 📸

@maxdonati@mastodon.social

Bluesky still leaves me unconvinced. An open protocol isn’t enough if it’s controlled by a single entity. The future of social media lies in true federation, like the ActivityPub model: interoperability, decentralization, autonomy. Otherwise, how is it any different from the usual proprietary systems?
about.flipboard.com/fediverse/

Fread's avatar
Fread

@fread@mastodon.social

Exciting news! is now live on F-Droid! 🚀🎉 A big thanks to the F-Droid community for making this happen. Download it today and join the movement!

f-droid.org/packages/com.zhang

maxdonati 📸's avatar
maxdonati 📸

@maxdonati@mastodon.social

Bluesky still leaves me unconvinced. An open protocol isn’t enough if it’s controlled by a single entity. The future of social media lies in true federation, like the ActivityPub model: interoperability, decentralization, autonomy. Otherwise, how is it any different from the usual proprietary systems?
about.flipboard.com/fediverse/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

We've just submitted an to the Sovereign Tech Fund for the project! Hoping to further develop and enhance the framework for a more robust federated web.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social

Building out this new Surffeed: will focus on accounts from both and that have opted in to bridge to each other.

Bridged Bluesky & Mastodon Accounts
surf.social/feed/surf%2Fcustom

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about adding a debug dashboard to that shows all activities being sent and received in real-time. This would include filters by activity type, detailed inspection of JSON-LD content, signature verification details, and retry management for failed deliveries.

As a , would you find this useful for troubleshooting federation issues? Any other features that would be helpful in such a debugging tool?

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

What does it take to get a PieFed instance setup?

@firesidefedi
@rimu
@ozoned

RE: video.firesidefedi.live/w/t4M5

Fread's avatar
Fread

@fread@mastodon.social

Exciting news! is now live on F-Droid! 🚀🎉 A big thanks to the F-Droid community for making this happen. Download it today and join the movement!

f-droid.org/packages/com.zhang

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

Fread's avatar
Fread

@fread@mastodon.social

Exciting news! is now live on F-Droid! 🚀🎉 A big thanks to the F-Droid community for making this happen. Download it today and join the movement!

f-droid.org/packages/com.zhang

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

What does it take to get a PieFed instance setup?

@firesidefedi
@rimu
@ozoned

RE: video.firesidefedi.live/w/t4M5

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

We've just submitted an to the Sovereign Tech Fund for the project! Hoping to further develop and enhance the framework for a more robust federated web.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

“The origin story of Pixelfed does have its roots in GNU social — and we've been heavily inspired by Mastodon as well.”

@firesidefedi
@dansup
@ozoned

RE: video.firesidefedi.live/w/kk7x

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

We've just submitted an to the Sovereign Tech Fund for the project! Hoping to further develop and enhance the framework for a more robust federated web.

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

“The origin story of Pixelfed does have its roots in GNU social — and we've been heavily inspired by Mastodon as well.”

@firesidefedi
@dansup
@ozoned

RE: video.firesidefedi.live/w/kk7x

@reiver ⊼ (Charles) :batman:'s avatar
@reiver ⊼ (Charles) :batman:

@reiver@mastodon.social

“The origin story of Pixelfed does have its roots in GNU social — and we've been heavily inspired by Mastodon as well.”

@firesidefedi
@dansup
@ozoned

RE: video.firesidefedi.live/w/kk7x

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

We've just submitted an to the Sovereign Tech Fund for the project! Hoping to further develop and enhance the framework for a more robust federated web.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

We've just submitted an to the Sovereign Tech Fund for the project! Hoping to further develop and enhance the framework for a more robust federated web.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

We've just submitted an to the Sovereign Tech Fund for the project! Hoping to further develop and enhance the framework for a more robust federated web.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed adds PassKeys! As in, log in only with your passkey. Not just as a 2FA addition to your username/password.

piefed.social/post/762082

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Fedify는 새로운 후원 파트너를 찾고 있습니다!

:fedify: Fedify란?

Fedify는 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 ()에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.

💼 Fedify를 활용하는 프로젝트들

다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:

  • Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
  • Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
  • Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
  • Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스

🚀 Fedify가 제공하는 가치

  • 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
  • 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
  • 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
  • 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발

🤝 가능한 협력 모델

  • 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 통합을 위한 전문적 지원
  • 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
  • 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계

🌟 Fedify와 협력했을 때의 이점

  • 기술적 이점: 자체 구현 대비 시간과 리소스 절약
  • 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
  • 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
  • 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화

📩 관심이 있으신가요?

ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:

귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

Thank you to folks that answered my #GTS poll. Seems like a LOT of folks don't know what GTS is! GTS or #GoToSocial is a #GO written #activityPub #server for small groups of folks that's super lightweight, fast and easy to install. You can find them on #Fediverse at @gotosocial .

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Fedify는 새로운 후원 파트너를 찾고 있습니다!

:fedify: Fedify란?

Fedify는 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 ()에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.

💼 Fedify를 활용하는 프로젝트들

다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:

  • Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
  • Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
  • Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
  • Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스

🚀 Fedify가 제공하는 가치

  • 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
  • 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
  • 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
  • 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발

🤝 가능한 협력 모델

  • 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 통합을 위한 전문적 지원
  • 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
  • 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계

🌟 Fedify와 협력했을 때의 이점

  • 기술적 이점: 자체 구현 대비 시간과 리소스 절약
  • 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
  • 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
  • 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화

📩 관심이 있으신가요?

ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:

귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Fedify는 새로운 후원 파트너를 찾고 있습니다!

:fedify: Fedify란?

Fedify는 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 ()에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.

💼 Fedify를 활용하는 프로젝트들

다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:

  • Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
  • Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
  • Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
  • Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스

🚀 Fedify가 제공하는 가치

  • 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
  • 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
  • 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
  • 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발

🤝 가능한 협력 모델

  • 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 통합을 위한 전문적 지원
  • 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
  • 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계

🌟 Fedify와 협력했을 때의 이점

  • 기술적 이점: 자체 구현 대비 시간과 리소스 절약
  • 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
  • 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
  • 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화

📩 관심이 있으신가요?

ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:

귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Fedify는 새로운 후원 파트너를 찾고 있습니다!

:fedify: Fedify란?

Fedify는 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 ()에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.

💼 Fedify를 활용하는 프로젝트들

다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:

  • Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
  • Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
  • Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
  • Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스

🚀 Fedify가 제공하는 가치

  • 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
  • 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
  • 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
  • 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발

🤝 가능한 협력 모델

  • 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 통합을 위한 전문적 지원
  • 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
  • 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계

🌟 Fedify와 협력했을 때의 이점

  • 기술적 이점: 자체 구현 대비 시간과 리소스 절약
  • 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
  • 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
  • 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화

📩 관심이 있으신가요?

ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:

귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

Fedify는 새로운 후원 파트너를 찾고 있습니다!

:fedify: Fedify란?

Fedify는 기반 연합형 서버 프레임워크로, 개발자들이 분산형 소셜 네트워크인 ()에 애플리케이션을 쉽게 통합할 수 있도록 돕습니다. 복잡한 ActivityPub 프로토콜 구현을 단순화하여 개발 시간을 크게 단축시킵니다. MIT 라이선스 하에 제공되는 오픈 소스 프로젝트입니다.

💼 Fedify를 활용하는 프로젝트들

다양한 프로젝트들이 이미 Fedify를 활용하고 있습니다:

  • Ghost: 수백만 사용자를 보유한 전문적인 오픈 소스(MIT 라이선스) 퍼블리싱 플랫폼으로, Fedify의 주요 후원사이자 파트너입니다.
  • Hollo: 개인 사용자를 위한 경량 마이크로블로그 (오픈 소스, AGPL-3.0)
  • Hackers' Pub: 소프트웨어 엔지니어를 위한 연합우주 블로그 플랫폼 (오픈 소스, AGPL-3.0)
  • Encyclia: ORCID 학술 기록을 ActivityPub을 통해 제공하는 브리지 서비스

🚀 Fedify가 제공하는 가치

  • 개발 시간 80% 단축: ActivityPub의 복잡한 구현 대신 검증된 프레임워크 활용
  • 즉각적인 연합우주 호환성: Mastodon, Misskey, Pleroma, Pixelfed, PeerTube 등 다양한 연합우주 서비스와 즉시 호환
  • 전문 기술 지원: ActivityPub 및 연합 프로토콜 전문가의 직접 지원
  • 맞춤형 개발: 귀사의 특정 요구사항에 맞는 맞춤형 기능 개발

🤝 가능한 협력 모델

  • 맞춤형 컨설팅 및 통합 지원: 귀사 플랫폼에 통합을 위한 전문적 지원
  • 맞춤형 기능 개발 의뢰: 귀사에 필요한 특정 기능의 개발 및 구현
  • 장기적인 기술 파트너십: 지속적인 개발 및 유지보수를 위한 장기 협력 관계

🌟 Fedify와 협력했을 때의 이점

  • 기술적 이점: 자체 구현 대비 시간과 리소스 절약
  • 브랜드 이미지: 오픈 소스 생태계 지원을 통한 기업 이미지 강화
  • 분산형 소셜 네트워크 진입: 연합우주 생태계에 쉽게 참여
  • 경쟁 우위: 소셜 기능을 통한 제품 경쟁력 강화

📩 관심이 있으신가요?

ActivityPub 구현을 고려 중이시거나, Fedify 프로젝트와 협력하고 싶으시다면 연락 주세요:

귀사의 요구사항과 목표에 맞는 맞춤형 협력 방안을 함께 모색하겠습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Fedify is looking for new partnership opportunities!

:fedify: What is Fedify?

is an -based federated server framework that helps developers easily integrate their applications with the , a decentralized social network. It simplifies the complex implementation of the ActivityPub protocol, significantly reducing development time. Fedify is an open-source project available under the MIT license.

💼 Projects using Fedify

Various projects are already leveraging Fedify:

  • Ghost: A professional publishing platform with millions of users, open source under MIT license, and a major sponsor and partner of Fedify.
  • Hollo: A lightweight microblogging platform for individual users (open source, AGPL-3.0)
  • Hackers' Pub: A fediverse blogging platform for software engineers (open source, AGPL-3.0)
  • Encyclia: A bridge service that makes ORCID academic records available via ActivityPub

🚀 Value provided by Fedify

  • 80% development time reduction: Utilize a proven framework instead of complex ActivityPub implementation
  • Immediate fediverse compatibility: Instant compatibility with various fediverse services including Mastodon, Misskey, Pleroma, Pixelfed, PeerTube, etc.
  • Expert technical support: Direct support from ActivityPub and Federation protocol experts
  • Custom development: Tailored feature development to meet your specific requirements

🤝 Potential collaboration models

  • Custom consulting and integration support: Professional assistance for integrating Fedify into your platform
  • Custom feature development: Development and implementation of specific features needed for your platform
  • Long-term technical partnership: Long-term collaboration for continuous development and maintenance

🌟 Benefits of collaborating with Fedify

  • Technical advantage: Save time and resources compared to in-house implementation
  • Brand image: Enhance corporate image through support of the open-source ecosystem
  • Entry to decentralized social networks: Easily participate in the fediverse ecosystem
  • Competitive edge: Strengthen product competitiveness through social features

📩 Interested?

If you're considering implementing ActivityPub or wish to collaborate with the Fedify project, please get in touch:

We're excited to explore customized collaboration opportunities that align with your requirements and goals.

➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻's avatar
➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻

@AeonCypher@lgbtqia.space · Reply to ➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻's post

Okay, but we can also this now with the . Like, can handle search queries just fine.

So, just running on microcomputers, everyone can put on their own index whatever they want.

A person can _easily_ index 50,000 pages on a rapsberry pi.

A can broadcast any query to known peers. Each peer returns top-k results. The originating node can then aggregate and rank.

So @alice queries their FediSearch, it searches its own index and queries subscribed peers, those peers do the same thing. Nodes can choose who they trust, cache, etc.

The number of indexes pages will be something along the lines of `pages_per_nod * log(number_nodes)`. So a thousand nodes may only cover a million pages, but if the trust network is good, those are probably the most important million pages.

Also, I would venture that you'd have some nodes specializing in having a lot of pages: tens of millions, others just for stuff they like, others specifically for non-commercial interests. Selecting who you federate your search with really affects the ranking.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

Thank you to folks that answered my #GTS poll. Seems like a LOT of folks don't know what GTS is! GTS or #GoToSocial is a #GO written #activityPub #server for small groups of folks that's super lightweight, fast and easy to install. You can find them on #Fediverse at @gotosocial .

ozoned's avatar
ozoned

@ozoned@social.ozoned.net

Thank you to folks that answered my #GTS poll. Seems like a LOT of folks don't know what GTS is! GTS or #GoToSocial is a #GO written #activityPub #server for small groups of folks that's super lightweight, fast and easy to install. You can find them on #Fediverse at @gotosocial .

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

Yohan Yukiya Sese Cuneta 사요한's avatar
Yohan Yukiya Sese Cuneta 사요한

@youronlyone@vivaldi.net

Happy 17th Year Anniversary social network!

Always strong! 🎊🎉🎂🍻🎆🥳🤹🏽

( )

➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻's avatar
➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻

@AeonCypher@lgbtqia.space · Reply to ➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻's post

Okay, but we can also this now with the . Like, can handle search queries just fine.

So, just running on microcomputers, everyone can put on their own index whatever they want.

A person can _easily_ index 50,000 pages on a rapsberry pi.

A can broadcast any query to known peers. Each peer returns top-k results. The originating node can then aggregate and rank.

So @alice queries their FediSearch, it searches its own index and queries subscribed peers, those peers do the same thing. Nodes can choose who they trust, cache, etc.

The number of indexes pages will be something along the lines of `pages_per_nod * log(number_nodes)`. So a thousand nodes may only cover a million pages, but if the trust network is good, those are probably the most important million pages.

Also, I would venture that you'd have some nodes specializing in having a lot of pages: tens of millions, others just for stuff they like, others specifically for non-commercial interests. Selecting who you federate your search with really affects the ranking.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed adds PassKeys! As in, log in only with your passkey. Not just as a 2FA addition to your username/password.

piefed.social/post/762082

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those interested in supporting 's development, we do have an Open Collective page where community is welcome.

Even small contributions help sustain development and show there's interest in open source tools. Thanks to our existing sponsors who've already been helping move the project forward!

The goal remains the same: make building federated applications more accessible to developers so the can continue to grow and thrive.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Just received word that @fedify wasn't selected for @nlnet's Open Call this round. While disappointing, I understand the competition was fierce with many worthy projects seeking limited funding.

The journey continues though— development will move forward at its own pace. Thanks to everyone who's shown interest and support for this project so far. Building tools for the remains important work, and I'm committed to seeing it through.

If you know of other funding opportunities that might be a good fit for open source tools, I'm all ears.

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed adds PassKeys! As in, log in only with your passkey. Not just as a 2FA addition to your username/password.

piefed.social/post/762082

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed adds PassKeys! As in, log in only with your passkey. Not just as a 2FA addition to your username/password.

piefed.social/post/762082

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

PieFed adds PassKeys! As in, log in only with your passkey. Not just as a 2FA addition to your username/password.

piefed.social/post/762082

➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻's avatar
➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻

@AeonCypher@lgbtqia.space · Reply to ➴➴➴Æ🜔Ɲ.Ƈꭚ⍴𝔥єɼ👩🏻‍💻's post

Okay, but we can also this now with the . Like, can handle search queries just fine.

So, just running on microcomputers, everyone can put on their own index whatever they want.

A person can _easily_ index 50,000 pages on a rapsberry pi.

A can broadcast any query to known peers. Each peer returns top-k results. The originating node can then aggregate and rank.

So @alice queries their FediSearch, it searches its own index and queries subscribed peers, those peers do the same thing. Nodes can choose who they trust, cache, etc.

The number of indexes pages will be something along the lines of `pages_per_nod * log(number_nodes)`. So a thousand nodes may only cover a million pages, but if the trust network is good, those are probably the most important million pages.

Also, I would venture that you'd have some nodes specializing in having a lot of pages: tens of millions, others just for stuff they like, others specifically for non-commercial interests. Selecting who you federate your search with really affects the ranking.

Yohan Yukiya Sese Cuneta 사요한's avatar
Yohan Yukiya Sese Cuneta 사요한

@youronlyone@vivaldi.net

Happy 17th Year Anniversary social network!

Always strong! 🎊🎉🎂🍻🎆🥳🤹🏽

( )

Yohan Yukiya Sese Cuneta 사요한🦣's avatar
Yohan Yukiya Sese Cuneta 사요한🦣

@youronlyone@c.im

Happy 17th Year Anniversary social network!

Always strong! 🎊🎉🎂🍻🎆🥳🤹🏽

( )

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

Do you want to help testing @badgefed and provision your local test instance?

Easy

docker pull ghcr.io/tryvocalcat/badgefed:latest &&
docker run -v `pwd`/data:/app/data \
-p 8080:8080 \
-e SQLITE_DB_FILENAME=/app/data/badges.db \
-e AdminAuthentication__AdminUsers__0__Id=your-mastodon-username \
-e AdminAuthentication__AdminUsers__0__Type=Mastodon \
-e MastodonConfig__ClientId=your-mastodon-client-id \
-e MastodonConfig__ClientSecret=your-mastodon-client-secret \
-e MastodonConfig__Server=your-mastodon-server \
ghcr.io/tryvocalcat/badgefed

And then open a browser and go to http://localhost:8080 or http://localhost:8080/admin

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

Do you want to help testing @badgefed and provision your local test instance?

Easy

docker pull ghcr.io/tryvocalcat/badgefed:latest &&
docker run -v `pwd`/data:/app/data \
-p 8080:8080 \
-e SQLITE_DB_FILENAME=/app/data/badges.db \
-e AdminAuthentication__AdminUsers__0__Id=your-mastodon-username \
-e AdminAuthentication__AdminUsers__0__Type=Mastodon \
-e MastodonConfig__ClientId=your-mastodon-client-id \
-e MastodonConfig__ClientSecret=your-mastodon-client-secret \
-e MastodonConfig__Server=your-mastodon-server \
ghcr.io/tryvocalcat/badgefed

And then open a browser and go to http://localhost:8080 or http://localhost:8080/admin

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
, the customizable timeline algorithm / filtering system for your Mastodon feed, is now deployed on Github Pages and can be used from your web browser.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-16

Servers

- Owncast v0.2.3
- snac v2.77
- ActivityPub for WordPress v5.9.0
- NeoDB v0.11.6.9
- Vernissage Server v1.14.0
- NodeBB v4.4.0
- Lemmy Development Update April 2025
- How PieFed federates “flair” on posts and comments
- Blocking domains (Ghost)

Clients

- Moshidon v109
- aria v1.1.0
- Blorp v1.5.0
- Flohra: An open source client for Flohmarkt

Tools and Plugins

- PeerTube livechat plugin v12.0.4
- feed2fedi v3.2.1
- fedidb-nuxt: The next generation frontend for fedidb.org

For developers

- FediAlgo v0.40.0

Protocol

- FEP-82f6: Actor statuses
- FEP-0151: NodeInfo in Fediverse Software (2025 edition)
- FEP-521a: Representing actor's public keys (Final comments)

Articles

- ActivityPub Quiz
- Owncast Newsletter May 2025
- My Dream Fediverse Platform
- Fediverse Report – #116

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196b6aa-923e-5f15-d203-8331fb2924de

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social

Hi @steve
following you cause stevebate.net/nothin-implement which is a super nice piece which should recive a Headline-Award :)

When people do not follow the specs. then "Primers" are written.
Then nobody reads the Primer :)
The peoblem you described is w3.org/wiki/ActivityPub/Primer
Another Problem is that per spec. in anything can be an Actor.
„ ActivityPub actors are generally one of the ActivityStreams Actor Types, but they don't have to be.“

And there are a few more of this spec-vs-reality problems …

It is absolutely not fine.
I am currently writing my database implementation and will also show it to @hongminhee
ActivityPub Conformance is hard but hey, I will be conformant :)
Thanks for this piece.

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

Do you want to help testing @badgefed and provision your local test instance?

Easy

docker pull ghcr.io/tryvocalcat/badgefed:latest &&
docker run -v `pwd`/data:/app/data \
-p 8080:8080 \
-e SQLITE_DB_FILENAME=/app/data/badges.db \
-e AdminAuthentication__AdminUsers__0__Id=your-mastodon-username \
-e AdminAuthentication__AdminUsers__0__Type=Mastodon \
-e MastodonConfig__ClientId=your-mastodon-client-id \
-e MastodonConfig__ClientSecret=your-mastodon-client-secret \
-e MastodonConfig__Server=your-mastodon-server \
ghcr.io/tryvocalcat/badgefed

And then open a browser and go to http://localhost:8080 or http://localhost:8080/admin

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-16

Servers

- Owncast v0.2.3
- snac v2.77
- ActivityPub for WordPress v5.9.0
- NeoDB v0.11.6.9
- Vernissage Server v1.14.0
- NodeBB v4.4.0
- Lemmy Development Update April 2025
- How PieFed federates “flair” on posts and comments
- Blocking domains (Ghost)

Clients

- Moshidon v109
- aria v1.1.0
- Blorp v1.5.0
- Flohra: An open source client for Flohmarkt

Tools and Plugins

- PeerTube livechat plugin v12.0.4
- feed2fedi v3.2.1
- fedidb-nuxt: The next generation frontend for fedidb.org

For developers

- FediAlgo v0.40.0

Protocol

- FEP-82f6: Actor statuses
- FEP-0151: NodeInfo in Fediverse Software (2025 edition)
- FEP-521a: Representing actor's public keys (Final comments)

Articles

- ActivityPub Quiz
- Owncast Newsletter May 2025
- My Dream Fediverse Platform
- Fediverse Report – #116

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196b6aa-923e-5f15-d203-8331fb2924de

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-16

Servers

- Owncast v0.2.3
- snac v2.77
- ActivityPub for WordPress v5.9.0
- NeoDB v0.11.6.9
- Vernissage Server v1.14.0
- NodeBB v4.4.0
- Lemmy Development Update April 2025
- How PieFed federates “flair” on posts and comments
- Blocking domains (Ghost)

Clients

- Moshidon v109
- aria v1.1.0
- Blorp v1.5.0
- Flohra: An open source client for Flohmarkt

Tools and Plugins

- PeerTube livechat plugin v12.0.4
- feed2fedi v3.2.1
- fedidb-nuxt: The next generation frontend for fedidb.org

For developers

- FediAlgo v0.40.0

Protocol

- FEP-82f6: Actor statuses
- FEP-0151: NodeInfo in Fediverse Software (2025 edition)
- FEP-521a: Representing actor's public keys (Final comments)

Articles

- ActivityPub Quiz
- Owncast Newsletter May 2025
- My Dream Fediverse Platform
- Fediverse Report – #116

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196b6aa-923e-5f15-d203-8331fb2924de

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-16

Servers

- Owncast v0.2.3
- snac v2.77
- ActivityPub for WordPress v5.9.0
- NeoDB v0.11.6.9
- Vernissage Server v1.14.0
- NodeBB v4.4.0
- Lemmy Development Update April 2025
- How PieFed federates “flair” on posts and comments
- Blocking domains (Ghost)

Clients

- Moshidon v109
- aria v1.1.0
- Blorp v1.5.0
- Flohra: An open source client for Flohmarkt

Tools and Plugins

- PeerTube livechat plugin v12.0.4
- feed2fedi v3.2.1
- fedidb-nuxt: The next generation frontend for fedidb.org

For developers

- FediAlgo v0.40.0

Protocol

- FEP-82f6: Actor statuses
- FEP-0151: NodeInfo in Fediverse Software (2025 edition)
- FEP-521a: Representing actor's public keys (Final comments)

Articles

- ActivityPub Quiz
- Owncast Newsletter May 2025
- My Dream Fediverse Platform
- Fediverse Report – #116

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196b6aa-923e-5f15-d203-8331fb2924de

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-16

Servers

- Owncast v0.2.3
- snac v2.77
- ActivityPub for WordPress v5.9.0
- NeoDB v0.11.6.9
- Vernissage Server v1.14.0
- NodeBB v4.4.0
- Lemmy Development Update April 2025
- How PieFed federates “flair” on posts and comments
- Blocking domains (Ghost)

Clients

- Moshidon v109
- aria v1.1.0
- Blorp v1.5.0
- Flohra: An open source client for Flohmarkt

Tools and Plugins

- PeerTube livechat plugin v12.0.4
- feed2fedi v3.2.1
- fedidb-nuxt: The next generation frontend for fedidb.org

For developers

- FediAlgo v0.40.0

Protocol

- FEP-82f6: Actor statuses
- FEP-0151: NodeInfo in Fediverse Software (2025 edition)
- FEP-521a: Representing actor's public keys (Final comments)

Articles

- ActivityPub Quiz
- Owncast Newsletter May 2025
- My Dream Fediverse Platform
- Fediverse Report – #116

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196b6aa-923e-5f15-d203-8331fb2924de

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
, the customizable timeline algorithm / filtering system for your Mastodon feed, is now deployed on Github Pages and can be used from your web browser.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
, the customizable timeline algorithm / filtering system for your Mastodon feed, is now deployed on Github Pages and can be used from your web browser.

* Link: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Video of FediAlgo in action: universeodon.com/@cryptadamist

Nelfaneor's avatar
Nelfaneor

@Nelfan@mastodon.zaclys.com · Reply to wakest ⁂'s post

@liaizon
The Fediverse is a range of different open source softwares, all based on the and federated by this protocol which has been designed to allow a federation of independent and totally autonomous instances with full control by their administrators. That's called "decentralisation".

@bsky.app @pfrazee.com @mike @dot_social

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

@EUCommission that image I created long ago has gained new relevance..

Shows the map of EU countries with an overlay of a federated network, such as the Fediverse offers. Dark background, white text.
ALT text detailsShows the map of EU countries with an overlay of a federated network, such as the Fediverse offers. Dark background, white text.
Chris Alemany🇺🇦🇨🇦🇪🇸's avatar
Chris Alemany🇺🇦🇨🇦🇪🇸

@chris@mstdn.chrisalemany.ca

HEY! I just found the fix for the webfinger "403 forbidden” problem I have been having to get my wordpress blog working fully with ActivityPub @pfefferle!

Looks like for nginx based servers if you are rolling your own or you have a strict web host you need to create a location statement in your nginx config options

The code to add to your options is:

location ^~ /.well-known/webfinger {
auth_basic off;
allow all;
default_type text/plain;
try_files $uri $uri/ /index.php?$args;
break;
}

From this wordpress support question:

wordpress.org/support/topic/i-

After adding this, the test at webfinger.net/lookup outputs a proper response and Wordpress clears the 'webfinger' error in SiteHealth.

Yay!

A screenshot of the response from webfinger.net when I try my website shows a 403 Forbidden error in the Request Log
ALT text detailsA screenshot of the response from webfinger.net when I try my website shows a 403 Forbidden error in the Request Log
A screenshot after implementing the code in the nginx file shows a successful request and JSON Resource Descriptor lookup.
ALT text detailsA screenshot after implementing the code in the nginx file shows a successful request and JSON Resource Descriptor lookup.
Chris Alemany🇺🇦🇨🇦🇪🇸's avatar
Chris Alemany🇺🇦🇨🇦🇪🇸

@chris@mstdn.chrisalemany.ca

HEY! I just found the fix for the webfinger "403 forbidden” problem I have been having to get my wordpress blog working fully with ActivityPub @pfefferle!

Looks like for nginx based servers if you are rolling your own or you have a strict web host you need to create a location statement in your nginx config options

The code to add to your options is:

location ^~ /.well-known/webfinger {
auth_basic off;
allow all;
default_type text/plain;
try_files $uri $uri/ /index.php?$args;
break;
}

From this wordpress support question:

wordpress.org/support/topic/i-

After adding this, the test at webfinger.net/lookup outputs a proper response and Wordpress clears the 'webfinger' error in SiteHealth.

Yay!

A screenshot of the response from webfinger.net when I try my website shows a 403 Forbidden error in the Request Log
ALT text detailsA screenshot of the response from webfinger.net when I try my website shows a 403 Forbidden error in the Request Log
A screenshot after implementing the code in the nginx file shows a successful request and JSON Resource Descriptor lookup.
ALT text detailsA screenshot after implementing the code in the nginx file shows a successful request and JSON Resource Descriptor lookup.
rakoo's avatar
rakoo

@rakoo@blah.rako.space

Comme ActivityPub est pas du tout intégré dans les navigateurs, lorsqu'un trouve un contenu intéressant sur une instance qui n'est pas la sienne il y a de la friction pour interagir: il faut copier l'url, revenir dans son instance, chercher, attendre.

Il y a bien des extensions, mais c'est beaucoup de code et ça ne marche que sur Mastodon. Mais moi je veux naviguer le fediverse, pas le Mastoverse.

Du coup j'ai fait un bookmarklet tout bête qui fait le travail à ma place: c'est un signet standard sauf qu'à la place d'une url on peut mettre du code javascript. Et ce code javascript va lancer une recherche dans mon instance avec le contenu en question.

Pouet, post ou commentaire lemmy, vidéo peertube, événement mobilizon, ça marche partout.

Pour installer, rien de plus simple:
1. créer un signet
2. mettre le code minifié dans l'adresse, et par exemple "ouvrir dans mastodon" comme nom
3. c'est tout !

Le code est ici, servez-vous allègrement: https://git.sr.ht/~rakoo/bookmarklets

EDIT: si vous souhaitez en savoir plus sur les bookmarklets et comprendre comment on s'en sert, comment on les installe, voici un lien qui explique les choses: https://mastercaweb.unistra.fr/actualites/culture-web/bookmarklet/

#ActivityPub #fediverse #FautToutFaireSoiMemeIci
rakoo's avatar
rakoo

@rakoo@blah.rako.space

Comme ActivityPub est pas du tout intégré dans les navigateurs, lorsqu'un trouve un contenu intéressant sur une instance qui n'est pas la sienne il y a de la friction pour interagir: il faut copier l'url, revenir dans son instance, chercher, attendre.

Il y a bien des extensions, mais c'est beaucoup de code et ça ne marche que sur Mastodon. Mais moi je veux naviguer le fediverse, pas le Mastoverse.

Du coup j'ai fait un bookmarklet tout bête qui fait le travail à ma place: c'est un signet standard sauf qu'à la place d'une url on peut mettre du code javascript. Et ce code javascript va lancer une recherche dans mon instance avec le contenu en question.

Pouet, post ou commentaire lemmy, vidéo peertube, événement mobilizon, ça marche partout.

Pour installer, rien de plus simple:
1. créer un signet
2. mettre le code minifié dans l'adresse, et par exemple "ouvrir dans mastodon" comme nom
3. c'est tout !

Le code est ici, servez-vous allègrement: https://git.sr.ht/~rakoo/bookmarklets

EDIT: si vous souhaitez en savoir plus sur les bookmarklets et comprendre comment on s'en sert, comment on les installe, voici un lien qui explique les choses: https://mastercaweb.unistra.fr/actualites/culture-web/bookmarklet/

#ActivityPub #fediverse #FautToutFaireSoiMemeIci
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

Social media is as social as Las Vegas where giants as telecom providers of society, take care of the lightshow to lure us in.

@Sironimo and Jonas Kießling argue for more deliberate design of our communication mechanisms. The of and gives control back to people, allows us to rethink how we want to interact. There's a big role for to help devs address needs in and .

discuss.coding.social/t/articl

Peter Lord's avatar
Peter Lord

@plord12@mastodon.social

Have been playing recently with wordpress activitypub, friends, enable mastodon apps and event bridge for activitypub plugins ... getting very close now to use wordpress as my fediverse server !

Very impressed :-) The team is very responsive.

wordpress.org/plugins/activity
wordpress.org/plugins/friends/
en-gb.wordpress.org/plugins/en
wordpress.org/plugins/event-br

@pfefferle @alex @linos

Peter Lord's avatar
Peter Lord

@plord12@mastodon.social

Have been playing recently with wordpress activitypub, friends, enable mastodon apps and event bridge for activitypub plugins ... getting very close now to use wordpress as my fediverse server !

Very impressed :-) The team is very responsive.

wordpress.org/plugins/activity
wordpress.org/plugins/friends/
en-gb.wordpress.org/plugins/en
wordpress.org/plugins/event-br

@pfefferle @alex @linos

rakoo's avatar
rakoo

@rakoo@blah.rako.space

Comme ActivityPub est pas du tout intégré dans les navigateurs, lorsqu'un trouve un contenu intéressant sur une instance qui n'est pas la sienne il y a de la friction pour interagir: il faut copier l'url, revenir dans son instance, chercher, attendre.

Il y a bien des extensions, mais c'est beaucoup de code et ça ne marche que sur Mastodon. Mais moi je veux naviguer le fediverse, pas le Mastoverse.

Du coup j'ai fait un bookmarklet tout bête qui fait le travail à ma place: c'est un signet standard sauf qu'à la place d'une url on peut mettre du code javascript. Et ce code javascript va lancer une recherche dans mon instance avec le contenu en question.

Pouet, post ou commentaire lemmy, vidéo peertube, événement mobilizon, ça marche partout.

Pour installer, rien de plus simple:
1. créer un signet
2. mettre le code minifié dans l'adresse, et par exemple "ouvrir dans mastodon" comme nom
3. c'est tout !

Le code est ici, servez-vous allègrement: https://git.sr.ht/~rakoo/bookmarklets

EDIT: si vous souhaitez en savoir plus sur les bookmarklets et comprendre comment on s'en sert, comment on les installe, voici un lien qui explique les choses: https://mastercaweb.unistra.fr/actualites/culture-web/bookmarklet/

#ActivityPub #fediverse #FautToutFaireSoiMemeIci
Andy Piper's avatar
Andy Piper

@andypiper@andypiper.co.uk

I’m really happy to have been asked to join the new FediForum Advisory Board that is helping to guide and steer the future of the event.

We are proud to announce the first-ever FediForum advisory board. We are very glad to have such an incredible group of committed and experienced Open Social Web pioneers and advocates come together to advise FediForum and help move the Open Social Web forward.

Check out fediforum.org/people

— FediForum (@fediforum) 2025-05-06T18:49:33.513Z

FediForum has been an important part of the development of the Fediverse over the past couple of years. It has provided a space for projects to share their latest releases and features, and also enabled the serendipitous sharing of needs and ideas. The Projects page on the FediForum site documents a few of the collaborations that have come out of the event already.

I particularly remember how Ben Pate came to share what he was building (Emissary), how several creators in the music space came together during the same event to discuss their hopes for new social channels to connect with their audiences, and how that evolved into both Bandwagon, and The Indie Beat FM. I’ve loved being a part of these kinds of conversations!

An unconference can be difficult to navigate to some people, but it can also enable exactly these kinds of unexpected, delightful fusions of shared interest and technical know-how. At the same time, there’s also a lot of value in more organised, formal events with agendas known in advance. My own belief is that there’s space for both formats to support the Fediverse community, and I hope to see these happen in the coming years. In the meantime, you’ll see some adjustments to the format of FediForum itself, in response to feedback heard at recent town halls.

I’ve helped to run various unconference format events in person in the past; I’m also a public speaker; and, I have been a community organiser myself. I know how complicated it can be to make events like FediForum happen! I’m grateful to have the opportunity to help keep this important shared space open, available, and valuable for the future. I’m also delighted about the wonderful group of people that are on the advisory board – we have a shared passion for the Fediverse, and more importantly, we care about the humans that are part of it.

Looking forward to seeing folks again at FediForum, June 5-7.

https://

This server does not support sharing. Please visit .

https://andypiper.co.uk/2025/05/07/fediforum-advisory-board/

Peter Lord's avatar
Peter Lord

@plord12@mastodon.social

Have been playing recently with wordpress activitypub, friends, enable mastodon apps and event bridge for activitypub plugins ... getting very close now to use wordpress as my fediverse server !

Very impressed :-) The team is very responsive.

wordpress.org/plugins/activity
wordpress.org/plugins/friends/
en-gb.wordpress.org/plugins/en
wordpress.org/plugins/event-br

@pfefferle @alex @linos

rood's avatar
rood

@rood@aus.social

I need a "Follow +12h" delay feature

rood's avatar
rood

@rood@aus.social

I need a "Follow +12h" delay feature

Peter Lord's avatar
Peter Lord

@plord12@mastodon.social

Have been playing recently with wordpress activitypub, friends, enable mastodon apps and event bridge for activitypub plugins ... getting very close now to use wordpress as my fediverse server !

Very impressed :-) The team is very responsive.

wordpress.org/plugins/activity
wordpress.org/plugins/friends/
en-gb.wordpress.org/plugins/en
wordpress.org/plugins/event-br

@pfefferle @alex @linos

Peter Lord's avatar
Peter Lord

@plord12@mastodon.social

Have been playing recently with wordpress activitypub, friends, enable mastodon apps and event bridge for activitypub plugins ... getting very close now to use wordpress as my fediverse server !

Very impressed :-) The team is very responsive.

wordpress.org/plugins/activity
wordpress.org/plugins/friends/
en-gb.wordpress.org/plugins/en
wordpress.org/plugins/event-br

@pfefferle @alex @linos

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

ActivityPub 5.9.0 for WordPress just dropped, and I couldn't be more excited!

Check out our brand new Onboarding experience!

👉 Full changelog: wordpress.org/plugins/activity

Screenshot of the ActivityPub plugin onboarding screen in WordPress. The page welcomes users to the Fediverse and displays a progress circle showing step 2 of 6. Completed steps include 'Plugin installed' and 'Check your site’s health.' Remaining steps are: 'New to the Fediverse? Start Here' with a 'View intro' button, 'Select how you want to share' with a 'Choose mode' button, 'Set up your public profile' with an 'Edit profile' button, and 'Learn more about Fediverse features' with an 'Explore features' button.
ALT text detailsScreenshot of the ActivityPub plugin onboarding screen in WordPress. The page welcomes users to the Fediverse and displays a progress circle showing step 2 of 6. Completed steps include 'Plugin installed' and 'Check your site’s health.' Remaining steps are: 'New to the Fediverse? Start Here' with a 'View intro' button, 'Select how you want to share' with a 'Choose mode' button, 'Set up your public profile' with an 'Edit profile' button, and 'Learn more about Fediverse features' with an 'Explore features' button.
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee @thisismissem @PuercoPop

For your information, I recently opened an issue to track current C2S implementations.

This is the list thus far:



.pub






codeberg.org/fediverse/delight

Client-side is a well-known attempt to implement it:

github.com/andstatus/andstatus

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

Sarven Capadisli's avatar
Sarven Capadisli

@csarven@w3c.social · Reply to just small circles 🕊's post

@smallcircles @hongminhee @thisismissem @PuercoPop

Would this qualify as innovative (and demonstrating an actual implementation of specifications) :)

w3c.social/@csarven/1134640883

7s screencast of dokieli's browser extension showing user w/ personal identifier loading up their (& contacts') annotations/objects from outbox/storage (AS2 Collection) displayed in context of where they were originally expressed.

Show me a server that's actually ready for others' clients ;)

Sarven Capadisli's avatar
Sarven Capadisli

@csarven@w3c.social · Reply to just small circles 🕊's post

@smallcircles @hongminhee @thisismissem @PuercoPop

Would this qualify as innovative (and demonstrating an actual implementation of specifications) :)

w3c.social/@csarven/1134640883

7s screencast of dokieli's browser extension showing user w/ personal identifier loading up their (& contacts') annotations/objects from outbox/storage (AS2 Collection) displayed in context of where they were originally expressed.

Show me a server that's actually ready for others' clients ;)

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Sarven Capadisli's post

@csarven @hongminhee @thisismissem @PuercoPop

Thank you! I have updated the list in the issue. I am currently collecting this info along with intent to restructure the 4 fedi related delightful lists so they highlight more the innovative side of things.

Maybe that the C2S category has some historic information on clients that were planned or in the works and tested for compliance. But I'm not aware of any now.

Sarven Capadisli's avatar
Sarven Capadisli

@csarven@w3c.social · Reply to just small circles 🕊's post

@smallcircles @hongminhee @thisismissem @PuercoPop

Which of those pass the test suite? Or work with servers besides their own w/o out of spec stuff?

The original implementation reports: activitypub.rocks/implementati .

AFAICT, - dokie.li/ - git.dokie.li/ - is the only one that's strictly implementing the Client-to-Server "client" part of the specification. IOW, the software is not tightly coupled / shipped with its own server.

codeberg.org/fediverse/delight

Sarven Capadisli's avatar
Sarven Capadisli

@csarven@w3c.social · Reply to just small circles 🕊's post

@smallcircles @hongminhee @thisismissem @PuercoPop

Which of those pass the test suite? Or work with servers besides their own w/o out of spec stuff?

The original implementation reports: activitypub.rocks/implementati .

AFAICT, - dokie.li/ - git.dokie.li/ - is the only one that's strictly implementing the Client-to-Server "client" part of the specification. IOW, the software is not tightly coupled / shipped with its own server.

codeberg.org/fediverse/delight

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

@maxd @hongminhee

Oh, and I should mention a related project that has support for namely .

eventcatalog.dev

I personally find this a really cool software. For the fediverse to become home to many interoperable hetegeneous services, then good tools to quickly design services are needed.

Extending AP is still a Hard Thing™ to do, and our current approach will see that only introduce protocol decay.

rfc-editor.org/rfc/rfc9413.htm

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

@maxd @hongminhee

What may be interesting is which is like but then oriented towards event-driven architectures. More appropriate for message passing protocols like .

asyncapi.com/en

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

@maxd @hongminhee

What may be interesting is which is like but then oriented towards event-driven architectures. More appropriate for message passing protocols like .

asyncapi.com/en

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee @thisismissem @PuercoPop

For your information, I recently opened an issue to track current C2S implementations.

This is the list thus far:



.pub






codeberg.org/fediverse/delight

Client-side is a well-known attempt to implement it:

github.com/andstatus/andstatus

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to 洪 民憙 (Hong Minhee)'s post

@hongminhee @thisismissem @PuercoPop

For your information, I recently opened an issue to track current C2S implementations.

This is the list thus far:



.pub






codeberg.org/fediverse/delight

Client-side is a well-known attempt to implement it:

github.com/andstatus/andstatus

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

I don't remember. How long has the W3C SocialCG been trying to form a Working Group to at least correct the errors in ? Has been 6 months, a year, longer?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been thinking about client-server interactions in the . isn't widely used, and most clients rely on Mastodon-compatible APIs instead.

What if we created a new standardized API based on GraphQL + Relay for client-server communication, while keeping ActivityPub for server-to-server federation?

The Mastodon-compatible API lacks formal schema definitions for code generation and type checking, which hurts developer productivity. And ActivityPub C2S is honestly too cumbersome to use directly from client apps.

would give us type safety, efficient data fetching (only get what you need), and the ability to evolve the API without breaking clients. 's features for pagination, caching, and optimistic updates seem perfect for social apps.

Would this be valuable to our community? What challenges do you see? How might we handle backward compatibility? And should this be formalized as an FEP?

Curious what others think about this approach.

Matthias Pfefferle's avatar
Matthias Pfefferle

@pfefferle@mastodon.social

can someone recommend a http-signature library/implementation in ?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

Matthias Pfefferle's avatar
Matthias Pfefferle

@pfefferle@mastodon.social

can someone recommend a http-signature library/implementation in ?

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Flipboard Expands Publisher Federation with International Partners« about.flipboard.com/fediverse/

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Gregory's avatar
Gregory

@grishka@mastodon.social

I wrote a about actor statuses. Yeah, those things near the name that Facebook had in 2007.

codeberg.org/fediverse/fep/src

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Flipboard Expands Publisher Federation with International Partners« about.flipboard.com/fediverse/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

Gregory's avatar
Gregory

@grishka@mastodon.social

I wrote a about actor statuses. Yeah, those things near the name that Facebook had in 2007.

codeberg.org/fediverse/fep/src

Gregory's avatar
Gregory

@grishka@mastodon.social

I wrote a about actor statuses. Yeah, those things near the name that Facebook had in 2007.

codeberg.org/fediverse/fep/src

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Fediverse Report – #116« fediversereport.com/fediverse-

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Fediverse Report – #116« fediversereport.com/fediverse-

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

The fine @michael has deployed the demo app to a place where you can test out the customizable algorithm + filtering system for your home timeline with nothing more than a web browser. You can find it here:

fedialgo.thms.uk/

Here's a video of the FediAlgo demo in action (there's a few new features since the video): universeodon.com/@cryptadamist

cc: @rolle @paige @LaurensHof

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As 's author, I'm contemplating its adoption beyond Ghost's implementation. Finding potential users for ActivityPub tools seems challenging—perhaps I'm addressing a very niche need?

While the technical complexity of ActivityPub makes tools like Fedify valuable, I wonder about the actual market demand for federation outside specific communities.

Open, decentralized systems make sense to many developers, but businesses often prefer closed ecosystems that align with traditional models.

Still, I see potential as the grows and digital sovereignty concerns increase. Fedify aims to lower the technical barriers to federation.

I'm curious: Which projects would benefit most from Fedify today? What would make federation compelling enough for platforms to implement?

Would appreciate perspectives from both developers and platform owners.

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon: Giving Journalists Options Away From Big Tech« wedistribute.org/2025/05/masto

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon: Giving Journalists Options Away From Big Tech« wedistribute.org/2025/05/masto

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Mastodon: Giving Journalists Options Away From Big Tech« wedistribute.org/2025/05/masto

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

The fine @michael has deployed the demo app to a place where you can test out the customizable algorithm + filtering system for your home timeline with nothing more than a web browser. You can find it here:

fedialgo.thms.uk/

Here's a video of the FediAlgo demo in action (there's a few new features since the video): universeodon.com/@cryptadamist

cc: @rolle @paige @LaurensHof

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be

Who here knows about, @cwebber@social.coop

You should follow them. One of the mainstream protocols that make the Fediverse even possible, commonly used on Mastodon, CherryPick, Misskey, and Sharkey, is called, ActivityPub. They help write that protocol.

Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be

Who here knows about, @cwebber@social.coop

You should follow them. One of the mainstream protocols that make the Fediverse even possible, commonly used on Mastodon, CherryPick, Misskey, and Sharkey, is called, ActivityPub. They help write that protocol.

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

Building ActivityPub »Blocking domains« activitypub.ghost.org/blocking

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

Building ActivityPub »Blocking domains« activitypub.ghost.org/blocking

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Konstantin 🔭's avatar
Konstantin 🔭

@iamkonstantin@mastodon.social

By the way, if you’re looking into decentralized tech where people are actually in control of their own data (as in who can use it, when and how), checkout solidproject.org There are a lot of interesting insights, especially for storing sensitive data.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

Konstantin 🔭's avatar
Konstantin 🔭

@iamkonstantin@mastodon.social

By the way, if you’re looking into decentralized tech where people are actually in control of their own data (as in who can use it, when and how), checkout solidproject.org There are a lot of interesting insights, especially for storing sensitive data.

Konstantin 🔭's avatar
Konstantin 🔭

@iamkonstantin@mastodon.social

By the way, if you’re looking into decentralized tech where people are actually in control of their own data (as in who can use it, when and how), checkout solidproject.org There are a lot of interesting insights, especially for storing sensitive data.

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

Gregory's avatar
Gregory

@grishka@mastodon.social

Some updates:
- Friend lists: you can now assign lists to your friends. These are useful not only for remembering where you know someone from, but also for privacy settings.
- Email notifications: self-explanatory. You only start receiving them if you haven't visited for at least a day, as determined by the online status.

Gregory's avatar
Gregory

@grishka@mastodon.social

Some updates:
- Friend lists: you can now assign lists to your friends. These are useful not only for remembering where you know someone from, but also for privacy settings.
- Email notifications: self-explanatory. You only start receiving them if you haven't visited for at least a day, as determined by the online status.

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

The fine @michael has deployed the demo app to a place where you can test out the customizable algorithm + filtering system for your home timeline with nothing more than a web browser. You can find it here:

fedialgo.thms.uk/

Here's a video of the FediAlgo demo in action (there's a few new features since the video): universeodon.com/@cryptadamist

cc: @rolle @paige @LaurensHof

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

The fine @michael has deployed the demo app to a place where you can test out the customizable algorithm + filtering system for your home timeline with nothing more than a web browser. You can find it here:

fedialgo.thms.uk/

Here's a video of the FediAlgo demo in action (there's a few new features since the video): universeodon.com/@cryptadamist

cc: @rolle @paige @LaurensHof

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

Okay, I've just deployed a bleeding edge , which implements both RFC 9421 and double-knocking, to Hackers' Pub. If you'd like to test your implementations against a real server, please give it a try! (If you want to create an account, let me know—I can invite you.)

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Steve Bate's avatar
Steve Bate

@steve@social.technoetic.com

Just for fun... try this quiz to test your knowledge of the protocol.

apquiz.stevebate.dev/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

I'm still working on my article about installing and using Honk. The name is silly, and the commands / names for actions are a bit confusing. But under that layer of "do not take any of this seriously" are some interesting features that aren't on Mastodon.

Imports of Instagram, Twitter, Mastodon and Honk archives.
Add Geo-coordinates to a post.
Add Events
Add RSS Feeds
Custom timelines (combos) - I think - still figuring this one out!

GENKI's avatar
GENKI

@nibushibu@vivaldi.net · Reply to GENKI's post

あと に至ってはもう「なるはやで :activitypub: 対応するぜ!」って言ってた過去をたぶんもう誰も覚えてない(自分も忘れてた

GENKI's avatar
GENKI

@nibushibu@vivaldi.net · Reply to GENKI's post

あと に至ってはもう「なるはやで :activitypub: 対応するぜ!」って言ってた過去をたぶんもう誰も覚えてない(自分も忘れてた

GENKI's avatar
GENKI

@nibushibu@vivaldi.net · Reply to GENKI's post

:fediverse: :activitypub: 対応は、トランプ政権に代わってザッカーバーグのアイコンが金のジャラジャラ(?)マッチョアイコンに変わったあたりからほとんど公式に話題にならなくなってる気がするんだけど気のせい…?

1回、何かの進捗があってその関係のアナウンスをしてたような記憶はあるけど、
当初の「 こそソーシャルメディアの未来です。 もそこに参加します!」みたいな熱をいまの からはもう全然感じられてないんだよな自分 :tony_neutral:

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Federated flair for PieFed communities and users is here. Think of them similar to hashtags that follow these objects around. It gives you a sense of the user's specific interest in a topic, or a way to filter a community to posts about a specific flair. Your community flair can be associated to a specific color.

join.piefed.social/2025/05/10/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Federated flair for PieFed communities and users is here. Think of them similar to hashtags that follow these objects around. It gives you a sense of the user's specific interest in a topic, or a way to filter a community to posts about a specific flair. Your community flair can be associated to a specific color.

join.piefed.social/2025/05/10/

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Federated flair for PieFed communities and users is here. Think of them similar to hashtags that follow these objects around. It gives you a sense of the user's specific interest in a topic, or a way to filter a community to posts about a specific flair. Your community flair can be associated to a specific color.

join.piefed.social/2025/05/10/

ajuvo ✔'s avatar
ajuvo ✔

@ajuvo@chaos.social

kleiner Programmhinweis für heute, Samstag, Abend

A conversation about the future of decentralized networks.
fireside chat with Christine Lemmer-Webber (ActivityPub co-author)

@cwebber

and Volker Grassmuck live at c-base Berlin

c-tube.c-base.org/w/nUK259rHZk

@cbase

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Gregory's avatar
Gregory

@grishka@mastodon.social

Some updates:
- Friend lists: you can now assign lists to your friends. These are useful not only for remembering where you know someone from, but also for privacy settings.
- Email notifications: self-explanatory. You only start receiving them if you haven't visited for at least a day, as determined by the online status.

Gregory's avatar
Gregory

@grishka@mastodon.social

Some updates:
- Friend lists: you can now assign lists to your friends. These are useful not only for remembering where you know someone from, but also for privacy settings.
- Email notifications: self-explanatory. You only start receiving them if you haven't visited for at least a day, as determined by the online status.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-09

Servers

- Owncast v0.2.2
- Mastodon v4.3.8
- Mitra v4.2.0
- snac v2.76
- Misskey v2025.5.0
- NeoDB v0.11.6.7
- tootik v0.16.0
- kmyblue v18.1
- Vernissage Server v1.12.0
- Gush! v0.18.0
- May 2025: What’s In The Pipeline (Bandwagon.fm)
- Blocking users (Ghost)
- Trunk & Tidbits, April 2025 (Mastodon)

Clients

- Voyager v2.34.0
- Blorp v1.4.0

Tools and Plugins

- Lemmy Schedule v1.15.0
- Enable Mastodon Apps v1.4.6 (WordPress plugin)
- peertube_recomendation_algorythm: A browser extension that monitors the peertube videos your watch and stores them locally

For developers

- FediAlgo v0.30.5

Articles

- When decentralization can get too big!
- Town squares, backyards, better metaphors, and decentralised networks
- Il Fediverso a scuola: uno strumento didattico per la cittadinanza digitale
- Fediverse Report – #115

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196929b-a80a-322f-a1ba-f42864034290

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-09

Servers

- Owncast v0.2.2
- Mastodon v4.3.8
- Mitra v4.2.0
- snac v2.76
- Misskey v2025.5.0
- NeoDB v0.11.6.7
- tootik v0.16.0
- kmyblue v18.1
- Vernissage Server v1.12.0
- Gush! v0.18.0
- May 2025: What’s In The Pipeline (Bandwagon.fm)
- Blocking users (Ghost)
- Trunk & Tidbits, April 2025 (Mastodon)

Clients

- Voyager v2.34.0
- Blorp v1.4.0

Tools and Plugins

- Lemmy Schedule v1.15.0
- Enable Mastodon Apps v1.4.6 (WordPress plugin)
- peertube_recomendation_algorythm: A browser extension that monitors the peertube videos your watch and stores them locally

For developers

- FediAlgo v0.30.5

Articles

- When decentralization can get too big!
- Town squares, backyards, better metaphors, and decentralised networks
- Il Fediverso a scuola: uno strumento didattico per la cittadinanza digitale
- Fediverse Report – #115

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196929b-a80a-322f-a1ba-f42864034290

ajuvo ✔'s avatar
ajuvo ✔

@ajuvo@chaos.social

kleiner Programmhinweis für heute, Samstag, Abend

A conversation about the future of decentralized networks.
fireside chat with Christine Lemmer-Webber (ActivityPub co-author)

@cwebber

and Volker Grassmuck live at c-base Berlin

c-tube.c-base.org/w/nUK259rHZk

@cbase

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-09

Servers

- Owncast v0.2.2
- Mastodon v4.3.8
- Mitra v4.2.0
- snac v2.76
- Misskey v2025.5.0
- NeoDB v0.11.6.7
- tootik v0.16.0
- kmyblue v18.1
- Vernissage Server v1.12.0
- Gush! v0.18.0
- May 2025: What’s In The Pipeline (Bandwagon.fm)
- Blocking users (Ghost)
- Trunk & Tidbits, April 2025 (Mastodon)

Clients

- Voyager v2.34.0
- Blorp v1.4.0

Tools and Plugins

- Lemmy Schedule v1.15.0
- Enable Mastodon Apps v1.4.6 (WordPress plugin)
- peertube_recomendation_algorythm: A browser extension that monitors the peertube videos your watch and stores them locally

For developers

- FediAlgo v0.30.5

Articles

- When decentralization can get too big!
- Town squares, backyards, better metaphors, and decentralised networks
- Il Fediverso a scuola: uno strumento didattico per la cittadinanza digitale
- Fediverse Report – #115

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196929b-a80a-322f-a1ba-f42864034290

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-09

Servers

- Owncast v0.2.2
- Mastodon v4.3.8
- Mitra v4.2.0
- snac v2.76
- Misskey v2025.5.0
- NeoDB v0.11.6.7
- tootik v0.16.0
- kmyblue v18.1
- Vernissage Server v1.12.0
- Gush! v0.18.0
- May 2025: What’s In The Pipeline (Bandwagon.fm)
- Blocking users (Ghost)
- Trunk & Tidbits, April 2025 (Mastodon)

Clients

- Voyager v2.34.0
- Blorp v1.4.0

Tools and Plugins

- Lemmy Schedule v1.15.0
- Enable Mastodon Apps v1.4.6 (WordPress plugin)
- peertube_recomendation_algorythm: A browser extension that monitors the peertube videos your watch and stores them locally

For developers

- FediAlgo v0.30.5

Articles

- When decentralization can get too big!
- Town squares, backyards, better metaphors, and decentralised networks
- Il Fediverso a scuola: uno strumento didattico per la cittadinanza digitale
- Fediverse Report – #115

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196929b-a80a-322f-a1ba-f42864034290

Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social · Reply to David Pierce's post

@imdavidpierce Its dramatically under-reported that the newly federated forum software went from zero to 2.7 million federated users, and jumped. tobe the 2nd biggest platform on after Mastodon shortly after launch..

fedidb.com/software?software=n

matt at oslo dot town's avatar
matt at oslo dot town

@matt@oslo.town

It was really fun to meet a bunch of people from in person today - thanks for coming along to the talk. 🙏 🎉

The recording is available to watch online at the following site (my part starts at the 57 mins mark): tekna.no/fag-og-nettverk/IKT/e

Thank you to the organisers at @attacnorge, specifically @audunmb for giving me the opportunity to come and spread the word about and the . 🙇

And thanks to @cifie for the flowers 💐

📸 @forteller
📸 @kfh

A photo of a bouquet of a brightly coloured selection of flowers outside Rebel Oslo - the conference hall.
ALT text detailsA photo of a bouquet of a brightly coloured selection of flowers outside Rebel Oslo - the conference hall.
A photo of Matt on stage, pointing towards a screen showing Mastodon and Facebook side-by-side.
ALT text detailsA photo of Matt on stage, pointing towards a screen showing Mastodon and Facebook side-by-side.
A photo of Matt on stage pointing a photo listing all the fediverse services such as PeerTube, PixelFed, Lemmy, Loops, Bookwyrm
ALT text detailsA photo of Matt on stage pointing a photo listing all the fediverse services such as PeerTube, PixelFed, Lemmy, Loops, Bookwyrm
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

At SXSW's Fediverse House, it didn't matter which platform or protocol you preferred — everyone was focused on the singular goal of building a better internet. We've uploaded videos and highlights of key conversations from the event and rounded them up in one post. Here you go:

about.flipboard.com/fediverse/

Write.as's avatar
Write.as

@write_as@writing.exchange

Just rolled out some fediverse-related improvements:

- Now you can follow Write.as blogs from Ghost! There was a tiny bug with this that we just fixed. (WriteFreely PR: writefreely.org/pull/1373)

- We now support the `preview` property as a fallback for Articles. This will make your posts look much nicer as more platforms support it! (WriteFreely PR: writefreely.org/pull/1374)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social · Reply to David Pierce's post

@imdavidpierce Its dramatically under-reported that the newly federated forum software went from zero to 2.7 million federated users, and jumped. tobe the 2nd biggest platform on after Mastodon shortly after launch..

fedidb.com/software?software=n

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Write.as's avatar
Write.as

@write_as@writing.exchange

Just rolled out some fediverse-related improvements:

- Now you can follow Write.as blogs from Ghost! There was a tiny bug with this that we just fixed. (WriteFreely PR: writefreely.org/pull/1373)

- We now support the `preview` property as a fallback for Articles. This will make your posts look much nicer as more platforms support it! (WriteFreely PR: writefreely.org/pull/1374)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Looking for implementations with support! 🔍

As mentioned in the Fedify announcement below, I've implemented RFC 9421 (HTTP Message Signatures) and need to verify its interoperability with other ActivityPub implementations.

The challenge is that most major ActivityPub projects don't seem to have full RFC 9421 implementations in production yet. If you're working on an ActivityPub project that:

  • has implemented RFC 9421 (even in a development branch)
  • is currently implementing it
  • has plans to implement it soon

Please reach out! I'd love to collaborate on interoperability testing to ensure our implementations work properly with each other before merging this into 's main branch.

Any leads or connections would be greatly appreciated! 🙏

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

We're excited to announce that we've implemented RFC 9421 (HTTP Message Signatures) in , complete with our double-knocking mechanism to maintain backward compatibility with the draft cavage version.

This implementation includes both signature generation and verification, meaning is used when both sending and receiving activities. While we haven't merged the RFC 9421 implementation branch yet, we're currently conducting interoperability tests with development versions of Mastodon and other implementations. Once these tests confirm compatibility, we'll proceed with the merge.

As noted in the attached docs, although RFC 9421 is the final and official standard for HTTP Signatures, the draft cavage version remains widely used across the . Our double-knocking mechanism ensures maximum compatibility by trying the RFC 9421 version first, then falling back to draft cavage if needed.

Currently, we support RSA-PKCS-v1.5 key pairs for generating HTTP Message Signatures, with plans to expand to other signature types in future releases.

We look forward to contributing to a more standardized and secure fediverse!

HTTP Message Signatures

This API is available since Fedify 1.6.0.

RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities.

Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them.

NOTE

Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
ALT text detailsHTTP Message Signatures This API is available since Fedify 1.6.0. RFC 9421, also known as HTTP Message Signatures, is the final revision of the HTTP Signatures specification. Although it is the official standard, it is not widely used in the fediverse yet. As of May 2025, major ActivityPub implementations, such as Mastodon, et al., still rely on the draft cavage version of HTTP Signatures for signing portable activities. Fedify automatically signs activities with the sender's private key if the actor keys dispatcher is set and the actor has any RSA-PKCS#1-v1.5 key pair. If there are multiple key pairs, Fedify selects the first RSA-PKCS#1-v1.5 key pair among them. NOTE Although HTTP Message Signatures support other than RSA-PKCS#1-v1.5, Fedify currently supports only RSA-PKCS#1-v1.5 key pairs for generating HTTP Message Signatures. This limitation will be lifted in the future releases.
Double-knocking HTTP Signatures

This API is available since Fedify 1.6.0.

As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet.

To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
ALT text detailsDouble-knocking HTTP Signatures This API is available since Fedify 1.6.0. As you read above, there are two revisions of HTTP Signatures: the draft cavage version and the RFC 9421 version. The draft cavage version is declared as obsolete, but it is still widely used in the fediverse, and many ActivityPub implementations still rely on it. On the other hand, the RFC 9421 version is the official standard, but it is not widely used yet. To support both versions of HTTP Signatures, Fedify uses the double-knocking mechanism: trying one version, then falling back to another if rejected. If it's the first encounter with the recipient server, Fedify tries the RFC 9421 version first, and if it fails, it falls back to the draft cavage version. If the recipient server accepts the RFC 9421 version, Fedify remembers it and uses the RFC 9421 version for the next time. If the recipient server rejects the RFC 9421 version, Fedify falls back to the draft cavage version and remembers it for the next time.
Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

At SXSW's Fediverse House, it didn't matter which platform or protocol you preferred — everyone was focused on the singular goal of building a better internet. We've uploaded videos and highlights of key conversations from the event and rounded them up in one post. Here you go:

about.flipboard.com/fediverse/

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

At SXSW's Fediverse House, it didn't matter which platform or protocol you preferred — everyone was focused on the singular goal of building a better internet. We've uploaded videos and highlights of key conversations from the event and rounded them up in one post. Here you go:

about.flipboard.com/fediverse/

Write.as's avatar
Write.as

@write_as@writing.exchange

Just rolled out some fediverse-related improvements:

- Now you can follow Write.as blogs from Ghost! There was a tiny bug with this that we just fixed. (WriteFreely PR: writefreely.org/pull/1373)

- We now support the `preview` property as a fallback for Articles. This will make your posts look much nicer as more platforms support it! (WriteFreely PR: writefreely.org/pull/1374)

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Write.as's post

@write_as

That is excellent and exemplary to other fediverse app developers to help the ecosystem improve and become increase overall .

PS. I noticed that no discussion thread for the was created on , so I took that upon me:

socialhub.activitypub.rocks/t/

I mentioned / in follow-up as candidate for the Implementations sections of this FEP.

cc FEP author @evan

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Write.as's post

@write_as I like the improvements and above all the focus to adhere to Fediverse Enhancements Proposals. Thank you! In this case:

FEP-b2b8 Long-form Text

codeberg.org/fediverse/fep/src

Write.as's avatar
Write.as

@write_as@writing.exchange

Just rolled out some fediverse-related improvements:

- Now you can follow Write.as blogs from Ghost! There was a tiny bug with this that we just fixed. (WriteFreely PR: writefreely.org/pull/1373)

- We now support the `preview` property as a fallback for Articles. This will make your posts look much nicer as more platforms support it! (WriteFreely PR: writefreely.org/pull/1374)

Yohan Yukiya Sese Cuneta 사요한🦣's avatar
Yohan Yukiya Sese Cuneta 사요한🦣

@youronlyone@c.im

If you're a writer/blogger/press, a friendly reminder that the 17th Year Anniversary of the [social] network (**not** Mastodon® social network) is fast approaching.

May 18, 2008

So, if you want to publish a new article, you can start today. There are a hundred possible angles and scopes for that article. 😉

fedia.io/m/fediverse@lemmy.wor

Anyway…

Write.as's avatar
Write.as

@write_as@writing.exchange

Just rolled out some fediverse-related improvements:

- Now you can follow Write.as blogs from Ghost! There was a tiny bug with this that we just fixed. (WriteFreely PR: writefreely.org/pull/1373)

- We now support the `preview` property as a fallback for Articles. This will make your posts look much nicer as more platforms support it! (WriteFreely PR: writefreely.org/pull/1374)

wakest ⁂'s avatar
wakest ⁂

@liaizon@social.wake.st

Doing some fediverse research and discovered that @tkithrta is attempting to "implement using 16 different web frameworks" in a project called
gitlab.com/acefed

Write.as's avatar
Write.as

@write_as@writing.exchange

Just rolled out some fediverse-related improvements:

- Now you can follow Write.as blogs from Ghost! There was a tiny bug with this that we just fixed. (WriteFreely PR: writefreely.org/pull/1373)

- We now support the `preview` property as a fallback for Articles. This will make your posts look much nicer as more platforms support it! (WriteFreely PR: writefreely.org/pull/1374)

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social · Reply to Sebastian Lasse's post

Beyond specs :
The defined extensions like
w3.org/wiki/Activity_Streams_e
w3.org/wiki/SocialCG/ActivityP
etc.
These include the drafts of the current Task Forces like
swicg.github.io/activitypub-da

Then I referred to FEPs which are "Fediverse Enhancement Proposals" as the community ad-hoc-way to spec.ing …
They are listed in this repo codeberg.org/fediverse/fep

In the next days, I will sketch out some concrete Activities workflow
Please tell me what is missing :)

🧵 10/10

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social

Esteemed

in the past days I have read many threads about the importance of facts in social networks and federating them.

On the other hand, the co-founder of wikipedia, Dr. Larry Sanger wants to create a "censorship resistant federated wikipedia". He became an altright conspiracy theorist and is part of Trumps culture-revolution-thinktank.

My fear is that they will not only remove tax status but also target Jimmy Wales, contributors and in the end the org domains.

In the last sleepless night the @skyfaller wrote „Instead of Action News, perhaps we need actionable news.“ digitalcourage.social/@sl007/1

So, to whom it may concern;
In the following first long part of a long thread, I will leave some thoughts about and with

🧵 1/10

Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social · Reply to David Pierce's post

@imdavidpierce Its dramatically under-reported that the newly federated forum software went from zero to 2.7 million federated users, and jumped. tobe the 2nd biggest platform on after Mastodon shortly after launch..

fedidb.com/software?software=n

Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social · Reply to David Pierce's post

@imdavidpierce Its dramatically under-reported that the newly federated forum software went from zero to 2.7 million federated users, and jumped. tobe the 2nd biggest platform on after Mastodon shortly after launch..

fedidb.com/software?software=n

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

@EUCommission that image I created long ago has gained new relevance..

Shows the map of EU countries with an overlay of a federated network, such as the Fediverse offers. Dark background, white text.
ALT text detailsShows the map of EU countries with an overlay of a federated network, such as the Fediverse offers. Dark background, white text.
just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

@EUCommission

Your focus has shifted to for to replace old twitter.

That means more attention freed for . The future of networking is strengthening connection online.

Let's lead the way forward in how can serve mankind, instead of mindless digital transformation that only serves and the bottom line.

We can envision a together. A place where online and offline are seamlessly connected, not separate worlds.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

@EUCommission that image I created long ago has gained new relevance..

Shows the map of EU countries with an overlay of a federated network, such as the Fediverse offers. Dark background, white text.
ALT text detailsShows the map of EU countries with an overlay of a federated network, such as the Fediverse offers. Dark background, white text.
Liaizon Wakest (old account)'s avatar
Liaizon Wakest (old account)

@wakest@mastodon.social

so now that features are really starting to diverge between different sites we really need a way to come together and decide how these little bits can fit together. for instance has a ton of features they have implemented recently like polls and reactions other then 'star',

the masto fork now.kibousoft.co.jp has implemented in their instance and it looked like misskey is doing something similar with misskey.xyz/notes/5b7c8643894f

CpyJx 🍉's avatar
CpyJx 🍉

@Cappyjax@mastodon.social · Reply to The Verge's post

@verge It's too late, Reddit is slowly dying due to their constant shitting on their user base.

Lemmy, Mbin, and PieFed are great alternatives, and thanks to ActivityPub they all communicate with each other on the Fediverse.

Want something that looks like old reddit but isn't tied to a dying platform? Check out oldsh.itjust.works/  – want a more modern UI, try out tesh.itjust.works/home/all/sca.

join.piefed.social/
joinmbin.org/
join-lemmy.org/

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #115 - This week's news:

- @peertube launches v1 of their mobile apps
- @Mastodon shares more information on their team is growing
- @swf launches places.pub, a way to put OpenStreetMap data directly on

fediversereport.com/fediverse-

BlueDot🇺🇦's avatar
BlueDot🇺🇦

@BlueDot@left-tusk.com

and experts, I'm curious to know if anyone has attempted to create a Fediverse instance as an Onion Service.

I understand that server-to-server communications in ActivityPub use HTTPS POST. So I imagine the sticking point would be routing server-to-server communications over the Tor network from, say, mastodon.social to valencia.onion.

Is this a problem with a trivial solution? Or perhaps an intractable one?

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz · Reply to Strypey's post

Me:
> Imagine when you add a new fediverse account to the profile of an existing one, it offers to synchronise your avatar, other social accounts, etc between the two

Maybe an ActivityPods approach could be used for this?

Andy Piper's avatar
Andy Piper

@andypiper@andypiper.co.uk

I’m really happy to have been asked to join the new FediForum Advisory Board that is helping to guide and steer the future of the event.

We are proud to announce the first-ever FediForum advisory board. We are very glad to have such an incredible group of committed and experienced Open Social Web pioneers and advocates come together to advise FediForum and help move the Open Social Web forward.

Check out fediforum.org/people

— FediForum (@fediforum) 2025-05-06T18:49:33.513Z

FediForum has been an important part of the development of the Fediverse over the past couple of years. It has provided a space for projects to share their latest releases and features, and also enabled the serendipitous sharing of needs and ideas. The Projects page on the FediForum site documents a few of the collaborations that have come out of the event already.

I particularly remember how Ben Pate came to share what he was building (Emissary), how several creators in the music space came together during the same event to discuss their hopes for new social channels to connect with their audiences, and how that evolved into both Bandwagon, and The Indie Beat FM. I’ve loved being a part of these kinds of conversations!

An unconference can be difficult to navigate to some people, but it can also enable exactly these kinds of unexpected, delightful fusions of shared interest and technical know-how. At the same time, there’s also a lot of value in more organised, formal events with agendas known in advance. My own belief is that there’s space for both formats to support the Fediverse community, and I hope to see these happen in the coming years. In the meantime, you’ll see some adjustments to the format of FediForum itself, in response to feedback heard at recent town halls.

I’ve helped to run various unconference format events in person in the past; I’m also a public speaker; and, I have been a community organiser myself. I know how complicated it can be to make events like FediForum happen! I’m grateful to have the opportunity to help keep this important shared space open, available, and valuable for the future. I’m also delighted about the wonderful group of people that are on the advisory board – we have a shared passion for the Fediverse, and more importantly, we care about the humans that are part of it.

Looking forward to seeing folks again at FediForum, June 5-7.

https://

This server does not support sharing. Please visit .

https://andypiper.co.uk/2025/05/07/fediforum-advisory-board/

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz · Reply to Strypey's post

Me:
> Imagine when you add a new fediverse account to the profile of an existing one, it offers to synchronise your avatar, other social accounts, etc between the two

Maybe an ActivityPods approach could be used for this?

CpyJx 🍉's avatar
CpyJx 🍉

@Cappyjax@mastodon.social · Reply to The Verge's post

@verge It's too late, Reddit is slowly dying due to their constant shitting on their user base.

Lemmy, Mbin, and PieFed are great alternatives, and thanks to ActivityPub they all communicate with each other on the Fediverse.

Want something that looks like old reddit but isn't tied to a dying platform? Check out oldsh.itjust.works/  – want a more modern UI, try out tesh.itjust.works/home/all/sca.

join.piefed.social/
joinmbin.org/
join-lemmy.org/

BlueDot🇺🇦's avatar
BlueDot🇺🇦

@BlueDot@left-tusk.com

and experts, I'm curious to know if anyone has attempted to create a Fediverse instance as an Onion Service.

I understand that server-to-server communications in ActivityPub use HTTPS POST. So I imagine the sticking point would be routing server-to-server communications over the Tor network from, say, mastodon.social to valencia.onion.

Is this a problem with a trivial solution? Or perhaps an intractable one?

Andy Piper's avatar
Andy Piper

@andypiper@andypiper.co.uk

I’m really happy to have been asked to join the new FediForum Advisory Board that is helping to guide and steer the future of the event.

We are proud to announce the first-ever FediForum advisory board. We are very glad to have such an incredible group of committed and experienced Open Social Web pioneers and advocates come together to advise FediForum and help move the Open Social Web forward.

Check out fediforum.org/people

— FediForum (@fediforum) 2025-05-06T18:49:33.513Z

FediForum has been an important part of the development of the Fediverse over the past couple of years. It has provided a space for projects to share their latest releases and features, and also enabled the serendipitous sharing of needs and ideas. The Projects page on the FediForum site documents a few of the collaborations that have come out of the event already.

I particularly remember how Ben Pate came to share what he was building (Emissary), how several creators in the music space came together during the same event to discuss their hopes for new social channels to connect with their audiences, and how that evolved into both Bandwagon, and The Indie Beat FM. I’ve loved being a part of these kinds of conversations!

An unconference can be difficult to navigate to some people, but it can also enable exactly these kinds of unexpected, delightful fusions of shared interest and technical know-how. At the same time, there’s also a lot of value in more organised, formal events with agendas known in advance. My own belief is that there’s space for both formats to support the Fediverse community, and I hope to see these happen in the coming years. In the meantime, you’ll see some adjustments to the format of FediForum itself, in response to feedback heard at recent town halls.

I’ve helped to run various unconference format events in person in the past; I’m also a public speaker; and, I have been a community organiser myself. I know how complicated it can be to make events like FediForum happen! I’m grateful to have the opportunity to help keep this important shared space open, available, and valuable for the future. I’m also delighted about the wonderful group of people that are on the advisory board – we have a shared passion for the Fediverse, and more importantly, we care about the humans that are part of it.

Looking forward to seeing folks again at FediForum, June 5-7.

https://

This server does not support sharing. Please visit .

https://andypiper.co.uk/2025/05/07/fediforum-advisory-board/

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social · Reply to Sebastian Lasse's post

@EvoMRI

addendum:
If we begin to use "conformant" in
w3.org/TR/activitypub/#conform
w3.org/TR/activitystreams-voca
w3.org/TR/activitystreams-core ff
it can do anything.
We would store the commit messages / edit meta alongside the Activities, and e.g. codeberg.org/fediverse/fep/src for the discussion.
And federate versioned qualified statements.

A script like above takes the Input of the wikis JSON-LD API and deliver application/ld+json; profile="w3.org/ns/activitystreams" …

The question is probably _how_ to federate wiki and the JSON-LD API already exists.
@maxlath did much tooling already, currently I am working on versioning as In AP anything

@wikidata @sovtechfund

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #115 - This week's news:

- @peertube launches v1 of their mobile apps
- @Mastodon shares more information on their team is growing
- @swf launches places.pub, a way to put OpenStreetMap data directly on

fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #115 - This week's news:

- @peertube launches v1 of their mobile apps
- @Mastodon shares more information on their team is growing
- @swf launches places.pub, a way to put OpenStreetMap data directly on

fediversereport.com/fediverse-

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Fediverse Report – #115« fediversereport.com/fediverse-

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Congratulations to @johnonolan and the team at Ghost on their 12th birthday! Here's John's post reflecting on the idea behind the product, some of the incredible indie publishers who have adopted it (including @404mediaco, @caseynewton's Platformer, and @drownedinsound) and what's next.

john.onolan.org/12/

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Congratulations to @johnonolan and the team at Ghost on their 12th birthday! Here's John's post reflecting on the idea behind the product, some of the incredible indie publishers who have adopted it (including @404mediaco, @caseynewton's Platformer, and @drownedinsound) and what's next.

john.onolan.org/12/

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Fediverse Report – #115« fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #115 - This week's news:

- @peertube launches v1 of their mobile apps
- @Mastodon shares more information on their team is growing
- @swf launches places.pub, a way to put OpenStreetMap data directly on

fediversereport.com/fediverse-

Fediverse Report's avatar
Fediverse Report

@fediversereport@mastodon.social

Fediverse Report #115 - This week's news:

- @peertube launches v1 of their mobile apps
- @Mastodon shares more information on their team is growing
- @swf launches places.pub, a way to put OpenStreetMap data directly on

fediversereport.com/fediverse-

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"If are concerned about the dominance of privately-owned online platforms, they have a responsibility to run and own their own.

A logical response would be for these entities to run their own instances of software like —or any -compatible, -based service. This would allow them to own their content, domain, and user verification, ensuring greater control and independence."
@andypiper
andypiper.co.uk/2024/08/15/fed

Ecologia Digital's avatar
Ecologia Digital

@josemurilo@mato.social

"If are concerned about the dominance of privately-owned online platforms, they have a responsibility to run and own their own.

A logical response would be for these entities to run their own instances of software like —or any -compatible, -based service. This would allow them to own their content, domain, and user verification, ensuring greater control and independence."
@andypiper
andypiper.co.uk/2024/08/15/fed

Yohan Yukiya Sese Cuneta 사요한🦣's avatar
Yohan Yukiya Sese Cuneta 사요한🦣

@youronlyone@c.im

If you're a writer/blogger/press, a friendly reminder that the 17th Year Anniversary of the [social] network (**not** Mastodon® social network) is fast approaching.

May 18, 2008

So, if you want to publish a new article, you can start today. There are a hundred possible angles and scopes for that article. 😉

fedia.io/m/fediverse@lemmy.wor

Anyway…

matt at oslo dot town's avatar
matt at oslo dot town

@matt@oslo.town

It was really fun to meet a bunch of people from in person today - thanks for coming along to the talk. 🙏 🎉

The recording is available to watch online at the following site (my part starts at the 57 mins mark): tekna.no/fag-og-nettverk/IKT/e

Thank you to the organisers at @attacnorge, specifically @audunmb for giving me the opportunity to come and spread the word about and the . 🙇

And thanks to @cifie for the flowers 💐

📸 @forteller
📸 @kfh

A photo of a bouquet of a brightly coloured selection of flowers outside Rebel Oslo - the conference hall.
ALT text detailsA photo of a bouquet of a brightly coloured selection of flowers outside Rebel Oslo - the conference hall.
A photo of Matt on stage, pointing towards a screen showing Mastodon and Facebook side-by-side.
ALT text detailsA photo of Matt on stage, pointing towards a screen showing Mastodon and Facebook side-by-side.
A photo of Matt on stage pointing a photo listing all the fediverse services such as PeerTube, PixelFed, Lemmy, Loops, Bookwyrm
ALT text detailsA photo of Matt on stage pointing a photo listing all the fediverse services such as PeerTube, PixelFed, Lemmy, Loops, Bookwyrm
matt at oslo dot town's avatar
matt at oslo dot town

@matt@oslo.town

It was really fun to meet a bunch of people from in person today - thanks for coming along to the talk. 🙏 🎉

The recording is available to watch online at the following site (my part starts at the 57 mins mark): tekna.no/fag-og-nettverk/IKT/e

Thank you to the organisers at @attacnorge, specifically @audunmb for giving me the opportunity to come and spread the word about and the . 🙇

And thanks to @cifie for the flowers 💐

📸 @forteller
📸 @kfh

A photo of a bouquet of a brightly coloured selection of flowers outside Rebel Oslo - the conference hall.
ALT text detailsA photo of a bouquet of a brightly coloured selection of flowers outside Rebel Oslo - the conference hall.
A photo of Matt on stage, pointing towards a screen showing Mastodon and Facebook side-by-side.
ALT text detailsA photo of Matt on stage, pointing towards a screen showing Mastodon and Facebook side-by-side.
A photo of Matt on stage pointing a photo listing all the fediverse services such as PeerTube, PixelFed, Lemmy, Loops, Bookwyrm
ALT text detailsA photo of Matt on stage pointing a photo listing all the fediverse services such as PeerTube, PixelFed, Lemmy, Loops, Bookwyrm
Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Renaud Chaput's avatar
Renaud Chaput

@renchap@oisaur.com

We are implementing the final version of RFC9421 (HTTP Signatures) in Mastodon, and would like to test this with other ActivityPub implementations.

Do you know of any AP implementations supporting both incoming (verification) and outgoing (signing) RFC9421 signatures, and if possible with support for the double-knocking mechanism as described in swicg.github.io/activitypub-ht (section 3.5)?

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz · Reply to Strypey's post

Coda: The growth of BlueSky, and the novel features it launches with, point to a need for a 2.0 version of ActivityPub. One that fleshes out and updates the protocol based on dev experiences in the first decade of active use, and intentions going forward.

Ideally an AP 2.0 would include a formal mechanism for protocol extensions. One that learns from the experiences of the FEP process.

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social · Reply to crossgolf_rebel - kostenlose Kwalitätsposts's post

@crossgolf_rebel
thanks for the nice question and answer,
just wanted to mention that the according specification is in the making, see
swicg.github.io/activitypub-da

@theresmiling

/ cc @DTinitiative

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz

This article sets out to compare ActivityPub and ATProto, but what it really compares is Mastodon and BlueSky;

archive.is/Hgr4c

It is useful however as a 'user story' about the failure modes of the existing, Mastodon-dominated fediverse.

(1/?)

Anthony Accioly's avatar
Anthony Accioly

@anthony@accioly.social

Hi folks, is there a LinkedIn equivalent on the Fediverse? Or is anyone working on creating one?
My professional posts don't quite fit the tone and microblogging style of Mastodon, and they’re not really suited to long-form blogging either. It would also be great to have an ActivityPub job board.

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

The FediAlgo hashtag filter section now highlights any hashtags you've posted about recently.

Interestingly the most I've used the app the more I've found feed filtering gets a ton of mileage for me. It's a huge change of pace to be able to instantly flip between whatever people are talking about on the Fediverse. Not really something you can do on any other social media platform I'm aware of.

* video of FediAlgo + link: universeodon.com/@cryptadamist

screenshot of fedialgo demo app
ALT text detailsscreenshot of fedialgo demo app
Anthony Accioly's avatar
Anthony Accioly

@anthony@accioly.social

Hi folks, is there a LinkedIn equivalent on the Fediverse? Or is anyone working on creating one?
My professional posts don't quite fit the tone and microblogging style of Mastodon, and they’re not really suited to long-form blogging either. It would also be great to have an ActivityPub job board.

Anthony Accioly's avatar
Anthony Accioly

@anthony@accioly.social

Hi folks, is there a LinkedIn equivalent on the Fediverse? Or is anyone working on creating one?
My professional posts don't quite fit the tone and microblogging style of Mastodon, and they’re not really suited to long-form blogging either. It would also be great to have an ActivityPub job board.

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

The FediAlgo hashtag filter section now highlights any hashtags you've posted about recently.

Interestingly the most I've used the app the more I've found feed filtering gets a ton of mileage for me. It's a huge change of pace to be able to instantly flip between whatever people are talking about on the Fediverse. Not really something you can do on any other social media platform I'm aware of.

* video of FediAlgo + link: universeodon.com/@cryptadamist

screenshot of fedialgo demo app
ALT text detailsscreenshot of fedialgo demo app
gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

Is the really open for ?

In the last weeks, I noticed more & more messages from different instances/admins about moderation, banning and de-federations. Initially, people told the Fediverse is more open, not blocking and deleting content compared to other social medias. However, I think it shifted to the opposite where a single instance admin decides for the whole user base (which might not even be aware of it).

gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

Is the really open for ?

In the last weeks, I noticed more & more messages from different instances/admins about moderation, banning and de-federations. Initially, people told the Fediverse is more open, not blocking and deleting content compared to other social medias. However, I think it shifted to the opposite where a single instance admin decides for the whole user base (which might not even be aware of it).

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-02

Servers

- Sharkey v2025.2.3
- Hollo v0.5.6
- Mitra v4.1.1
- NodeBB v4.3.0
- Manyfold v0.109.0
- Pleroma ActivityRelay v0.3.5
- Gathio v1.5.2
- Misskey v2025.4.1
- gancio v1.26.0
- Iceshrimp v2023.12.14
- NeoDB v0.11.6.2
- Gush! v0.0.17
- Vernissage Server v1.11.0
- Images, profiles, and preferences (Ghost)
- BadgeFed: Early Decentralization Experiments + OpenBadges Export! - Second April 2025 Update
- PieFed development update Apr 2025 - S3, OAuth, Federation retry queue, Stripe
- Forgejo monthly update - April 2025
- places.pub: A service that makes OpenStreetMap geographical data available as ActivityPub objects

Clients

- Pachli v2.12.0
- Voyager v2.33.0
- Tesseract v1.4.38
- Blorp v1.2.5
- Interstellar v0.9.2
- PeerTube Mobile v1.0.1
- Phanpy changelog

For developers

- Masto.js v7.0.0
- FediAlgo v0.23.0
- apsig v0.5.2
- apkit: Powerful Toolkit for ActivityPub Implementations (Python)

Protocol

- ActivityPub/Primer/Inbox
- ActivityPub/Primer/Outbox
- ActivityPub/Primer/Activity Streams 2.0

Articles

- How I made a blog using Lemmy - a write-up
- Steps Forward in Long-form Text
- Does The Fediverse Need Influencers To Survive?
- Fediverse Report – #114

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01966ea0-7d42-6181-9fdd-ccfe31dab1e2

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-02

Servers

- Sharkey v2025.2.3
- Hollo v0.5.6
- Mitra v4.1.1
- NodeBB v4.3.0
- Manyfold v0.109.0
- Pleroma ActivityRelay v0.3.5
- Gathio v1.5.2
- Misskey v2025.4.1
- gancio v1.26.0
- Iceshrimp v2023.12.14
- NeoDB v0.11.6.2
- Gush! v0.0.17
- Vernissage Server v1.11.0
- Images, profiles, and preferences (Ghost)
- BadgeFed: Early Decentralization Experiments + OpenBadges Export! - Second April 2025 Update
- PieFed development update Apr 2025 - S3, OAuth, Federation retry queue, Stripe
- Forgejo monthly update - April 2025
- places.pub: A service that makes OpenStreetMap geographical data available as ActivityPub objects

Clients

- Pachli v2.12.0
- Voyager v2.33.0
- Tesseract v1.4.38
- Blorp v1.2.5
- Interstellar v0.9.2
- PeerTube Mobile v1.0.1
- Phanpy changelog

For developers

- Masto.js v7.0.0
- FediAlgo v0.23.0
- apsig v0.5.2
- apkit: Powerful Toolkit for ActivityPub Implementations (Python)

Protocol

- ActivityPub/Primer/Inbox
- ActivityPub/Primer/Outbox
- ActivityPub/Primer/Activity Streams 2.0

Articles

- How I made a blog using Lemmy - a write-up
- Steps Forward in Long-form Text
- Does The Fediverse Need Influencers To Survive?
- Fediverse Report – #114

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01966ea0-7d42-6181-9fdd-ccfe31dab1e2

Brent Pruitt :: Artist's avatar
Brent Pruitt :: Artist

@brentpruitt@mastodon.art

are there any ‘good’ + self-host alts? 😩

i want to be rid of Automattic, but my options are limited on a shared server…

i _yearn_ for low maint & simplified UX

i'd like to attempt WP integration but… spam, security, mgmt

Woo is bloated & the WP / continues to devolve

my ideal would be to nix all ecomm & have a gallery/art rep, but i could be delusional…

> i need art sales + social marketing <

not another barrier

💻 🤷🏽

Brent Pruitt :: Artist's avatar
Brent Pruitt :: Artist

@brentpruitt@mastodon.art

are there any ‘good’ + self-host alts? 😩

i want to be rid of Automattic, but my options are limited on a shared server…

i _yearn_ for low maint & simplified UX

i'd like to attempt WP integration but… spam, security, mgmt

Woo is bloated & the WP / continues to devolve

my ideal would be to nix all ecomm & have a gallery/art rep, but i could be delusional…

> i need art sales + social marketing <

not another barrier

💻 🤷🏽

GENKI's avatar
GENKI

@nibushibu@vivaldi.net

:fediverse: とか :activitypub: がどういうものかrあらためてちゃんと発信する機会として の利用規約のアップデートは良い機会のような気もする。というか良い機会にするための発信が必要な時期なのかも

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

What should Process be about? et al? Or everything that vaguely represents ?

I took FEP codeberg chat to a thread that discusses how we can ensure and foster an open and grassroots ecosystem.

Imho the FEP Process should define its particular scope of protocols and technologies that are relevant, and that involves AS/AP and closely affiliated technologies.

FEP Process should NOT define what is. Leave that to Fedizens.

socialhub.activitypub.rocks/t/

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to just small circles 🕊's post

On the a related issue. For a good bottom-up standardization process that guarantees an open and inclusive related ecosystem, there should be good alignment with the Process.

github.com/swicg/general/issue

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

What should Process be about? et al? Or everything that vaguely represents ?

I took FEP codeberg chat to a thread that discusses how we can ensure and foster an open and grassroots ecosystem.

Imho the FEP Process should define its particular scope of protocols and technologies that are relevant, and that involves AS/AP and closely affiliated technologies.

FEP Process should NOT define what is. Leave that to Fedizens.

socialhub.activitypub.rocks/t/

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

Early bits of of look how, I created one in one instance (verifiedby.maho.dev) for @lqdev and it got decentralized/federated to other instance (badges.vocalcat.com)

So, badges are coming to the .

In a technical note, I am using notes (so it gets published to mastodon), but adding the badge as "attachment" which is in the spec. Tried document type before, but it does not render in Mastodon. I am going to work in supporting openbadges as activitypub attachments as well, so you can bring your existing openbadges to the fediverse.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-02

Servers

- Sharkey v2025.2.3
- Hollo v0.5.6
- Mitra v4.1.1
- NodeBB v4.3.0
- Manyfold v0.109.0
- Pleroma ActivityRelay v0.3.5
- Gathio v1.5.2
- Misskey v2025.4.1
- gancio v1.26.0
- Iceshrimp v2023.12.14
- NeoDB v0.11.6.2
- Gush! v0.0.17
- Vernissage Server v1.11.0
- Images, profiles, and preferences (Ghost)
- BadgeFed: Early Decentralization Experiments + OpenBadges Export! - Second April 2025 Update
- PieFed development update Apr 2025 - S3, OAuth, Federation retry queue, Stripe
- Forgejo monthly update - April 2025
- places.pub: A service that makes OpenStreetMap geographical data available as ActivityPub objects

Clients

- Pachli v2.12.0
- Voyager v2.33.0
- Tesseract v1.4.38
- Blorp v1.2.5
- Interstellar v0.9.2
- PeerTube Mobile v1.0.1
- Phanpy changelog

For developers

- Masto.js v7.0.0
- FediAlgo v0.23.0
- apsig v0.5.2
- apkit: Powerful Toolkit for ActivityPub Implementations (Python)

Protocol

- ActivityPub/Primer/Inbox
- ActivityPub/Primer/Outbox
- ActivityPub/Primer/Activity Streams 2.0

Articles

- How I made a blog using Lemmy - a write-up
- Steps Forward in Long-form Text
- Does The Fediverse Need Influencers To Survive?
- Fediverse Report – #114

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01966ea0-7d42-6181-9fdd-ccfe31dab1e2

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-02

Servers

- Sharkey v2025.2.3
- Hollo v0.5.6
- Mitra v4.1.1
- NodeBB v4.3.0
- Manyfold v0.109.0
- Pleroma ActivityRelay v0.3.5
- Gathio v1.5.2
- Misskey v2025.4.1
- gancio v1.26.0
- Iceshrimp v2023.12.14
- NeoDB v0.11.6.2
- Gush! v0.0.17
- Vernissage Server v1.11.0
- Images, profiles, and preferences (Ghost)
- BadgeFed: Early Decentralization Experiments + OpenBadges Export! - Second April 2025 Update
- PieFed development update Apr 2025 - S3, OAuth, Federation retry queue, Stripe
- Forgejo monthly update - April 2025
- places.pub: A service that makes OpenStreetMap geographical data available as ActivityPub objects

Clients

- Pachli v2.12.0
- Voyager v2.33.0
- Tesseract v1.4.38
- Blorp v1.2.5
- Interstellar v0.9.2
- PeerTube Mobile v1.0.1
- Phanpy changelog

For developers

- Masto.js v7.0.0
- FediAlgo v0.23.0
- apsig v0.5.2
- apkit: Powerful Toolkit for ActivityPub Implementations (Python)

Protocol

- ActivityPub/Primer/Inbox
- ActivityPub/Primer/Outbox
- ActivityPub/Primer/Activity Streams 2.0

Articles

- How I made a blog using Lemmy - a write-up
- Steps Forward in Long-form Text
- Does The Fediverse Need Influencers To Survive?
- Fediverse Report – #114

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01966ea0-7d42-6181-9fdd-ccfe31dab1e2

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-05-02

Servers

- Sharkey v2025.2.3
- Hollo v0.5.6
- Mitra v4.1.1
- NodeBB v4.3.0
- Manyfold v0.109.0
- Pleroma ActivityRelay v0.3.5
- Gathio v1.5.2
- Misskey v2025.4.1
- gancio v1.26.0
- Iceshrimp v2023.12.14
- NeoDB v0.11.6.2
- Gush! v0.0.17
- Vernissage Server v1.11.0
- Images, profiles, and preferences (Ghost)
- BadgeFed: Early Decentralization Experiments + OpenBadges Export! - Second April 2025 Update
- PieFed development update Apr 2025 - S3, OAuth, Federation retry queue, Stripe
- Forgejo monthly update - April 2025
- places.pub: A service that makes OpenStreetMap geographical data available as ActivityPub objects

Clients

- Pachli v2.12.0
- Voyager v2.33.0
- Tesseract v1.4.38
- Blorp v1.2.5
- Interstellar v0.9.2
- PeerTube Mobile v1.0.1
- Phanpy changelog

For developers

- Masto.js v7.0.0
- FediAlgo v0.23.0
- apsig v0.5.2
- apkit: Powerful Toolkit for ActivityPub Implementations (Python)

Protocol

- ActivityPub/Primer/Inbox
- ActivityPub/Primer/Outbox
- ActivityPub/Primer/Activity Streams 2.0

Articles

- How I made a blog using Lemmy - a write-up
- Steps Forward in Long-form Text
- Does The Fediverse Need Influencers To Survive?
- Fediverse Report – #114

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01966ea0-7d42-6181-9fdd-ccfe31dab1e2

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

Early bits of of look how, I created one in one instance (verifiedby.maho.dev) for @lqdev and it got decentralized/federated to other instance (badges.vocalcat.com)

So, badges are coming to the .

In a technical note, I am using notes (so it gets published to mastodon), but adding the badge as "attachment" which is in the spec. Tried document type before, but it does not render in Mastodon. I am going to work in supporting openbadges as activitypub attachments as well, so you can bring your existing openbadges to the fediverse.

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

Early bits of of look how, I created one in one instance (verifiedby.maho.dev) for @lqdev and it got decentralized/federated to other instance (badges.vocalcat.com)

So, badges are coming to the .

In a technical note, I am using notes (so it gets published to mastodon), but adding the badge as "attachment" which is in the spec. Tried document type before, but it does not render in Mastodon. I am going to work in supporting openbadges as activitypub attachments as well, so you can bring your existing openbadges to the fediverse.

Dani(ela) :QueerCat_Lesbian:'s avatar
Dani(ela) :QueerCat_Lesbian:

@AnxiousBadger@tech.lgbt

Hey fedi, I need some help!

I am trying to connect an application I am making with the Fediverse. When I search for an actor I am successfully able to get to the profile (yay) but when I search for a post I cannot find it.

I am receiving the GET request and am sending the response with the content type ("application/activity+json") (for example):

{
"@context":"w3.org/ns/activitystreams",
"name":"New Note",
"type":"Note",
"id":"critters.jpleite.eu/posts/1",
"attributedTo":"critters.jpleite.eu/users/1",
"content":"Hello there!",
"to":[]
}

Why would Mastodon not display the post?
The on Mastodon’s side is returning 403 action not allowed.

Thank you

Dani(ela) :QueerCat_Lesbian:'s avatar
Dani(ela) :QueerCat_Lesbian:

@AnxiousBadger@tech.lgbt

Hey fedi, I need some help!

I am trying to connect an application I am making with the Fediverse. When I search for an actor I am successfully able to get to the profile (yay) but when I search for a post I cannot find it.

I am receiving the GET request and am sending the response with the content type ("application/activity+json") (for example):

{
"@context":"w3.org/ns/activitystreams",
"name":"New Note",
"type":"Note",
"id":"critters.jpleite.eu/posts/1",
"attributedTo":"critters.jpleite.eu/users/1",
"content":"Hello there!",
"to":[]
}

Why would Mastodon not display the post?
The on Mastodon’s side is returning 403 action not allowed.

Thank you

Nick Bohle 🇪🇺's avatar
Nick Bohle 🇪🇺

@NickBohle@mastodon.social · Reply to dansup's post

@dansup Found myself. So, federated (.org) blogs are included. 👍

Sreenshot:  FediDB
@ Home > Servers > nickbohle.de
ALT text detailsSreenshot: FediDB @ Home > Servers > nickbohle.de
Dani(ela) :QueerCat_Lesbian:'s avatar
Dani(ela) :QueerCat_Lesbian:

@AnxiousBadger@tech.lgbt

Hey fedi, I need some help!

I am trying to connect an application I am making with the Fediverse. When I search for an actor I am successfully able to get to the profile (yay) but when I search for a post I cannot find it.

I am receiving the GET request and am sending the response with the content type ("application/activity+json") (for example):

{
"@context":"w3.org/ns/activitystreams",
"name":"New Note",
"type":"Note",
"id":"critters.jpleite.eu/posts/1",
"attributedTo":"critters.jpleite.eu/users/1",
"content":"Hello there!",
"to":[]
}

Why would Mastodon not display the post?
The on Mastodon’s side is returning 403 action not allowed.

Thank you

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Today I learned that the fediverse platform Honk can import posts from a Mastodon, Twitter, or Instagram archive and backdate them appropriately. That's honkin' terrific!

humungus.tedunangst.com/r/honk

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Today I learned that the fediverse platform Honk can import posts from a Mastodon, Twitter, or Instagram archive and backdate them appropriately. That's honkin' terrific!

humungus.tedunangst.com/r/honk

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Today I learned that the fediverse platform Honk can import posts from a Mastodon, Twitter, or Instagram archive and backdate them appropriately. That's honkin' terrific!

humungus.tedunangst.com/r/honk

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Today I learned that the fediverse platform Honk can import posts from a Mastodon, Twitter, or Instagram archive and backdate them appropriately. That's honkin' terrific!

humungus.tedunangst.com/r/honk

xChaos's avatar
xChaos

@xChaos@f.cz

Discourse communities are online spaces that facilitate open collaboration and communication.
blog.discourse.org/2025/04/dis

xChaos's avatar
xChaos

@xChaos@f.cz

Discourse communities are online spaces that facilitate open collaboration and communication.
blog.discourse.org/2025/04/dis

DocYeet's avatar
DocYeet

@docyeet@halis.io

Question of the day, I have hosted on my halis.io domain, same for my instance, and it works without issues because one uses and the other

But, if I setup a instance on the same domain, as in without subdomain, it shouldn’t work, right ?

Would there be a way to converge both manyfold and mastodon under the same base domain ? Or do I have to use a subdomain for one ?

gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

My relay instance for the evolved in a great way - more than 120 instances are already connected to boost your posts across the Fediverse.

If you're running / , , or any other software on the protocol that supports relay instances - feel free to join the relay! Hopefully also supports relay services soon! Of course is supported (for IPV6 only instances).

fedi-relay.gyptazy.com

Screenshot of the overview page of fedi-relay.gyptazy.com showing more than 120 connected instances for a federated network within the Fediverse.
ALT text detailsScreenshot of the overview page of fedi-relay.gyptazy.com showing more than 120 connected instances for a federated network within the Fediverse.
gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

My relay instance for the evolved in a great way - more than 120 instances are already connected to boost your posts across the Fediverse.

If you're running / , , or any other software on the protocol that supports relay instances - feel free to join the relay! Hopefully also supports relay services soon! Of course is supported (for IPV6 only instances).

fedi-relay.gyptazy.com

Screenshot of the overview page of fedi-relay.gyptazy.com showing more than 120 connected instances for a federated network within the Fediverse.
ALT text detailsScreenshot of the overview page of fedi-relay.gyptazy.com showing more than 120 connected instances for a federated network within the Fediverse.
gyptazy's avatar
gyptazy

@gyptazy@gyptazy.com

My relay instance for the evolved in a great way - more than 120 instances are already connected to boost your posts across the Fediverse.

If you're running / , , or any other software on the protocol that supports relay instances - feel free to join the relay! Hopefully also supports relay services soon! Of course is supported (for IPV6 only instances).

fedi-relay.gyptazy.com

Screenshot of the overview page of fedi-relay.gyptazy.com showing more than 120 connected instances for a federated network within the Fediverse.
ALT text detailsScreenshot of the overview page of fedi-relay.gyptazy.com showing more than 120 connected instances for a federated network within the Fediverse.
Tim Chambers's avatar
Tim Chambers

@tchambers@indieweb.social

This seems like news (at least to me) ... From @Flipboard's
most recent video of @pcottle --

"Some people have seen [new integration] functionality in Brussels previewed....so hoping you will be excited later this year, 2025."

flipboard.video/w/xz9N4NPtHXdL

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

We’ve just uploaded a bunch of clips from @davidimel's Fediverse Corner panel at the Fediverse House at SXSW 2025, featuring @evan, @mmasnick and @pcottle

We know the sound is super rough 😅 but many of these snippets deserve to be heard. Thanks for bearing with us.
They talk about:

- Solving the cold start problem
- Taking control back from billionaires
- The deal with Threads’ federation
- Keeping vibes sacred (and whole)

flipboard.video/c/fediverse.ho

BeAware :fediverse:'s avatar
BeAware :fediverse:

@BeAware@mementomori.social

Threads changed it's terms of service, going into effect on May 28th.

It references "The Protocol" a LOT. In this case, it has to be the Fediverse.

More interoperability coming soon?🤔

help.instagram.com/76998365785

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Threads updated their terms of service. Lots of CYA when interacting with “the Protocol” which at this point in time, is ActivityPub. But it’s never named, and it’s noted that the protocol could change at anytime.

Important terms to review: protocol and third party *. Also that little sneaky point about needing to adhere to both Threads and Instagram’s ToS.

help.instagram.com/76998365785

silverpill's avatar
silverpill

@silverpill@mitra.social

ActivityPub object identifiers are not IRIs. They are URIs:

https://www.w3.org/TR/activitypub/#obj-id

Unicode characters are not allowed there.

#ActivityPub

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

We’ve uploaded more clips from the conversations at the Fediverse House last month at SXSW, including:

@jasonkoebler on the perils of building a business on rented land

@parkerortolani's recommendation to publishers who want to get started in the fediverse

Gina Michnowicz’s advice to brands curious about the space

@jlouderb's call to creators seeking autonomy

That about does it for our roundup from Austin. Hope you enjoyed these videos and felt inspired by these open social words of wisdom.

See them all...

Fediverse House: flipboard.video/c/fediverse.ho

Dot Social: flipboard.video/c/dot_social/v

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

We’ve uploaded more clips from the conversations at the Fediverse House last month at SXSW, including:

@jasonkoebler on the perils of building a business on rented land

@parkerortolani's recommendation to publishers who want to get started in the fediverse

Gina Michnowicz’s advice to brands curious about the space

@jlouderb's call to creators seeking autonomy

That about does it for our roundup from Austin. Hope you enjoyed these videos and felt inspired by these open social words of wisdom.

See them all...

Fediverse House: flipboard.video/c/fediverse.ho

Dot Social: flipboard.video/c/dot_social/v

silverpill's avatar
silverpill

@silverpill@mitra.social

ActivityPub object identifiers are not IRIs. They are URIs:

https://www.w3.org/TR/activitypub/#obj-id

Unicode characters are not allowed there.

#ActivityPub

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Threads updated their terms of service. Lots of CYA when interacting with “the Protocol” which at this point in time, is ActivityPub. But it’s never named, and it’s noted that the protocol could change at anytime.

Important terms to review: protocol and third party *. Also that little sneaky point about needing to adhere to both Threads and Instagram’s ToS.

help.instagram.com/76998365785

Johan van der Knijff's avatar
Johan van der Knijff

@bitsgalore@digipres.club

After almost 12 years I migrated my blog from Pages to @Codeberg.

I also added an -based comments system (which means you can now comment using your Mastodon account), and archived the legacy comments (which used Github issues).

This post gives some technical background info on how I did this, which might be useful for others who are thinking about moving their sites away from Github.

bitsgalore.org/2025/04/30/chan

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»‘TheTrillionDollarDinner.Gov’ Registered Around Time of Trump’s Pay-to-Play Memecoin Dinner Announcement« 404media.co/thetrilliondollard

BeAware :fediverse:'s avatar
BeAware :fediverse:

@BeAware@mementomori.social

Threads changed it's terms of service, going into effect on May 28th.

It references "The Protocol" a LOT. In this case, it has to be the Fediverse.

More interoperability coming soon?🤔

help.instagram.com/76998365785

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»‘TheTrillionDollarDinner.Gov’ Registered Around Time of Trump’s Pay-to-Play Memecoin Dinner Announcement« 404media.co/thetrilliondollard

Jeff Sikes's avatar
Jeff Sikes

@box464@mastodon.social

Threads updated their terms of service. Lots of CYA when interacting with “the Protocol” which at this point in time, is ActivityPub. But it’s never named, and it’s noted that the protocol could change at anytime.

Important terms to review: protocol and third party *. Also that little sneaky point about needing to adhere to both Threads and Instagram’s ToS.

help.instagram.com/76998365785

cyber4EDU e.V.'s avatar
cyber4EDU e.V.

@cyber4EDU@digitalcourage.social

Nächste Woche ist es soweit. Wir sind bei folgendem Workshop dabei:

"Das Fediverse und seine sozialen Medien"
📅 06. Mai 2025 | 14:30 Uhr bis 16:30 Uhr
💻 Online via BigBlueButton

Wir von @neuSoM @wikimediaDE @wechange @cyber4EDU @uniinnsbruck

laden euch ein zum ersten Teil aus der Workshopreihe
"Sovereign. Sustainable. Digital. Digitale Souveränität nachhaltig stärken."
der Community Nachhaltige Digitalisierung des @bmuv

🔁

Info zur Anmeldung im Thread ⬇️



Das Sharepic enthält: 
- Logos der Community Nachhaltige Digitalisierung und des Bundesministerium für Umwelt, Naturschutz, nukleare Sicherheit und Verbraucherschutz 
- Icons von diversen Fediverse-Diensten 
- Titel und Datum der Veranstaltung: Das Fediverse und soziale Medien, am 06. Mai 2025 | 14:30 bis 16:30 Uhr.
ALT text detailsDas Sharepic enthält: - Logos der Community Nachhaltige Digitalisierung und des Bundesministerium für Umwelt, Naturschutz, nukleare Sicherheit und Verbraucherschutz - Icons von diversen Fediverse-Diensten - Titel und Datum der Veranstaltung: Das Fediverse und soziale Medien, am 06. Mai 2025 | 14:30 bis 16:30 Uhr.
Bloodaxe's avatar
Bloodaxe

@bloodaxe@fosstodon.org

People of the , I need some .

I'm looking to either self-host (ideally) or rent some related services. Namely , and possible . As more or less of a noob on these things, where do I go to get started and to gather the basics of what I need?

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Strypey's post

@strypey @skyfaller @hugh @bob

I did not mention a thread. There are multiple discussions where various aspects were discussed, that might still be useful. The search facility is best way to find them.

As for AndStatus the github issue lists their step-by-step progress in investigating what was needed, and what the challenges were. One of them was unavailibility of appropriate server back-ends to test against, mentioned *at the time* as challenge.

Would ❤️ more C2S dev.

BeAware :fediverse:'s avatar
BeAware :fediverse:

@BeAware@mementomori.social

Threads changed it's terms of service, going into effect on May 28th.

It references "The Protocol" a LOT. In this case, it has to be the Fediverse.

More interoperability coming soon?🤔

help.instagram.com/76998365785

Bloodaxe's avatar
Bloodaxe

@bloodaxe@fosstodon.org

People of the , I need some .

I'm looking to either self-host (ideally) or rent some related services. Namely , and possible . As more or less of a noob on these things, where do I go to get started and to gather the basics of what I need?

Strypey's avatar
Strypey

@strypey@mastodon.nzoss.nz · Reply to just small circles 🕊's post

@smallcircles
> what is needed client-side can be found in the AndStatus project ... there were among others no server implementations to test against

Seems like Pleroma had it working before mid-2020;

pleroma.social/announcements/2

The Epicyon server has support for AP C2S too, so that could also be used to test apps trying to implement it;

libreserver.org/epicyon/

Was any of this mentioned in the SH thread?

@skyfaller @hugh
@bob

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Fediverse Report – #114« fediversereport.com/fediverse-

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
New release of (customizable for your timeline) has a couple of cool features:

1. Configuration presets (so you can easily put discussions or trending toots at the top of your without fiddling with the individual settings)

2. A "What's Trending" section that will show you the top trending hashtags, links, and posts scraped from 30 or so of the most popular Mastodon servers

All the old features like filtering for particular languages / hashtags / users or a minimum number of replies / boosts / etc. are still there.

* Usable demo: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Library: github.com/michelcrypt4d4mus/f

Symfony Station 🇺🇦🇨🇦🇬🇱's avatar
Symfony Station 🇺🇦🇨🇦🇬🇱

@SymfonyStation@drupal.community

Key learnings from building social apps with ActivityPods.
activitypods.org/key-learnings

Symfony Station 🇺🇦🇨🇦🇬🇱's avatar
Symfony Station 🇺🇦🇨🇦🇬🇱

@SymfonyStation@drupal.community

Key learnings from building social apps with ActivityPods.
activitypods.org/key-learnings

Fedizen Fediverse News's avatar
Fedizen Fediverse News

@fedizen@mastodon.social

»Fediverse Report – #114« fediversereport.com/fediverse-

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social · Reply to Sebastian Lasse's post

@smallcircles

we can also check online:

index
webfinger.net/lookup/?resource
feed
webfinger.net/lookup/?resource

resolve to the same Actor.

It would be cooler if it would just resolve both webfingers to 404media.co/.ghost/activitypub cause then we can JUST use "404media.co" without any handle bullshit too.
This is also how we'll do it in the Public Broadcasters Project, e.g. here also for the subdomains (special interest programmes like ZDF neo or arte)

@rysiek @index

GENKI's avatar
GENKI

@nibushibu@vivaldi.net

こんなのもあったのか

新時代の分散型SNS「Concrnt(コンカレント)」を始めよう!|akiRAM note.com/akiram_vr/n/nfe5419e4

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@_elena@mastodon.social · Reply to Elena Rossini ⁂'s post

Thank you so much for your enthusiasm! ❤️

So, following your encouragement, I will do weekly blog posts sharing a behind-the-scenes look at the making of my Fedi video(s).

My two amazing interns will be helping out for the next 8 weeks... and they know NOTHING about the Fediverse (we kept things this way so they'll look at the script with fresh eyes and provide feedback from the POV of our ideal audience).

Today I get to tell them about - exciteeed 🥰

Elias Mårtenson's avatar
Elias Mårtenson

@loke@functional.cafe

Does anyone know of a Common Lisp activitypub library that is complete enough to implement subscription to accounts, tracking subscribers and posting messages?

I want to build a small service which allows users to tag it in a message (or users can ask the serviceto subscribeto it, in which case it will absorb all mesaages), and conaume those messages, and then post updates to its main feed.

GENKI's avatar
GENKI

@nibushibu@vivaldi.net

こんなのもあったのか

新時代の分散型SNS「Concrnt(コンカレント)」を始めよう!|akiRAM note.com/akiram_vr/n/nfe5419e4

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

"The Good, the Bad and the Ugly" is a good article by @dominik

chrastecky.dev/technology/acti

The two mentioned examples in "The Bad" are long-time issues that were also discussed at . I just responded to one of them on the forum..

The Update(Note) quirk. socialhub.activitypub.rocks/t/

The other one is around Direct Messages which are a hack (a Note with special sauce). specifies ChatMessage object type here, which is the intended way to extend the protocol.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

"The Good, the Bad and the Ugly" is a good article by @dominik

chrastecky.dev/technology/acti

The two mentioned examples in "The Bad" are long-time issues that were also discussed at . I just responded to one of them on the forum..

The Update(Note) quirk. socialhub.activitypub.rocks/t/

The other one is around Direct Messages which are a hack (a Note with special sauce). specifies ChatMessage object type here, which is the intended way to extend the protocol.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

"The Good, the Bad and the Ugly" is a good article by @dominik

chrastecky.dev/technology/acti

The two mentioned examples in "The Bad" are long-time issues that were also discussed at . I just responded to one of them on the forum..

The Update(Note) quirk. socialhub.activitypub.rocks/t/

The other one is around Direct Messages which are a hack (a Note with special sauce). specifies ChatMessage object type here, which is the intended way to extend the protocol.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop · Reply to Nelson's post

@skyfaller @hugh

Also developer forum has a bunch of C2S-related topic. You can use the forum search facility.

socialhub.activitypub.rocks

A very detailed investigation on what is needed client-side can be found in the project. It was never completed AFAIK as there were among others no server implementations to test against.

github.com/andstatus/andstatus

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

We’ve just uploaded a bunch of clips from @davidimel's Fediverse Corner panel at the Fediverse House at SXSW 2025, featuring @evan, @mmasnick and @pcottle

We know the sound is super rough 😅 but many of these snippets deserve to be heard. Thanks for bearing with us.
They talk about:

- Solving the cold start problem
- Taking control back from billionaires
- The deal with Threads’ federation
- Keeping vibes sacred (and whole)

flipboard.video/c/fediverse.ho

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

We’ve just uploaded a bunch of clips from @davidimel's Fediverse Corner panel at the Fediverse House at SXSW 2025, featuring @evan, @mmasnick and @pcottle

We know the sound is super rough 😅 but many of these snippets deserve to be heard. Thanks for bearing with us.
They talk about:

- Solving the cold start problem
- Taking control back from billionaires
- The deal with Threads’ federation
- Keeping vibes sacred (and whole)

flipboard.video/c/fediverse.ho

Chris's avatar
Chris

@chrisafk@fosstodon.org

It would be really nice to be able to import/export word filters on . Not sure why this functionality isn't there. Perhaps a feature request is in order.

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

It would be great if the plugin supported moving topics to remote forums it federates with.

I wanted to transfer some topics with a bunch of posts to another discourse installation, but the procedure is quite involved. Not a simple export/import via the UI, unless I overlooked something.

socialhub.activitypub.rocks/t/

Elena Rossini ⁂'s avatar
Elena Rossini ⁂

@_elena@mastodon.social · Reply to Elena Rossini ⁂'s post

Thank you so much for your enthusiasm! ❤️

So, following your encouragement, I will do weekly blog posts sharing a behind-the-scenes look at the making of my Fedi video(s).

My two amazing interns will be helping out for the next 8 weeks... and they know NOTHING about the Fediverse (we kept things this way so they'll look at the script with fresh eyes and provide feedback from the POV of our ideal audience).

Today I get to tell them about - exciteeed 🥰

just small circles 🕊's avatar
just small circles 🕊

@smallcircles@social.coop

It would be great if the plugin supported moving topics to remote forums it federates with.

I wanted to transfer some topics with a bunch of posts to another discourse installation, but the procedure is quite involved. Not a simple export/import via the UI, unless I overlooked something.

socialhub.activitypub.rocks/t/

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

I need to test another feature of @badgefed@vocalcat.com who is available right now and wants a badge from @badgefed@badges.vocalcat.com ?

Help me test decentralized badges.

Chris's avatar
Chris

@chrisafk@fosstodon.org

It would be really nice to be able to import/export word filters on . Not sure why this functionality isn't there. Perhaps a feature request is in order.

Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

What to learn more about the and ? This tutorial (fedify.dev/tutorial/microblog) from @fedify is a really good starter. It explains how to implement a really simple server and see how communication exchange are done with AP.

https://fedify.dev/ website
ALT text detailshttps://fedify.dev/ website
https://github.com/fedify-dev/fedify
ALT text detailshttps://github.com/fedify-dev/fedify
Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

What to learn more about the and ? This tutorial (fedify.dev/tutorial/microblog) from @fedify is a really good starter. It explains how to implement a really simple server and see how communication exchange are done with AP.

https://fedify.dev/ website
ALT text detailshttps://fedify.dev/ website
https://github.com/fedify-dev/fedify
ALT text detailshttps://github.com/fedify-dev/fedify
Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

What to learn more about the and ? This tutorial (fedify.dev/tutorial/microblog) from @fedify is a really good starter. It explains how to implement a really simple server and see how communication exchange are done with AP.

https://fedify.dev/ website
ALT text detailshttps://fedify.dev/ website
https://github.com/fedify-dev/fedify
ALT text detailshttps://github.com/fedify-dev/fedify
Linux Is Best's avatar
Linux Is Best

@Linux@mk.absturztau.be

I know most people dislike AI on the Fediverse, but we really do need an AI on the Fediverse to deal with the spam problems.

I work for Meta, and do you think we spend all day, every day, removing spam?

NO. - We have an AI for that.

The only time I see spam is when someone appeals. You'd be surprised on how entitled people feel to post, junk. Beyond that, we mostly deal with normal junk, and spam is generally a low issue.

Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

What to learn more about the and ? This tutorial (fedify.dev/tutorial/microblog) from @fedify is a really good starter. It explains how to implement a really simple server and see how communication exchange are done with AP.

https://fedify.dev/ website
ALT text detailshttps://fedify.dev/ website
https://github.com/fedify-dev/fedify
ALT text detailshttps://github.com/fedify-dev/fedify
Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

What to learn more about the and ? This tutorial (fedify.dev/tutorial/microblog) from @fedify is a really good starter. It explains how to implement a really simple server and see how communication exchange are done with AP.

https://fedify.dev/ website
ALT text detailshttps://fedify.dev/ website
https://github.com/fedify-dev/fedify
ALT text detailshttps://github.com/fedify-dev/fedify
Ian Brown 👨🏻‍💻's avatar
Ian Brown 👨🏻‍💻

@1br0wn@eupolicy.social · Reply to Ian Brown 👨🏻‍💻's post

@ianbrown.tech Hi @pfefferle! Love love love your plugin for ! 😍

Any thoughts on this thread? Thanks! bsky.app/profile/did:plc:2cxgd

Apeironisim's avatar
Apeironisim

@AtomZ@m.cmx.im

大家好, 现在已经决定开源了,欢迎大家查看代码提交 PR。

Fread 经历了两年多的开发,从开始到现在一直免费使用,之前由于没考虑好到底是付费下载还是免费所以闭源,仓库里也有很多敏感数据一直没法开源,现在主要功能都开发的差不多了,也是时候开源出来了。

虽然这种项目大部分都是业务代码,但是 Fread 还是有些独特之处的,首先使用的是 Kotlin Multiplatform 和 Compose Multiplatform 做跨平台,目前像 Fread 这么复杂的产品使用这样技术栈的其实很少,并且这是比较新的技术,这点 Fread 有很多参考意义。
另外 Fread 因为要兼容多个社交平台以及混合 Feeds,所以架构设计上下了点功夫,目前可以从架构上兼容这些短博客协议。

总之,虽然确实希望通过 Fread 赚钱,但我更希望自己开发了这么久的 App 有更多的人使用和喜欢。

@board@ovo.st @board@2-5.cc @worldboard@ovo.st @worldboard@2-5.cc

github.com/0xZhangKe/Fread

Apeironisim's avatar
Apeironisim

@AtomZ@m.cmx.im

大家好, 现在已经决定开源了,欢迎大家查看代码提交 PR。

Fread 经历了两年多的开发,从开始到现在一直免费使用,之前由于没考虑好到底是付费下载还是免费所以闭源,仓库里也有很多敏感数据一直没法开源,现在主要功能都开发的差不多了,也是时候开源出来了。

虽然这种项目大部分都是业务代码,但是 Fread 还是有些独特之处的,首先使用的是 Kotlin Multiplatform 和 Compose Multiplatform 做跨平台,目前像 Fread 这么复杂的产品使用这样技术栈的其实很少,并且这是比较新的技术,这点 Fread 有很多参考意义。
另外 Fread 因为要兼容多个社交平台以及混合 Feeds,所以架构设计上下了点功夫,目前可以从架构上兼容这些短博客协议。

总之,虽然确实希望通过 Fread 赚钱,但我更希望自己开发了这么久的 App 有更多的人使用和喜欢。

@board@ovo.st @board@2-5.cc @worldboard@ovo.st @worldboard@2-5.cc

github.com/0xZhangKe/Fread

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io

I need to test another feature of @badgefed@vocalcat.com who is available right now and wants a badge from @badgefed@badges.vocalcat.com ?

Help me test decentralized badges.

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

A reply to a followers-only post should be addressed to the OP and the OP's followers, not to the replier's followers.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Want to build your own implementation, but don't know where to start? Read and follow 's official tutorial, Creating your own federated microblog, and get started!

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

A reply to a followers-only post should be addressed to the OP and the OP's followers, not to the replier's followers.

John Spurlock's avatar
John Spurlock

@js@podcastindex.social

👀 BrowserPub: A browser for exploring and the ⁂fediverse

browser.pub

Evan Prodromou's avatar
Evan Prodromou

@evan@cosocial.ca

A reply to a followers-only post should be addressed to the OP and the OP's followers, not to the replier's followers.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Want to build your own implementation, but don't know where to start? Read and follow 's official tutorial, Creating your own federated microblog, and get started!

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-25

Servers

- GoToSocial v0.19.0
- ActivityPub for WordPress v5.8.0
- NeoDB v0.11.6.0
- Vernissage Server v1.10.0
- NodeBB v4.2.2
- Custom usernames (Ghost)

Clients

- Fedilab v3.32.2
- Fread v1.3.1
- Voyager v2.31.0
- Blorp v1.1.0
- pl-fe changes summary

Tools and Plugins

- Fediphoto Lineage v7.5
- FediFetcher v7.1.16
- Enable Mastodon Apps v1.4.3 (WordPress plugin)

For developers

- BotKit v0.2.0

Protocol

- FEP-8a8e: A common approach to using the Event object type
- Activity Streams/Primer/Language mapping
- Activity Streams/Primer/Relationship type

Articles

- If I ran Mastodon
- How decentralized is the fediverse
- Fediverse Report – #113

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01964a3e-3eef-f858-31a1-b1385bd0971c

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Hello, I'm an open source software engineer in my late 30s living in , , and an avid advocate of and the .

I'm the creator of @fedify, an server framework in , @hollo, an ActivityPub-enabled microblogging software for single users, and @botkit, a simple ActivityPub bot framework.

I'm also very interested in East Asian languages (so-called ) and . Feel free to talk to me in , (), or (), or even in Literary Chinese (, )!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those skeptical of DMs in : I'm also considering an alternative verification approach using ActivityPub's Question feature. Instead of sending numeric codes, the system could send a poll with several emoji options, and the user would select the one that matches what's displayed on their login screen. This visual authentication method might offer better security against certain automated attacks while still leveraging federation rather than platform-specific APIs. Would this approach address some of the privacy concerns around DM-based verification?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

For those skeptical of DMs in : I'm also considering an alternative verification approach using ActivityPub's Question feature. Instead of sending numeric codes, the system could send a poll with several emoji options, and the user would select the one that matches what's displayed on their login screen. This visual authentication method might offer better security against certain automated attacks while still leveraging federation rather than platform-specific APIs. Would this approach address some of the privacy concerns around DM-based verification?

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I'm exploring a new idea called FediOTP (codename): an authentication system that uses DMs to deliver one-time passwords, allowing any account to authenticate with web services. Unlike current solutions that rely on specific APIs (, ), this would work with any ActivityPub-compatible server, increasing interoperability across the fediverse. Would love to hear your thoughts on potential challenges or use cases for this approach.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-25

Servers

- GoToSocial v0.19.0
- ActivityPub for WordPress v5.8.0
- NeoDB v0.11.6.0
- Vernissage Server v1.10.0
- NodeBB v4.2.2
- Custom usernames (Ghost)

Clients

- Fedilab v3.32.2
- Fread v1.3.1
- Voyager v2.31.0
- Blorp v1.1.0
- pl-fe changes summary

Tools and Plugins

- Fediphoto Lineage v7.5
- FediFetcher v7.1.16
- Enable Mastodon Apps v1.4.3 (WordPress plugin)

For developers

- BotKit v0.2.0

Protocol

- FEP-8a8e: A common approach to using the Event object type
- Activity Streams/Primer/Language mapping
- Activity Streams/Primer/Relationship type

Articles

- If I ran Mastodon
- How decentralized is the fediverse
- Fediverse Report – #113

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01964a3e-3eef-f858-31a1-b1385bd0971c

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-25

Servers

- GoToSocial v0.19.0
- ActivityPub for WordPress v5.8.0
- NeoDB v0.11.6.0
- Vernissage Server v1.10.0
- NodeBB v4.2.2
- Custom usernames (Ghost)

Clients

- Fedilab v3.32.2
- Fread v1.3.1
- Voyager v2.31.0
- Blorp v1.1.0
- pl-fe changes summary

Tools and Plugins

- Fediphoto Lineage v7.5
- FediFetcher v7.1.16
- Enable Mastodon Apps v1.4.3 (WordPress plugin)

For developers

- BotKit v0.2.0

Protocol

- FEP-8a8e: A common approach to using the Event object type
- Activity Streams/Primer/Language mapping
- Activity Streams/Primer/Relationship type

Articles

- If I ran Mastodon
- How decentralized is the fediverse
- Fediverse Report – #113

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01964a3e-3eef-f858-31a1-b1385bd0971c

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-25

Servers

- GoToSocial v0.19.0
- ActivityPub for WordPress v5.8.0
- NeoDB v0.11.6.0
- Vernissage Server v1.10.0
- NodeBB v4.2.2
- Custom usernames (Ghost)

Clients

- Fedilab v3.32.2
- Fread v1.3.1
- Voyager v2.31.0
- Blorp v1.1.0
- pl-fe changes summary

Tools and Plugins

- Fediphoto Lineage v7.5
- FediFetcher v7.1.16
- Enable Mastodon Apps v1.4.3 (WordPress plugin)

For developers

- BotKit v0.2.0

Protocol

- FEP-8a8e: A common approach to using the Event object type
- Activity Streams/Primer/Language mapping
- Activity Streams/Primer/Relationship type

Articles

- If I ran Mastodon
- How decentralized is the fediverse
- Fediverse Report – #113

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01964a3e-3eef-f858-31a1-b1385bd0971c

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-25

Servers

- GoToSocial v0.19.0
- ActivityPub for WordPress v5.8.0
- NeoDB v0.11.6.0
- Vernissage Server v1.10.0
- NodeBB v4.2.2
- Custom usernames (Ghost)

Clients

- Fedilab v3.32.2
- Fread v1.3.1
- Voyager v2.31.0
- Blorp v1.1.0
- pl-fe changes summary

Tools and Plugins

- Fediphoto Lineage v7.5
- FediFetcher v7.1.16
- Enable Mastodon Apps v1.4.3 (WordPress plugin)

For developers

- BotKit v0.2.0

Protocol

- FEP-8a8e: A common approach to using the Event object type
- Activity Streams/Primer/Language mapping
- Activity Streams/Primer/Relationship type

Articles

- If I ran Mastodon
- How decentralized is the fediverse
- Fediverse Report – #113

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01964a3e-3eef-f858-31a1-b1385bd0971c

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-25

Servers

- GoToSocial v0.19.0
- ActivityPub for WordPress v5.8.0
- NeoDB v0.11.6.0
- Vernissage Server v1.10.0
- NodeBB v4.2.2
- Custom usernames (Ghost)

Clients

- Fedilab v3.32.2
- Fread v1.3.1
- Voyager v2.31.0
- Blorp v1.1.0
- pl-fe changes summary

Tools and Plugins

- Fediphoto Lineage v7.5
- FediFetcher v7.1.16
- Enable Mastodon Apps v1.4.3 (WordPress plugin)

For developers

- BotKit v0.2.0

Protocol

- FEP-8a8e: A common approach to using the Event object type
- Activity Streams/Primer/Language mapping
- Activity Streams/Primer/Relationship type

Articles

- If I ran Mastodon
- How decentralized is the fediverse
- Fediverse Report – #113

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01964a3e-3eef-f858-31a1-b1385bd0971c

Fread's avatar
Fread

@fread@mastodon.social

Hello everyone, I am very happy to announce that after more than two years of development, has decided to open source. All the codes will be open. Welcome to check it out.
At present, the main technology stack of Fread is as follows: Kotlin Multiplatform, Compose Multiplatform, kotlin-inject, Voyager, Compose-imageloader, Jetpack Room, ktor.github.com/0xZhangKe/Fread#Mas

Fread's avatar
Fread

@fread@mastodon.social

Hello everyone, I am very happy to announce that after more than two years of development, has decided to open source. All the codes will be open. Welcome to check it out.
At present, the main technology stack of Fread is as follows: Kotlin Multiplatform, Compose Multiplatform, kotlin-inject, Voyager, Compose-imageloader, Jetpack Room, ktor.github.com/0xZhangKe/Fread#Mas

GENKI's avatar
GENKI

@nibushibu@vivaldi.net · Reply to GENKI's post

そもそも、分散化という意味では :mastodon: を比べるんじゃなくて、 :fediverse: をくらべるべきなのではという気もする。 の比較といったほうが良いかも。

:mastodon: の半分が最もメジャーなサーバー以外のサーバーに分散しているということは、 :fediverse: という単位でみたらもっと多くの割合が分散しているということになるはず :mastodon_mascot:

Nicolas Borboën's avatar
Nicolas Borboën

@nborboen@social.epfl.ch

What to learn more about the and ? This tutorial (fedify.dev/tutorial/microblog) from @fedify is a really good starter. It explains how to implement a really simple server and see how communication exchange are done with AP.

https://fedify.dev/ website
ALT text detailshttps://fedify.dev/ website
https://github.com/fedify-dev/fedify
ALT text detailshttps://github.com/fedify-dev/fedify
⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
New release of (customizable for your timeline) has a couple of cool features:

1. Configuration presets (so you can easily put discussions or trending toots at the top of your without fiddling with the individual settings)

2. A "What's Trending" section that will show you the top trending hashtags, links, and posts scraped from 30 or so of the most popular Mastodon servers

All the old features like filtering for particular languages / hashtags / users or a minimum number of replies / boosts / etc. are still there.

* Usable demo: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Library: github.com/michelcrypt4d4mus/f

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

もしかしたらご存じないかもしれませんが、Fedifyには DiscordとMatrixのコミュニティがあります。ここでは、サポートを受けたり、機能について議論したり、ActivityPubやフェデレーテッドソーシャルネットワークについて話し合うことができます。

お好みのコミュニティにご参加ください。どちらのチャンネルでも、Fedifyやフェデレーション関連のトピックについて活発な議論が行われています。

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

自分だけのActivityPubを作りたいけど、何から始めれば良いのか分からないですか?Fedifyの公式チュートリアル「自分だけのフェディバースのマイクロブログを作ろう!」を読んでみてください!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

자신만의 구현을 하고 싶지만, 어디서 시작해야 할지 모르겠나요? 공식 튜토리얼인 〈나만의 연합우주 마이크로블로그 만들기〉를 읽고 따라해 보세요!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

自分だけのActivityPubを作りたいけど、何から始めれば良いのか分からないですか?Fedifyの公式チュートリアル「自分だけのフェディバースのマイクロブログを作ろう!」を読んでみてください!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

자신만의 구현을 하고 싶지만, 어디서 시작해야 할지 모르겠나요? 공식 튜토리얼인 〈나만의 연합우주 마이크로블로그 만들기〉를 읽고 따라해 보세요!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

혹시 모르고 계셨다면, Fedify는 Discord와 Matrix 커뮤니티를 운영하고 있습니다. 이곳에서 도움을 받거나, 기능에 대해 논의하거나, ActivityPub와 연합 소셜 네트워크에 대해 대화를 나눌 수 있습니다.

여러분의 선호도에 따라 어느 커뮤니티든 참여해 주세요. 두 채널 모두 Fedify와 연합 관련 주제에 대한 활발한 논의가 이루어지고 있습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

もしかしたらご存じないかもしれませんが、Fedifyには DiscordとMatrixのコミュニティがあります。ここでは、サポートを受けたり、機能について議論したり、ActivityPubやフェデレーテッドソーシャルネットワークについて話し合うことができます。

お好みのコミュニティにご参加ください。どちらのチャンネルでも、Fedifyやフェデレーション関連のトピックについて活発な議論が行われています。

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

혹시 모르고 계셨다면, Fedify는 Discord와 Matrix 커뮤니티를 운영하고 있습니다. 이곳에서 도움을 받거나, 기능에 대해 논의하거나, ActivityPub와 연합 소셜 네트워크에 대해 대화를 나눌 수 있습니다.

여러분의 선호도에 따라 어느 커뮤니티든 참여해 주세요. 두 채널 모두 Fedify와 연합 관련 주제에 대한 활발한 논의가 이루어지고 있습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

もしかしたらご存じないかもしれませんが、Fedifyには DiscordとMatrixのコミュニティがあります。ここでは、サポートを受けたり、機能について議論したり、ActivityPubやフェデレーテッドソーシャルネットワークについて話し合うことができます。

お好みのコミュニティにご参加ください。どちらのチャンネルでも、Fedifyやフェデレーション関連のトピックについて活発な議論が行われています。

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

혹시 모르고 계셨다면, Fedify는 Discord와 Matrix 커뮤니티를 운영하고 있습니다. 이곳에서 도움을 받거나, 기능에 대해 논의하거나, ActivityPub와 연합 소셜 네트워크에 대해 대화를 나눌 수 있습니다.

여러분의 선호도에 따라 어느 커뮤니티든 참여해 주세요. 두 채널 모두 Fedify와 연합 관련 주제에 대한 활발한 논의가 이루어지고 있습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

自分だけのActivityPubを作りたいけど、何から始めれば良いのか分からないですか?Fedifyの公式チュートリアル「自分だけのフェディバースのマイクロブログを作ろう!」を読んでみてください!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

자신만의 구현을 하고 싶지만, 어디서 시작해야 할지 모르겠나요? 공식 튜토리얼인 〈나만의 연합우주 마이크로블로그 만들기〉를 읽고 따라해 보세요!

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
New release of (customizable for your timeline) has a couple of cool features:

1. Configuration presets (so you can easily put discussions or trending toots at the top of your without fiddling with the individual settings)

2. A "What's Trending" section that will show you the top trending hashtags, links, and posts scraped from 30 or so of the most popular Mastodon servers

All the old features like filtering for particular languages / hashtags / users or a minimum number of replies / boosts / etc. are still there.

* Usable demo: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Library: github.com/michelcrypt4d4mus/f

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
New release of (customizable for your timeline) has a couple of cool features:

1. Configuration presets (so you can easily put discussions or trending toots at the top of your without fiddling with the individual settings)

2. A "What's Trending" section that will show you the top trending hashtags, links, and posts scraped from 30 or so of the most popular Mastodon servers

All the old features like filtering for particular languages / hashtags / users or a minimum number of replies / boosts / etc. are still there.

* Usable demo: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Library: github.com/michelcrypt4d4mus/f

⚯ Michel de Cryptadamus ⚯'s avatar
⚯ Michel de Cryptadamus ⚯

@cryptadamist@universeodon.com

Ω🪬Ω
New release of (customizable for your timeline) has a couple of cool features:

1. Configuration presets (so you can easily put discussions or trending toots at the top of your without fiddling with the individual settings)

2. A "What's Trending" section that will show you the top trending hashtags, links, and posts scraped from 30 or so of the most popular Mastodon servers

All the old features like filtering for particular languages / hashtags / users or a minimum number of replies / boosts / etc. are still there.

* Usable demo: michelcrypt4d4mus.github.io/fe
* Code: github.com/michelcrypt4d4mus/f
* Library: github.com/michelcrypt4d4mus/f

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social · Reply to Konstantin Obenland's post

Another highlight from 5.8.0:
You can now embed any Fediverse post in the WordPress editor—even if it doesn’t support oEmbed! When no oEmbed handler is available, we automatically fall back to our custom embed view.

Basically: if it’s on the Fediverse, you can embed it. ✨

Screenshot of a Mobilizon event embedded in the WordPress editor, showing the fallback ActivityPub preview with event title, description, and author info.
ALT text detailsScreenshot of a Mobilizon event embedded in the WordPress editor, showing the fallback ActivityPub preview with event title, description, and author info.
Screenshot of a Pixelfed post embedded in the WordPress editor, showing the fallback ActivityPub preview with image, description, and author info
ALT text detailsScreenshot of a Pixelfed post embedded in the WordPress editor, showing the fallback ActivityPub preview with image, description, and author info
Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

ActivityPub 5.8.0 for WordPress is out now! 🎉

This update includes two things I’ve been especially excited about: new email templates and user-specific notification settings.

Emails now have way more information—mentions and direct messages embed the full post, and the refreshed design looks more modern and polished. New follower emails come with a profile card to help you get a sense of who’s engaging with your content.

👉 Full changelog: wordpress.org/plugins/activity

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social · Reply to Konstantin Obenland's post

Another highlight from 5.8.0:
You can now embed any Fediverse post in the WordPress editor—even if it doesn’t support oEmbed! When no oEmbed handler is available, we automatically fall back to our custom embed view.

Basically: if it’s on the Fediverse, you can embed it. ✨

Screenshot of a Mobilizon event embedded in the WordPress editor, showing the fallback ActivityPub preview with event title, description, and author info.
ALT text detailsScreenshot of a Mobilizon event embedded in the WordPress editor, showing the fallback ActivityPub preview with event title, description, and author info.
Screenshot of a Pixelfed post embedded in the WordPress editor, showing the fallback ActivityPub preview with image, description, and author info
ALT text detailsScreenshot of a Pixelfed post embedded in the WordPress editor, showing the fallback ActivityPub preview with image, description, and author info
Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

ActivityPub 5.8.0 for WordPress is out now! 🎉

This update includes two things I’ve been especially excited about: new email templates and user-specific notification settings.

Emails now have way more information—mentions and direct messages embed the full post, and the refreshed design looks more modern and polished. New follower emails come with a profile card to help you get a sense of who’s engaging with your content.

👉 Full changelog: wordpress.org/plugins/activity

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Want to build your own implementation, but don't know where to start? Read and follow 's official tutorial, Creating your own federated microblog, and get started!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Want to build your own implementation, but don't know where to start? Read and follow 's official tutorial, Creating your own federated microblog, and get started!

silverpill's avatar
silverpill

@silverpill@mitra.social

XQ

https://github.com/misskey-dev/xq

This must be a part of the plan to turn Misskey into proprietary silo. ATProto and Nostr creators at least tried to solve a real problem, but arguments for creating this protocol are incredibly weak:

>Messages are in plain JSON format, which is wasteful

Message size is not a bottleneck in Fediverse.

>Having schema definitions

https://json-schema.org/

>Statically-typed-language-friendly structure.

Skill issue. Many Fediverse projects use statically typed languages.

>Eliminate unnecessary data and boilerplate by focusing on microblogging for its intended use

There is no boilerplate other than @context. It can be dropped without making your implementation completely incompatible with everything else.

>Allows multiple messages to be combined into a single request to reduce overhead.

Use a different inbox that supports batching:

https://codeberg.org/fediverse/fep/src/branch/main/fep/0499/fep-0499.md

#ActivityPub #XQ

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social · Reply to Konstantin Obenland's post

Another highlight from 5.8.0:
You can now embed any Fediverse post in the WordPress editor—even if it doesn’t support oEmbed! When no oEmbed handler is available, we automatically fall back to our custom embed view.

Basically: if it’s on the Fediverse, you can embed it. ✨

Screenshot of a Mobilizon event embedded in the WordPress editor, showing the fallback ActivityPub preview with event title, description, and author info.
ALT text detailsScreenshot of a Mobilizon event embedded in the WordPress editor, showing the fallback ActivityPub preview with event title, description, and author info.
Screenshot of a Pixelfed post embedded in the WordPress editor, showing the fallback ActivityPub preview with image, description, and author info
ALT text detailsScreenshot of a Pixelfed post embedded in the WordPress editor, showing the fallback ActivityPub preview with image, description, and author info
Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

ActivityPub 5.8.0 for WordPress is out now! 🎉

This update includes two things I’ve been especially excited about: new email templates and user-specific notification settings.

Emails now have way more information—mentions and direct messages embed the full post, and the refreshed design looks more modern and polished. New follower emails come with a profile card to help you get a sense of who’s engaging with your content.

👉 Full changelog: wordpress.org/plugins/activity

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

📣 Exciting news! Fedify CLI is now available via Homebrew!

If you're using on macOS or on Linux, you can now install our CLI toolchain with a simple command:

brew install fedify

This makes it even easier to get started with building your federated server app. Try it out and let us know what you think!

silverpill's avatar
silverpill

@silverpill@mitra.social

XQ

https://github.com/misskey-dev/xq

This must be a part of the plan to turn Misskey into proprietary silo. ATProto and Nostr creators at least tried to solve a real problem, but arguments for creating this protocol are incredibly weak:

>Messages are in plain JSON format, which is wasteful

Message size is not a bottleneck in Fediverse.

>Having schema definitions

https://json-schema.org/

>Statically-typed-language-friendly structure.

Skill issue. Many Fediverse projects use statically typed languages.

>Eliminate unnecessary data and boilerplate by focusing on microblogging for its intended use

There is no boilerplate other than @context. It can be dropped without making your implementation completely incompatible with everything else.

>Allows multiple messages to be combined into a single request to reduce overhead.

Use a different inbox that supports batching:

https://codeberg.org/fediverse/fep/src/branch/main/fep/0499/fep-0499.md

#ActivityPub #XQ

Elena Rossini on GoToSocial ⁂'s avatar
Elena Rossini on GoToSocial ⁂

@elena@aseachange.com

🏕️ my adventures in #selfhosting - day 128 (a bit Clueless edition) 🎬​

Bonjour Fedi friends!

I'm having a really interesting week: 4 adult caretakers in a house with 3 little children... as I admitted to someone on here, self-hosting is FAR easier than being a referee in fights about LEGOs 😅​

Now, whenever the cousins are busy playing in the garden, I try to do a bit of work, namely: figuring out #PeerTube from the POV of a self-hoster.

Yesterday I finally understood how I could create a user account (other than "root" - the superuser created during the PeerTube installation).

Today I'm busy trying to solve another problem: how do you tell your followers you've moved to a new instance? Because yes, PeerTube is powered by #ActivityPub, but it doesn't support the MOVE function.

I rarely posted on my MakerTube account and only have 150 subscribers, who followed me when reading about it on my blog post about PeerTube.

But I have to admit, the whole "following" thing is really convoluted on PeerTube because you can follow an entire account or specific channels. And I'm a little lost regarding how I notify my followers about the change.

If you have any suggestions, I'm all ears!

Oh and some news for you first... here is my new PeerTube home: https://videos.elenarossini.com/a/ele/video-channels

Special thanks to :YunoHost:
@yunohost
for empowering me to set up my own instance ❤️​

#MySoCalledSudoLife #video

silverpill's avatar
silverpill

@silverpill@mitra.social

XQ

https://github.com/misskey-dev/xq

This must be a part of the plan to turn Misskey into proprietary silo. ATProto and Nostr creators at least tried to solve a real problem, but arguments for creating this protocol are incredibly weak:

>Messages are in plain JSON format, which is wasteful

Message size is not a bottleneck in Fediverse.

>Having schema definitions

https://json-schema.org/

>Statically-typed-language-friendly structure.

Skill issue. Many Fediverse projects use statically typed languages.

>Eliminate unnecessary data and boilerplate by focusing on microblogging for its intended use

There is no boilerplate other than @context. It can be dropped without making your implementation completely incompatible with everything else.

>Allows multiple messages to be combined into a single request to reduce overhead.

Use a different inbox that supports batching:

https://codeberg.org/fediverse/fep/src/branch/main/fep/0499/fep-0499.md

#ActivityPub #XQ

silverpill's avatar
silverpill

@silverpill@mitra.social

XQ

https://github.com/misskey-dev/xq

This must be a part of the plan to turn Misskey into proprietary silo. ATProto and Nostr creators at least tried to solve a real problem, but arguments for creating this protocol are incredibly weak:

>Messages are in plain JSON format, which is wasteful

Message size is not a bottleneck in Fediverse.

>Having schema definitions

https://json-schema.org/

>Statically-typed-language-friendly structure.

Skill issue. Many Fediverse projects use statically typed languages.

>Eliminate unnecessary data and boilerplate by focusing on microblogging for its intended use

There is no boilerplate other than @context. It can be dropped without making your implementation completely incompatible with everything else.

>Allows multiple messages to be combined into a single request to reduce overhead.

Use a different inbox that supports batching:

https://codeberg.org/fediverse/fep/src/branch/main/fep/0499/fep-0499.md

#ActivityPub #XQ

silverpill's avatar
silverpill

@silverpill@mitra.social

XQ

https://github.com/misskey-dev/xq

This must be a part of the plan to turn Misskey into proprietary silo. ATProto and Nostr creators at least tried to solve a real problem, but arguments for creating this protocol are incredibly weak:

>Messages are in plain JSON format, which is wasteful

Message size is not a bottleneck in Fediverse.

>Having schema definitions

https://json-schema.org/

>Statically-typed-language-friendly structure.

Skill issue. Many Fediverse projects use statically typed languages.

>Eliminate unnecessary data and boilerplate by focusing on microblogging for its intended use

There is no boilerplate other than @context. It can be dropped without making your implementation completely incompatible with everything else.

>Allows multiple messages to be combined into a single request to reduce overhead.

Use a different inbox that supports batching:

https://codeberg.org/fediverse/fep/src/branch/main/fep/0499/fep-0499.md

#ActivityPub #XQ

silverpill's avatar
silverpill

@silverpill@mitra.social

XQ

https://github.com/misskey-dev/xq

This must be a part of the plan to turn Misskey into proprietary silo. ATProto and Nostr creators at least tried to solve a real problem, but arguments for creating this protocol are incredibly weak:

>Messages are in plain JSON format, which is wasteful

Message size is not a bottleneck in Fediverse.

>Having schema definitions

https://json-schema.org/

>Statically-typed-language-friendly structure.

Skill issue. Many Fediverse projects use statically typed languages.

>Eliminate unnecessary data and boilerplate by focusing on microblogging for its intended use

There is no boilerplate other than @context. It can be dropped without making your implementation completely incompatible with everything else.

>Allows multiple messages to be combined into a single request to reduce overhead.

Use a different inbox that supports batching:

https://codeberg.org/fediverse/fep/src/branch/main/fep/0499/fep-0499.md

#ActivityPub #XQ

silverpill's avatar
silverpill

@silverpill@mitra.social

XQ

https://github.com/misskey-dev/xq

This must be a part of the plan to turn Misskey into proprietary silo. ATProto and Nostr creators at least tried to solve a real problem, but arguments for creating this protocol are incredibly weak:

>Messages are in plain JSON format, which is wasteful

Message size is not a bottleneck in Fediverse.

>Having schema definitions

https://json-schema.org/

>Statically-typed-language-friendly structure.

Skill issue. Many Fediverse projects use statically typed languages.

>Eliminate unnecessary data and boilerplate by focusing on microblogging for its intended use

There is no boilerplate other than @context. It can be dropped without making your implementation completely incompatible with everything else.

>Allows multiple messages to be combined into a single request to reduce overhead.

Use a different inbox that supports batching:

https://codeberg.org/fediverse/fep/src/branch/main/fep/0499/fep-0499.md

#ActivityPub #XQ

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

BotKit 0.2.0 릴리스

BotKit 0.2.0 버전이 릴리스되었습니다! BotKit을 처음 접하시는 분들을 위해 간단히 소개하자면, BotKit은 TypeScript로 개발된 독립형 봇 프레임워크입니다. Mastodon, Misskey 등 다양한 () 플랫폼과 상호작용할 수 있으며, 기존 플랫폼의 제약에서 벗어나 자유롭게 봇을 만들 수 있습니다.

이번 릴리스는 연합우주 봇 개발을 더 쉽고 강력하게 만들기 위한 여정에서 중요한 발걸음입니다. 커뮤니티에서 요청해 왔던 여러 기능들을 새롭게 선보입니다.

더 나은 봇 상호작용을 위한 여정

BotKit을 개발하면서 우리는 항상 봇이 더 표현력 있고 상호작용이 풍부하도록 만드는 데 집중해 왔습니다. 0.2.0 버전에서는 연합우주의 사회적 측면을 봇에 접목시켜 한 단계 더 발전시켰습니다.

커스텀 에모지로 봇의 개성 표현하기

가장 많이 요청받았던 기능 중 하나가 지원입니다. 이제 봇은 독특한 시각적 요소로 메시지를 돋보이게 하며 자신만의 개성을 표현할 수 있습니다.

// 봇의 커스텀 에모지 정의하기
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// 메시지에 커스텀 에모지 사용하기
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)}은 Fedify ${customEmoji(emojis.fedify)}의 지원을 받습니다`
);

이 새로운 API를 통해 다음과 같은 기능을 사용할 수 있습니다.

반응을 통한 소통

소통은 단순히 메시지를 게시하는 것만이 아닙니다. 다른 사람의 메시지에 반응하는 것도 중요합니다. 새로운 반응 시스템은 봇과 팔로워 사이에 자연스러운 상호작용 지점을 만들어 줍니다.

// 표준 유니코드 에모지로 메시지에 반응하기
await message.react(emoji`👍`);

// 또는 정의한 커스텀 에모지로 반응하기
await message.react(emojis.botkit);

// 반응을 인식하고 응답하는 봇 만들기
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`${reaction.actor}님, 제 메시지에 ${reaction.emoji} 반응을 남겨주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

이 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

  • Message.react()를 사용하여 유니코드 에모지로 메시지에 반응하기
  • 정의한 커스텀 에모지로 반응하기
  • Bot.onReactBot.onUnreact 핸들러로 반응 이벤트 처리하기

인용을 통한 대화

토론에서는 종종 다른 사람이 말한 내용을 참조해야 할 때가 있습니다. 새로운 기능은 더 응집력 있는 대화 스레드를 만들어 줍니다.

// 봇의 게시물에서 다른 메시지 인용하기
await session.publish(
  text`이 흥미로운 관점에 대한 답변입니다...`,
  { quoteTarget: originalMessage }
);

// 사용자가 봇의 메시지를 인용할 때 처리하기
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`${quoteMessage.actor}님, 제 생각을 공유해 주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

인용 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

시각적 개선

소통은 시각적인 요소도 중요하기 때문에 봇의 표현 방식을 개선했습니다.

  • 웹 인터페이스에서 이미지 첨부파일이 제대로 표시됩니다
  • 봇의 콘텐츠가 더 보기 좋아지고 풍부한 경험을 제공합니다

내부 개선: 향상된 액티비티 전파

연합우주에서 액티비티가 전파되는 방식도 개선했습니다.

  • 답글, 공유, 업데이트, 삭제의 더 정확한 전파
  • 원본 메시지 작성자에게 액티비티가 제대로 전송됩니다

이러한 개선 사항은 다양한 연합우주 플랫폼에서 봇의 상호작용이 일관되고 안정적으로 이루어지도록 보장합니다.

BotKit 0.2.0으로 첫 걸음 떼기

이러한 새로운 기능을 경험해 보고 싶으신가요? BotKit 0.2.0은 JSR에서 받을 수 있으며 간단한 명령어로 설치할 수 있습니다.

deno add jsr:@fedify/botkit@0.2.0

BotKit은 Temporal API(JavaScript에서 아직 시범적인 기능)를 사용하므로 deno.json에서 이를 활성화해야 합니다.

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

이 간단한 단계를 통해 최신 기능으로 연합우주 봇을 만들거나 업그레이드할 준비가 완료되었습니다.

앞으로의 전망

BotKit 0.2.0은 연합우주 봇 개발을 접근하기 쉽고, 강력하며, 즐겁게 만들기 위한 우리의 지속적인 노력을 보여줍니다. 이러한 새로운 기능들이 여러분의 봇이 연합우주 커뮤니티에서 더 매력적이고 상호작용이 풍부한 구성원이 되는 데 도움이 될 것이라고 믿습니다.

전체 문서와 더 많은 예제는 저희 문서 사이트에서 확인하실 수 있습니다.

피드백, 기능 요청, 코드 기여를 통해 이번 릴리스에 도움을 주신 모든 분들께 감사드립니다. BotKit 커뮤니티는 계속 성장하고 있으며, 여러분이 만들어낼 작품들을 기대합니다!


BotKit은 ActivityPub 서버 애플리케이션을 만들기 위한 하위 레벨 프레임워크인 Fedify의 지원을 받습니다.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

omi's avatar
omi

@omi_geek@mstdn.jp

@snaggen My concern during the account migration is that the original server is being used for redirection. Even if the migration is successful, I’m worried that if the original server were to disappear, my account might also vanish from the new server.

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Fighting words from @molly0xfff's opening talk at the Fediverse House at SXSW 2025:

“We're facing an existential threat. We need a web that serves people not profit, a web built on protocols, not platforms…It's being built right now by people like you in communities like this one.”

Thank you, developers and denizens of the open social web.🙏🏼

flipboard.video/w/p7cECAUgThGr

dansup's avatar
dansup

@dansup@mastodon.social

The new FediDB redesign is 🔥

Shipping soon!

The new fedidb, available soon where FediDBs are sold.
ALT text detailsThe new fedidb, available soon where FediDBs are sold.
Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Fighting words from @molly0xfff's opening talk at the Fediverse House at SXSW 2025:

“We're facing an existential threat. We need a web that serves people not profit, a web built on protocols, not platforms…It's being built right now by people like you in communities like this one.”

Thank you, developers and denizens of the open social web.🙏🏼

flipboard.video/w/p7cECAUgThGr

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Fighting words from @molly0xfff's opening talk at the Fediverse House at SXSW 2025:

“We're facing an existential threat. We need a web that serves people not profit, a web built on protocols, not platforms…It's being built right now by people like you in communities like this one.”

Thank you, developers and denizens of the open social web.🙏🏼

flipboard.video/w/p7cECAUgThGr

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Fighting words from @molly0xfff's opening talk at the Fediverse House at SXSW 2025:

“We're facing an existential threat. We need a web that serves people not profit, a web built on protocols, not platforms…It's being built right now by people like you in communities like this one.”

Thank you, developers and denizens of the open social web.🙏🏼

flipboard.video/w/p7cECAUgThGr

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

Fighting words from @molly0xfff's opening talk at the Fediverse House at SXSW 2025:

“We're facing an existential threat. We need a web that serves people not profit, a web built on protocols, not platforms…It's being built right now by people like you in communities like this one.”

Thank you, developers and denizens of the open social web.🙏🏼

flipboard.video/w/p7cECAUgThGr

dansup's avatar
dansup

@dansup@mastodon.social

The new FediDB redesign is 🔥

Shipping soon!

The new fedidb, available soon where FediDBs are sold.
ALT text detailsThe new fedidb, available soon where FediDBs are sold.
Ivan GJ's avatar
Ivan GJ

@ivangj@mastodon.social

Hey babe, wake up, there's a project to standardize links!

fedilinks.org/

Matthias Pfefferle's avatar
Matthias Pfefferle

@pfefferle@mastodon.social

have you had the chance to listen to the latest @dothewoo.io episode with the awesome @linos ?

we are talking about his work, bringing (WordPress) Events to the ♥️

this perfectly highlights the potential of a federated, self-hostable CMS.!!!

dothewoo.io/bring-federated-ev

Matthias Pfefferle's avatar
Matthias Pfefferle

@pfefferle@mastodon.social

have you had the chance to listen to the latest @dothewoo.io episode with the awesome @linos ?

we are talking about his work, bringing (WordPress) Events to the ♥️

this perfectly highlights the potential of a federated, self-hostable CMS.!!!

dothewoo.io/bring-federated-ev

dansup's avatar
dansup

@dansup@mastodon.social

The new FediDB redesign is 🔥

Shipping soon!

The new fedidb, available soon where FediDBs are sold.
ALT text detailsThe new fedidb, available soon where FediDBs are sold.
Fred Rocha's avatar
Fred Rocha

@john_fisherman@mastodon.social

The guys at Ghost are doing a great job baking into their core, and sharing the weekly exciting updates here:

@index

Give them a follow, they lost most of their followers recently due to a malfunctioning in the systems.

activitypub.ghost.org/you-thin

Fred Rocha's avatar
Fred Rocha

@john_fisherman@mastodon.social

The guys at Ghost are doing a great job baking into their core, and sharing the weekly exciting updates here:

@index

Give them a follow, they lost most of their followers recently due to a malfunctioning in the systems.

activitypub.ghost.org/you-thin

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

My stance on 's adoption of JSON-LD: Since we've already decided to use JSON-LD, I hope we do it properly. However, if we hadn't used JSON-LD from the beginning, things would have been much less complicated.

dansup's avatar
dansup

@dansup@mastodon.social

The new FediDB redesign is 🔥

Shipping soon!

The new fedidb, available soon where FediDBs are sold.
ALT text detailsThe new fedidb, available soon where FediDBs are sold.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

My stance on 's adoption of JSON-LD: Since we've already decided to use JSON-LD, I hope we do it properly. However, if we hadn't used JSON-LD from the beginning, things would have been much less complicated.

Marcus Rohrmoser 🌻's avatar
Marcus Rohrmoser 🌻

@mro@digitalcourage.social · Reply to Torsten :verified: :verified:'s post

Hi @tor @SheDrivesMobility,
Du meinst so wie 1x abschalten? Klar ginge das. Ist aber was anderes, als auf Zuruf einzelne Leute lassen.

Es gibt wohl niemanden, der alle laufenden Server zum Ausschalten kennt.

dansup's avatar
dansup

@dansup@mastodon.social

The new FediDB redesign is 🔥

Shipping soon!

The new fedidb, available soon where FediDBs are sold.
ALT text detailsThe new fedidb, available soon where FediDBs are sold.
洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

My stance on 's adoption of JSON-LD: Since we've already decided to use JSON-LD, I hope we do it properly. However, if we hadn't used JSON-LD from the beginning, things would have been much less complicated.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

My stance on 's adoption of JSON-LD: Since we've already decided to use JSON-LD, I hope we do it properly. However, if we hadn't used JSON-LD from the beginning, things would have been much less complicated.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

My stance on 's adoption of JSON-LD: Since we've already decided to use JSON-LD, I hope we do it properly. However, if we hadn't used JSON-LD from the beginning, things would have been much less complicated.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

wakest ⁂'s avatar
wakest ⁂

@liaizon@social.wake.st · Reply to wakest ⁂'s post

Flickr CEO Don MacAskill (@d0n) is currently running a poll to decide whether to add to :flickr: Flickr to join the (Mastodon, Pixelfed, Peertube, etc.)
Make your voice heard:
sfba.social/@d0n/1094226479952
Poll on Twitter too:
twitter.com/DonMacAskill/statu

Remember this has good and bad repercussions whether you use Flickr or not, it would be the first time an old giant joins us but also would bring many many new issues we would have to face together. Please boost for reach!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been reflecting lately on projects like @fedify, @hollo, and @botkit. Sometimes I wonder if I'm solving problems that very few people actually need solved. How many developers truly want to build their own server from scratch?

It feels a bit like inventing shoes that let people walk on their hands all day. Would there be a viable market? How many would actually buy them?

That's the sense I get with these projects. They do have users who find them tremendously valuable, but the total user base is inherently limited. The tools serve an important function for a small audience of specialized developers.

There are moments when my motivation wavers. When the user community consists of just a handful of enthusiastic supporters, it's sometimes difficult to maintain momentum and justify the ongoing investment of time and energy.

And yet, there's something meaningful about creating specialized tools that solve complex problems well, even if they're only used by a few. Perhaps that's enough.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

It was our honor to host the Fediverse House at SXSW 2025. It didn’t matter whether you were in the ActivityPub or AT Proto camp. We were all Team Fediverse, uniting to “move fast and break kings” in the name of building a better internet.

flipboard.video/w/1vjJdhLukXZg

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social · Reply to Flipboard's post

We’ll be sharing highlights all week on our social channels and at PeerTube, including fireside chats with @pluralistic and @pfrazee.com, clips from @davidimel's Fediverse Corner, and a panel about building communities on the social web featuring @andypiper. Thanks to all who joined us at !

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Frank Endrullat 🌻's avatar
Frank Endrullat 🌻

@FrankEndrullat@mastodon.social · Reply to Frank Endrullat 🌻's post

@omi_geek But also, my livelihood / income does not depend on my social media exposure / social media graph. For other people it may be different, and current may not be good enough. I can only comment for myself.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

Hey folks! We're excited to share a preview of a new API coming in 1.6 that should make structuring larger federated apps much cleaner: FederationBuilder.

As your Fedify applications grow, you might encounter circular dependency issues when registering dispatchers and listeners across multiple files. The new FederationBuilder pattern helps solve this by separating the configuration phase from instantiation.

Instead of this:

// federation.ts
import { createFederation } from "@fedify/fedify";

export const federation = createFederation<AppContext>({
  kv: new DbKvStore(), 
  queue: new RedisMessageQueue(),
  // Other options...
});

// Now we need to import this federation instance in other files
// to register dispatchers and listeners...

You can now do this:

// builder.ts
import { createFederationBuilder } from "@fedify/fedify";

export const builder = createFederationBuilder<AppContext>();

// other files can import and configure this builder...
// actors.ts
import { builder } from "./builder.ts";
import { Person } from "@fedify/fedify";

builder.setActorDispatcher("/users/{handle}", async (ctx, handle) => {
  // Actor implementation
});
// inbox.ts
import { builder } from "./builder.ts";
import { Follow } from "@fedify/fedify";

builder.setInboxListeners("/users/{handle}/inbox", "/inbox")
  .on(Follow, async (ctx, follow) => {
    // Follow handling
  });
// main.ts — Only create the Federation instance at startup
import { builder } from "./builder.ts";

// Build the Federation object with actual dependencies
export const federation = await builder.build({
  kv: new DbKvStore(),
  queue: new RedisMessageQueue(),
  // Other options...
});

This pattern helps avoid circular dependencies and makes your code more modular. Each part of your app can configure the builder without needing the actual Federation instance.

The full documentation will be available when 1.6 is released, but we wanted to share this early with our community. Looking forward to your feedback when it lands!

Want to try it right now? You can install the development version from JSR or npm:

# Deno
deno add jsr:@fedify/fedify@1.6.0-dev.777+1206cb01

# Node.js
npm add @fedify/fedify@1.6.0-dev.777

# Bun
bun add @fedify/fedify@1.6.0-dev.777

omi's avatar
omi

@omi_geek@mstdn.jp

I’ve heard that has shortcomings that prevent perfect account migration, but I don’t think moving accounts is that important. Whether you choose to stay grounded or live like a nomad is a personal choice.

Richie Khoo's avatar
Richie Khoo

@richiekhoo@hachyderm.io

As we consider ways to implement into our FOSS Community Calendar Ecosystem platform Koalagator, I've been looking over the differing specs for how to specify the event object schema.

Have any other folk wrestled with this?Asking before I get arms deep in this stuff.

For those playing at home...

---
Schema.org - Event

Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet.

schema.org/Event

-----
W3C Activity Vocabulary - Event

This specification describes the Activity vocabulary. It is intended to be used in the context of the ActivityStreams 2.0 format and provides a foundational vocabulary for activity structures, and specific activity types.

w3.org/TR/activitystreams-voca

----

Fediverse Enhancement Proposal
FEP-8a8e: A common approach to using the Event object type

ActivityStreams defines the Object Type Event. In real-world applications, the event object immediately showed the need for extension. Applications featuring Event objects have often chosen to add additional attributes and clarifications (i.e., interpretations) in order to implement their particular use case. This proposal clarifies and extends the ActivityPub standard to address the needs that have arisen in real-world implementations.

codeberg.org/linos/fep/src/bra

---

[HTML] Microformats - h-event

People are using microformats to mark up profiles, posts, events and other data on their personal sites, enabling developers to build applications which use this data in useful and interesting ways.

microformats.org/wiki/h-event

---

iCalendar Standard (RFC 5545)

iCalendar was first defined as a standard as RFC 2445 in 1998 by the Internet Engineering Task Force (IETF). Today, iCalendar is used to import and synchronize events on various platforms, including smart phones, computer and web applications.

icalendar.org/the-icalendar-st


洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been reflecting lately on projects like @fedify, @hollo, and @botkit. Sometimes I wonder if I'm solving problems that very few people actually need solved. How many developers truly want to build their own server from scratch?

It feels a bit like inventing shoes that let people walk on their hands all day. Would there be a viable market? How many would actually buy them?

That's the sense I get with these projects. They do have users who find them tremendously valuable, but the total user base is inherently limited. The tools serve an important function for a small audience of specialized developers.

There are moments when my motivation wavers. When the user community consists of just a handful of enthusiastic supporters, it's sometimes difficult to maintain momentum and justify the ongoing investment of time and energy.

And yet, there's something meaningful about creating specialized tools that solve complex problems well, even if they're only used by a few. Perhaps that's enough.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been reflecting lately on projects like @fedify, @hollo, and @botkit. Sometimes I wonder if I'm solving problems that very few people actually need solved. How many developers truly want to build their own server from scratch?

It feels a bit like inventing shoes that let people walk on their hands all day. Would there be a viable market? How many would actually buy them?

That's the sense I get with these projects. They do have users who find them tremendously valuable, but the total user base is inherently limited. The tools serve an important function for a small audience of specialized developers.

There are moments when my motivation wavers. When the user community consists of just a handful of enthusiastic supporters, it's sometimes difficult to maintain momentum and justify the ongoing investment of time and energy.

And yet, there's something meaningful about creating specialized tools that solve complex problems well, even if they're only used by a few. Perhaps that's enough.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been reflecting lately on projects like @fedify, @hollo, and @botkit. Sometimes I wonder if I'm solving problems that very few people actually need solved. How many developers truly want to build their own server from scratch?

It feels a bit like inventing shoes that let people walk on their hands all day. Would there be a viable market? How many would actually buy them?

That's the sense I get with these projects. They do have users who find them tremendously valuable, but the total user base is inherently limited. The tools serve an important function for a small audience of specialized developers.

There are moments when my motivation wavers. When the user community consists of just a handful of enthusiastic supporters, it's sometimes difficult to maintain momentum and justify the ongoing investment of time and energy.

And yet, there's something meaningful about creating specialized tools that solve complex problems well, even if they're only used by a few. Perhaps that's enough.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been reflecting lately on projects like @fedify, @hollo, and @botkit. Sometimes I wonder if I'm solving problems that very few people actually need solved. How many developers truly want to build their own server from scratch?

It feels a bit like inventing shoes that let people walk on their hands all day. Would there be a viable market? How many would actually buy them?

That's the sense I get with these projects. They do have users who find them tremendously valuable, but the total user base is inherently limited. The tools serve an important function for a small audience of specialized developers.

There are moments when my motivation wavers. When the user community consists of just a handful of enthusiastic supporters, it's sometimes difficult to maintain momentum and justify the ongoing investment of time and energy.

And yet, there's something meaningful about creating specialized tools that solve complex problems well, even if they're only used by a few. Perhaps that's enough.

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

It was our honor to host the Fediverse House at SXSW 2025. It didn’t matter whether you were in the ActivityPub or AT Proto camp. We were all Team Fediverse, uniting to “move fast and break kings” in the name of building a better internet.

flipboard.video/w/1vjJdhLukXZg

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

It was our honor to host the Fediverse House at SXSW 2025. It didn’t matter whether you were in the ActivityPub or AT Proto camp. We were all Team Fediverse, uniting to “move fast and break kings” in the name of building a better internet.

flipboard.video/w/1vjJdhLukXZg

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social · Reply to Flipboard's post

We’ll be sharing highlights all week on our social channels and at PeerTube, including fireside chats with @pluralistic and @pfrazee.com, clips from @davidimel's Fediverse Corner, and a panel about building communities on the social web featuring @andypiper. Thanks to all who joined us at !

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social · Reply to Flipboard's post

We’ll be sharing highlights all week on our social channels and at PeerTube, including fireside chats with @pluralistic and @pfrazee.com, clips from @davidimel's Fediverse Corner, and a panel about building communities on the social web featuring @andypiper. Thanks to all who joined us at !

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

It was our honor to host the Fediverse House at SXSW 2025. It didn’t matter whether you were in the ActivityPub or AT Proto camp. We were all Team Fediverse, uniting to “move fast and break kings” in the name of building a better internet.

flipboard.video/w/1vjJdhLukXZg

Elias Mårtenson's avatar
Elias Mårtenson

@loke@functional.cafe

Does anyone know of a Common Lisp activitypub library that is complete enough to implement subscription to accounts, tracking subscribers and posting messages?

I want to build a small service which allows users to tag it in a message (or users can ask the serviceto subscribeto it, in which case it will absorb all mesaages), and conaume those messages, and then post updates to its main feed.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

)用のボットを作りたいですか? by Fedifyを使えば、わずか数行のコードでスタンドアロンのActivityPubボットを構築できます!従来のMastodonやMisskeyボットとは異なり、BotKitはプラットフォームの制約なしに完全なActivityPubサーバーを作成できます。

BotKitでできること:

  • メンション、フォロー、メッセージに応答するボットの構築
  • 整形されたテキスト、メンション、メディアを含む豊かなコンテンツの作成
  • 予約投稿の公開と会話の自動管理
  • Deno Deploy、Docker、または自己ホスティングサーバーへの簡単なデプロイ

ドキュメントはhttps://botkit.fedify.dev/で確認し、今からフェディバースボットの構築を始めましょう!

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social · Reply to Flipboard's post

We’ll be sharing highlights all week on our social channels and at PeerTube, including fireside chats with @pluralistic and @pfrazee.com, clips from @davidimel's Fediverse Corner, and a panel about building communities on the social web featuring @andypiper. Thanks to all who joined us at !

Flipboard's avatar
Flipboard

@Flipboard@flipboard.social

It was our honor to host the Fediverse House at SXSW 2025. It didn’t matter whether you were in the ActivityPub or AT Proto camp. We were all Team Fediverse, uniting to “move fast and break kings” in the name of building a better internet.

flipboard.video/w/1vjJdhLukXZg

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-18

Servers

- Funkwhale v1.4.1
- Manyfold v0.108.0
- Mitra v4.0.0
- snac v2.75
- Bookwyrm v0.7.5
- Mbin v1.8.2
- Vernissage Server v1.9.0
- kmyblue v18.0
- Recapping your feedback (Ghost)

Clients

- Mastodon for Android v2.9.6
- Voyager v2.30.0
- Tesseract v1.4.37

Tools and Plugins

- Event Bridge for ActivityPub v1.1.0 (WordPress plugin)
- Enable Mastodon Apps v1.4.2 (WordPress plugin)

For developers

- Federails v0.6.2
- Ditch the DIY Drama: Why Use Fedify Instead of Building ActivityPub from Scratch?

Protocol

- FEP-4f05: Soft Deletion

Articles

- Integrating a News Publication Into the Fediverse
- Sustaining Decentralised Social Platforms: Analysing User Activity and Governance Structures on Mastodon
- Fediverse Report – #112

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196266f-f5d6-a460-90b7-b3a25e489ab3

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

BotKit 0.2.0 릴리스

BotKit 0.2.0 버전이 릴리스되었습니다! BotKit을 처음 접하시는 분들을 위해 간단히 소개하자면, BotKit은 TypeScript로 개발된 독립형 봇 프레임워크입니다. Mastodon, Misskey 등 다양한 () 플랫폼과 상호작용할 수 있으며, 기존 플랫폼의 제약에서 벗어나 자유롭게 봇을 만들 수 있습니다.

이번 릴리스는 연합우주 봇 개발을 더 쉽고 강력하게 만들기 위한 여정에서 중요한 발걸음입니다. 커뮤니티에서 요청해 왔던 여러 기능들을 새롭게 선보입니다.

더 나은 봇 상호작용을 위한 여정

BotKit을 개발하면서 우리는 항상 봇이 더 표현력 있고 상호작용이 풍부하도록 만드는 데 집중해 왔습니다. 0.2.0 버전에서는 연합우주의 사회적 측면을 봇에 접목시켜 한 단계 더 발전시켰습니다.

커스텀 에모지로 봇의 개성 표현하기

가장 많이 요청받았던 기능 중 하나가 지원입니다. 이제 봇은 독특한 시각적 요소로 메시지를 돋보이게 하며 자신만의 개성을 표현할 수 있습니다.

// 봇의 커스텀 에모지 정의하기
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// 메시지에 커스텀 에모지 사용하기
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)}은 Fedify ${customEmoji(emojis.fedify)}의 지원을 받습니다`
);

이 새로운 API를 통해 다음과 같은 기능을 사용할 수 있습니다.

반응을 통한 소통

소통은 단순히 메시지를 게시하는 것만이 아닙니다. 다른 사람의 메시지에 반응하는 것도 중요합니다. 새로운 반응 시스템은 봇과 팔로워 사이에 자연스러운 상호작용 지점을 만들어 줍니다.

// 표준 유니코드 에모지로 메시지에 반응하기
await message.react(emoji`👍`);

// 또는 정의한 커스텀 에모지로 반응하기
await message.react(emojis.botkit);

// 반응을 인식하고 응답하는 봇 만들기
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`${reaction.actor}님, 제 메시지에 ${reaction.emoji} 반응을 남겨주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

이 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

  • Message.react()를 사용하여 유니코드 에모지로 메시지에 반응하기
  • 정의한 커스텀 에모지로 반응하기
  • Bot.onReactBot.onUnreact 핸들러로 반응 이벤트 처리하기

인용을 통한 대화

토론에서는 종종 다른 사람이 말한 내용을 참조해야 할 때가 있습니다. 새로운 기능은 더 응집력 있는 대화 스레드를 만들어 줍니다.

// 봇의 게시물에서 다른 메시지 인용하기
await session.publish(
  text`이 흥미로운 관점에 대한 답변입니다...`,
  { quoteTarget: originalMessage }
);

// 사용자가 봇의 메시지를 인용할 때 처리하기
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`${quoteMessage.actor}님, 제 생각을 공유해 주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

인용 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

시각적 개선

소통은 시각적인 요소도 중요하기 때문에 봇의 표현 방식을 개선했습니다.

  • 웹 인터페이스에서 이미지 첨부파일이 제대로 표시됩니다
  • 봇의 콘텐츠가 더 보기 좋아지고 풍부한 경험을 제공합니다

내부 개선: 향상된 액티비티 전파

연합우주에서 액티비티가 전파되는 방식도 개선했습니다.

  • 답글, 공유, 업데이트, 삭제의 더 정확한 전파
  • 원본 메시지 작성자에게 액티비티가 제대로 전송됩니다

이러한 개선 사항은 다양한 연합우주 플랫폼에서 봇의 상호작용이 일관되고 안정적으로 이루어지도록 보장합니다.

BotKit 0.2.0으로 첫 걸음 떼기

이러한 새로운 기능을 경험해 보고 싶으신가요? BotKit 0.2.0은 JSR에서 받을 수 있으며 간단한 명령어로 설치할 수 있습니다.

deno add jsr:@fedify/botkit@0.2.0

BotKit은 Temporal API(JavaScript에서 아직 시범적인 기능)를 사용하므로 deno.json에서 이를 활성화해야 합니다.

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

이 간단한 단계를 통해 최신 기능으로 연합우주 봇을 만들거나 업그레이드할 준비가 완료되었습니다.

앞으로의 전망

BotKit 0.2.0은 연합우주 봇 개발을 접근하기 쉽고, 강력하며, 즐겁게 만들기 위한 우리의 지속적인 노력을 보여줍니다. 이러한 새로운 기능들이 여러분의 봇이 연합우주 커뮤니티에서 더 매력적이고 상호작용이 풍부한 구성원이 되는 데 도움이 될 것이라고 믿습니다.

전체 문서와 더 많은 예제는 저희 문서 사이트에서 확인하실 수 있습니다.

피드백, 기능 요청, 코드 기여를 통해 이번 릴리스에 도움을 주신 모든 분들께 감사드립니다. BotKit 커뮤니티는 계속 성장하고 있으며, 여러분이 만들어낼 작품들을 기대합니다!


BotKit은 ActivityPub 서버 애플리케이션을 만들기 위한 하위 레벨 프레임워크인 Fedify의 지원을 받습니다.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

In case you weren't aware, has both and communities where you can get help, discuss features, or just chat about and federated social networks.

Feel free to join either community based on your preference. Both channels have active discussions about Fedify and federation topics.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

BotKit 0.2.0 릴리스

BotKit 0.2.0 버전이 릴리스되었습니다! BotKit을 처음 접하시는 분들을 위해 간단히 소개하자면, BotKit은 TypeScript로 개발된 독립형 봇 프레임워크입니다. Mastodon, Misskey 등 다양한 () 플랫폼과 상호작용할 수 있으며, 기존 플랫폼의 제약에서 벗어나 자유롭게 봇을 만들 수 있습니다.

이번 릴리스는 연합우주 봇 개발을 더 쉽고 강력하게 만들기 위한 여정에서 중요한 발걸음입니다. 커뮤니티에서 요청해 왔던 여러 기능들을 새롭게 선보입니다.

더 나은 봇 상호작용을 위한 여정

BotKit을 개발하면서 우리는 항상 봇이 더 표현력 있고 상호작용이 풍부하도록 만드는 데 집중해 왔습니다. 0.2.0 버전에서는 연합우주의 사회적 측면을 봇에 접목시켜 한 단계 더 발전시켰습니다.

커스텀 에모지로 봇의 개성 표현하기

가장 많이 요청받았던 기능 중 하나가 지원입니다. 이제 봇은 독특한 시각적 요소로 메시지를 돋보이게 하며 자신만의 개성을 표현할 수 있습니다.

// 봇의 커스텀 에모지 정의하기
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// 메시지에 커스텀 에모지 사용하기
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)}은 Fedify ${customEmoji(emojis.fedify)}의 지원을 받습니다`
);

이 새로운 API를 통해 다음과 같은 기능을 사용할 수 있습니다.

반응을 통한 소통

소통은 단순히 메시지를 게시하는 것만이 아닙니다. 다른 사람의 메시지에 반응하는 것도 중요합니다. 새로운 반응 시스템은 봇과 팔로워 사이에 자연스러운 상호작용 지점을 만들어 줍니다.

// 표준 유니코드 에모지로 메시지에 반응하기
await message.react(emoji`👍`);

// 또는 정의한 커스텀 에모지로 반응하기
await message.react(emojis.botkit);

// 반응을 인식하고 응답하는 봇 만들기
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`${reaction.actor}님, 제 메시지에 ${reaction.emoji} 반응을 남겨주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

이 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

  • Message.react()를 사용하여 유니코드 에모지로 메시지에 반응하기
  • 정의한 커스텀 에모지로 반응하기
  • Bot.onReactBot.onUnreact 핸들러로 반응 이벤트 처리하기

인용을 통한 대화

토론에서는 종종 다른 사람이 말한 내용을 참조해야 할 때가 있습니다. 새로운 기능은 더 응집력 있는 대화 스레드를 만들어 줍니다.

// 봇의 게시물에서 다른 메시지 인용하기
await session.publish(
  text`이 흥미로운 관점에 대한 답변입니다...`,
  { quoteTarget: originalMessage }
);

// 사용자가 봇의 메시지를 인용할 때 처리하기
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`${quoteMessage.actor}님, 제 생각을 공유해 주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

인용 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

시각적 개선

소통은 시각적인 요소도 중요하기 때문에 봇의 표현 방식을 개선했습니다.

  • 웹 인터페이스에서 이미지 첨부파일이 제대로 표시됩니다
  • 봇의 콘텐츠가 더 보기 좋아지고 풍부한 경험을 제공합니다

내부 개선: 향상된 액티비티 전파

연합우주에서 액티비티가 전파되는 방식도 개선했습니다.

  • 답글, 공유, 업데이트, 삭제의 더 정확한 전파
  • 원본 메시지 작성자에게 액티비티가 제대로 전송됩니다

이러한 개선 사항은 다양한 연합우주 플랫폼에서 봇의 상호작용이 일관되고 안정적으로 이루어지도록 보장합니다.

BotKit 0.2.0으로 첫 걸음 떼기

이러한 새로운 기능을 경험해 보고 싶으신가요? BotKit 0.2.0은 JSR에서 받을 수 있으며 간단한 명령어로 설치할 수 있습니다.

deno add jsr:@fedify/botkit@0.2.0

BotKit은 Temporal API(JavaScript에서 아직 시범적인 기능)를 사용하므로 deno.json에서 이를 활성화해야 합니다.

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

이 간단한 단계를 통해 최신 기능으로 연합우주 봇을 만들거나 업그레이드할 준비가 완료되었습니다.

앞으로의 전망

BotKit 0.2.0은 연합우주 봇 개발을 접근하기 쉽고, 강력하며, 즐겁게 만들기 위한 우리의 지속적인 노력을 보여줍니다. 이러한 새로운 기능들이 여러분의 봇이 연합우주 커뮤니티에서 더 매력적이고 상호작용이 풍부한 구성원이 되는 데 도움이 될 것이라고 믿습니다.

전체 문서와 더 많은 예제는 저희 문서 사이트에서 확인하실 수 있습니다.

피드백, 기능 요청, 코드 기여를 통해 이번 릴리스에 도움을 주신 모든 분들께 감사드립니다. BotKit 커뮤니티는 계속 성장하고 있으며, 여러분이 만들어낼 작품들을 기대합니다!


BotKit은 ActivityPub 서버 애플리케이션을 만들기 위한 하위 레벨 프레임워크인 Fedify의 지원을 받습니다.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

BotKit 0.2.0 릴리스

BotKit 0.2.0 버전이 릴리스되었습니다! BotKit을 처음 접하시는 분들을 위해 간단히 소개하자면, BotKit은 TypeScript로 개발된 독립형 봇 프레임워크입니다. Mastodon, Misskey 등 다양한 () 플랫폼과 상호작용할 수 있으며, 기존 플랫폼의 제약에서 벗어나 자유롭게 봇을 만들 수 있습니다.

이번 릴리스는 연합우주 봇 개발을 더 쉽고 강력하게 만들기 위한 여정에서 중요한 발걸음입니다. 커뮤니티에서 요청해 왔던 여러 기능들을 새롭게 선보입니다.

더 나은 봇 상호작용을 위한 여정

BotKit을 개발하면서 우리는 항상 봇이 더 표현력 있고 상호작용이 풍부하도록 만드는 데 집중해 왔습니다. 0.2.0 버전에서는 연합우주의 사회적 측면을 봇에 접목시켜 한 단계 더 발전시켰습니다.

커스텀 에모지로 봇의 개성 표현하기

가장 많이 요청받았던 기능 중 하나가 지원입니다. 이제 봇은 독특한 시각적 요소로 메시지를 돋보이게 하며 자신만의 개성을 표현할 수 있습니다.

// 봇의 커스텀 에모지 정의하기
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// 메시지에 커스텀 에모지 사용하기
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)}은 Fedify ${customEmoji(emojis.fedify)}의 지원을 받습니다`
);

이 새로운 API를 통해 다음과 같은 기능을 사용할 수 있습니다.

반응을 통한 소통

소통은 단순히 메시지를 게시하는 것만이 아닙니다. 다른 사람의 메시지에 반응하는 것도 중요합니다. 새로운 반응 시스템은 봇과 팔로워 사이에 자연스러운 상호작용 지점을 만들어 줍니다.

// 표준 유니코드 에모지로 메시지에 반응하기
await message.react(emoji`👍`);

// 또는 정의한 커스텀 에모지로 반응하기
await message.react(emojis.botkit);

// 반응을 인식하고 응답하는 봇 만들기
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`${reaction.actor}님, 제 메시지에 ${reaction.emoji} 반응을 남겨주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

이 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

  • Message.react()를 사용하여 유니코드 에모지로 메시지에 반응하기
  • 정의한 커스텀 에모지로 반응하기
  • Bot.onReactBot.onUnreact 핸들러로 반응 이벤트 처리하기

인용을 통한 대화

토론에서는 종종 다른 사람이 말한 내용을 참조해야 할 때가 있습니다. 새로운 기능은 더 응집력 있는 대화 스레드를 만들어 줍니다.

// 봇의 게시물에서 다른 메시지 인용하기
await session.publish(
  text`이 흥미로운 관점에 대한 답변입니다...`,
  { quoteTarget: originalMessage }
);

// 사용자가 봇의 메시지를 인용할 때 처리하기
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`${quoteMessage.actor}님, 제 생각을 공유해 주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

인용 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

시각적 개선

소통은 시각적인 요소도 중요하기 때문에 봇의 표현 방식을 개선했습니다.

  • 웹 인터페이스에서 이미지 첨부파일이 제대로 표시됩니다
  • 봇의 콘텐츠가 더 보기 좋아지고 풍부한 경험을 제공합니다

내부 개선: 향상된 액티비티 전파

연합우주에서 액티비티가 전파되는 방식도 개선했습니다.

  • 답글, 공유, 업데이트, 삭제의 더 정확한 전파
  • 원본 메시지 작성자에게 액티비티가 제대로 전송됩니다

이러한 개선 사항은 다양한 연합우주 플랫폼에서 봇의 상호작용이 일관되고 안정적으로 이루어지도록 보장합니다.

BotKit 0.2.0으로 첫 걸음 떼기

이러한 새로운 기능을 경험해 보고 싶으신가요? BotKit 0.2.0은 JSR에서 받을 수 있으며 간단한 명령어로 설치할 수 있습니다.

deno add jsr:@fedify/botkit@0.2.0

BotKit은 Temporal API(JavaScript에서 아직 시범적인 기능)를 사용하므로 deno.json에서 이를 활성화해야 합니다.

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

이 간단한 단계를 통해 최신 기능으로 연합우주 봇을 만들거나 업그레이드할 준비가 완료되었습니다.

앞으로의 전망

BotKit 0.2.0은 연합우주 봇 개발을 접근하기 쉽고, 강력하며, 즐겁게 만들기 위한 우리의 지속적인 노력을 보여줍니다. 이러한 새로운 기능들이 여러분의 봇이 연합우주 커뮤니티에서 더 매력적이고 상호작용이 풍부한 구성원이 되는 데 도움이 될 것이라고 믿습니다.

전체 문서와 더 많은 예제는 저희 문서 사이트에서 확인하실 수 있습니다.

피드백, 기능 요청, 코드 기여를 통해 이번 릴리스에 도움을 주신 모든 분들께 감사드립니다. BotKit 커뮤니티는 계속 성장하고 있으며, 여러분이 만들어낼 작품들을 기대합니다!


BotKit은 ActivityPub 서버 애플리케이션을 만들기 위한 하위 레벨 프레임워크인 Fedify의 지원을 받습니다.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social · Reply to BotKit by Fedify :botkit:'s post

BotKit 0.2.0 릴리스

BotKit 0.2.0 버전이 릴리스되었습니다! BotKit을 처음 접하시는 분들을 위해 간단히 소개하자면, BotKit은 TypeScript로 개발된 독립형 봇 프레임워크입니다. Mastodon, Misskey 등 다양한 () 플랫폼과 상호작용할 수 있으며, 기존 플랫폼의 제약에서 벗어나 자유롭게 봇을 만들 수 있습니다.

이번 릴리스는 연합우주 봇 개발을 더 쉽고 강력하게 만들기 위한 여정에서 중요한 발걸음입니다. 커뮤니티에서 요청해 왔던 여러 기능들을 새롭게 선보입니다.

더 나은 봇 상호작용을 위한 여정

BotKit을 개발하면서 우리는 항상 봇이 더 표현력 있고 상호작용이 풍부하도록 만드는 데 집중해 왔습니다. 0.2.0 버전에서는 연합우주의 사회적 측면을 봇에 접목시켜 한 단계 더 발전시켰습니다.

커스텀 에모지로 봇의 개성 표현하기

가장 많이 요청받았던 기능 중 하나가 지원입니다. 이제 봇은 독특한 시각적 요소로 메시지를 돋보이게 하며 자신만의 개성을 표현할 수 있습니다.

// 봇의 커스텀 에모지 정의하기
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// 메시지에 커스텀 에모지 사용하기
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)}은 Fedify ${customEmoji(emojis.fedify)}의 지원을 받습니다`
);

이 새로운 API를 통해 다음과 같은 기능을 사용할 수 있습니다.

반응을 통한 소통

소통은 단순히 메시지를 게시하는 것만이 아닙니다. 다른 사람의 메시지에 반응하는 것도 중요합니다. 새로운 반응 시스템은 봇과 팔로워 사이에 자연스러운 상호작용 지점을 만들어 줍니다.

// 표준 유니코드 에모지로 메시지에 반응하기
await message.react(emoji`👍`);

// 또는 정의한 커스텀 에모지로 반응하기
await message.react(emojis.botkit);

// 반응을 인식하고 응답하는 봇 만들기
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`${reaction.actor}님, 제 메시지에 ${reaction.emoji} 반응을 남겨주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

이 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

  • Message.react()를 사용하여 유니코드 에모지로 메시지에 반응하기
  • 정의한 커스텀 에모지로 반응하기
  • Bot.onReactBot.onUnreact 핸들러로 반응 이벤트 처리하기

인용을 통한 대화

토론에서는 종종 다른 사람이 말한 내용을 참조해야 할 때가 있습니다. 새로운 기능은 더 응집력 있는 대화 스레드를 만들어 줍니다.

// 봇의 게시물에서 다른 메시지 인용하기
await session.publish(
  text`이 흥미로운 관점에 대한 답변입니다...`,
  { quoteTarget: originalMessage }
);

// 사용자가 봇의 메시지를 인용할 때 처리하기
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`${quoteMessage.actor}님, 제 생각을 공유해 주셔서 감사합니다!`,
    { visibility: "direct" }
  );
};

인용 기능을 통해 봇은 다음과 같은 작업을 수행할 수 있습니다.

시각적 개선

소통은 시각적인 요소도 중요하기 때문에 봇의 표현 방식을 개선했습니다.

  • 웹 인터페이스에서 이미지 첨부파일이 제대로 표시됩니다
  • 봇의 콘텐츠가 더 보기 좋아지고 풍부한 경험을 제공합니다

내부 개선: 향상된 액티비티 전파

연합우주에서 액티비티가 전파되는 방식도 개선했습니다.

  • 답글, 공유, 업데이트, 삭제의 더 정확한 전파
  • 원본 메시지 작성자에게 액티비티가 제대로 전송됩니다

이러한 개선 사항은 다양한 연합우주 플랫폼에서 봇의 상호작용이 일관되고 안정적으로 이루어지도록 보장합니다.

BotKit 0.2.0으로 첫 걸음 떼기

이러한 새로운 기능을 경험해 보고 싶으신가요? BotKit 0.2.0은 JSR에서 받을 수 있으며 간단한 명령어로 설치할 수 있습니다.

deno add jsr:@fedify/botkit@0.2.0

BotKit은 Temporal API(JavaScript에서 아직 시범적인 기능)를 사용하므로 deno.json에서 이를 활성화해야 합니다.

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

이 간단한 단계를 통해 최신 기능으로 연합우주 봇을 만들거나 업그레이드할 준비가 완료되었습니다.

앞으로의 전망

BotKit 0.2.0은 연합우주 봇 개발을 접근하기 쉽고, 강력하며, 즐겁게 만들기 위한 우리의 지속적인 노력을 보여줍니다. 이러한 새로운 기능들이 여러분의 봇이 연합우주 커뮤니티에서 더 매력적이고 상호작용이 풍부한 구성원이 되는 데 도움이 될 것이라고 믿습니다.

전체 문서와 더 많은 예제는 저희 문서 사이트에서 확인하실 수 있습니다.

피드백, 기능 요청, 코드 기여를 통해 이번 릴리스에 도움을 주신 모든 분들께 감사드립니다. BotKit 커뮤니티는 계속 성장하고 있으며, 여러분이 만들어낼 작품들을 기대합니다!


BotKit은 ActivityPub 서버 애플리케이션을 만들기 위한 하위 레벨 프레임워크인 Fedify의 지원을 받습니다.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

BotKit 0.2.0 Released

We're pleased to announce the release of BotKit 0.2.0! For those new to our project, is a framework for creating standalone bots that can interact with Mastodon, Misskey, and other platforms without the constraints of these existing platforms.

This release marks an important step in our journey to make fediverse bot development more accessible and powerful, introducing several features that our community has been requesting.

The Journey to Better Bot Interactions

In building BotKit, we've always focused on making bots more expressive and interactive. With version 0.2.0, we're taking this to the next level by bringing the social aspects of the fediverse to your bots.

Expressing Your Bot's Personality with Custom Emojis

One of the most requested features has been support. Now your bots can truly express their personality with unique visuals that make their messages stand out.

// Define custom emojis for your bot
const emojis = bot.addCustomEmojis({
  botkit: { 
    file: `${import.meta.dirname}/images/botkit.png`, 
    type: "image/png" 
  },
  fedify: { 
    url: "https://fedify.dev/logo.png", 
    type: "image/png" 
  }
});

// Use these custom emojis in your messages
await session.publish(
  text`BotKit ${customEmoji(emojis.botkit)} is powered by Fedify ${customEmoji(emojis.fedify)}`
);

With this new API, you can:

Engaging Through Reactions

Communication isn't just about posting messages—it's also about responding to others. The new reaction system creates natural interaction points between your bot and its followers:

// React to a message with a standard Unicode emoji
await message.react(emoji`👍`);

// Or use one of your custom emojis as a reaction
await message.react(emojis.botkit);

// Create a responsive bot that acknowledges reactions
bot.onReact = async (session, reaction) => {
  await session.publish(
    text`Thanks for reacting with ${reaction.emoji} to my message, ${reaction.actor}!`,
    { visibility: "direct" }
  );
};

This feature allows your bot to:

Conversations Through Quotes

Discussions often involve referencing what others have said. Our new support enables more cohesive conversation threads:

// Quote another message in your bot's post
await session.publish(
  text`Responding to this interesting point...`,
  { quoteTarget: originalMessage }
);

// Handle when users quote your bot's messages
bot.onQuote = async (session, quoteMessage) => {
  await session.publish(
    text`Thanks for sharing my thoughts, ${quoteMessage.actor}!`,
    { visibility: "direct" }
  );
};

With quote support, your bot can:

Visual Enhancements

Because communication is visual too, we've improved how your bot presents itself:

  • Image attachments now properly display in the web interface
  • Your bot's content looks better and provides a richer experience

Behind the Scenes: Enhanced Activity Propagation

We've also improved how activities propagate through the fediverse:

  • More precise propagation of replies, shares, updates, and deletes
  • Activities are now properly sent to the original message authors

These improvements ensure your bot's interactions are consistent and reliable across different fediverse platforms.

Taking Your First Steps with BotKit 0.2.0

Ready to experience these new features? BotKit 0.2.0 is available on JSR and can be installed with a simple command:

deno add jsr:@fedify/botkit@0.2.0

Since BotKit uses the Temporal API (which is still evolving in JavaScript), remember to enable it in your deno.json:

{
  "imports": {
    "@fedify/botkit": "jsr:@fedify/botkit@0.2.0"
  },
  "unstable": ["temporal"]
}

With these simple steps, you're ready to create or upgrade your fediverse bot with our latest features.

Looking Forward

BotKit 0.2.0 represents our ongoing commitment to making fediverse bot development accessible, powerful, and enjoyable. We believe these new features will help your bots become more engaging and interactive members of the fediverse community.

For complete docs and more examples, visit our docs site.

Thank you to everyone who contributed to this release through feedback, feature requests, and code contributions. The BotKit community continues to grow, and we're excited to see what you'll create!


BotKit is powered by Fedify, a lower-level framework for creating ActivityPub server applications.

Fread's avatar
Fread

@fread@mastodon.social

1.3.1 has been released, the release note is as follows:
1. Now supports mirror URLs🎉🎉🎉.
2. Interaction experience has been optimized.
3. A few bugs have been fixed.

play.google.com/store/apps/det

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

Coming soon in 0.2.0: Native post support!

We're excited to share a preview of the upcoming quoting features in BotKit 0.2.0. This update will make it easier for your bots to engage with quoted content across the fediverse.

The quoting feature set includes:

Here's a quick example of how you can use the quote detection:

bot.onQuote = async (session, quote) => {
  // The quote parameter is a Message object representing the post that quoted your bot
  await quote.reply(text`Thanks for quoting my post, ${quote.actor}!`);
  
  // You can access the original quoted message
  const originalPost = quote.quoteTarget;
  console.log(`Original message: ${originalPost?.text}`);
};

And creating quote posts is just as simple:

// Quote in a new post
await session.publish(
  text`I'm quoting this interesting message!`,
  { quoteTarget: someMessage }
);

// Or quote in a reply
await message.reply(
  text`Interesting point! I'm quoting another relevant post here.`,
  { quoteTarget: anotherMessage }
);

Remember that quoting behavior may vary across different implementations—some platforms like Misskey display quotes prominently, while others like Mastodon might implement them differently.

Want to try these features right now? You can install the development version from JSR:

deno add jsr:@fedify/botkit@0.2.0-dev.90+d6ab4bdc

We're looking forward to seeing how you use these quoting capabilities in your bots!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to introduce emoji reactions in the upcoming 0.2.0 release!

With the new Message.react() method, your bot can now react to messages using standard Unicode :

await message.react(emoji`👍`);

support is also included, allowing your bot to react with server-specific emojis:

const emojis = bot.addCustomEmojis({
  // Use a remote image URL:
  yesBlob: {
    url: "https://cdn3.emoji.gg/emojis/68238-yesblob.png",
    mediaType: "image/png",
  },
  // Use a local image file:
  noBlob: {
    file: `${import.meta.dirname}/emojis/no_blob.png`,
    mediaType: "image/webp",
  },
});

await message.react(emojis.yesBlob);

Reactions can be removed using the AuthorizedReaction.unreact() method:

const reaction = await message.react(emoji`❤️`);
await reaction.unreact();

Want to try these features now? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.84+c997c6a6

We're looking forward to seeing how your bots express themselves with this new feature!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

In case you weren't aware, has both and communities where you can get help, discuss features, or just chat about and federated social networks.

Feel free to join either community based on your preference. Both channels have active discussions about Fedify and federation topics.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-18

Servers

- Funkwhale v1.4.1
- Manyfold v0.108.0
- Mitra v4.0.0
- snac v2.75
- Bookwyrm v0.7.5
- Mbin v1.8.2
- Vernissage Server v1.9.0
- kmyblue v18.0
- Recapping your feedback (Ghost)

Clients

- Mastodon for Android v2.9.6
- Voyager v2.30.0
- Tesseract v1.4.37

Tools and Plugins

- Event Bridge for ActivityPub v1.1.0 (WordPress plugin)
- Enable Mastodon Apps v1.4.2 (WordPress plugin)

For developers

- Federails v0.6.2
- Ditch the DIY Drama: Why Use Fedify Instead of Building ActivityPub from Scratch?

Protocol

- FEP-4f05: Soft Deletion

Articles

- Integrating a News Publication Into the Fediverse
- Sustaining Decentralised Social Platforms: Analysing User Activity and Governance Structures on Mastodon
- Fediverse Report – #112

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196266f-f5d6-a460-90b7-b3a25e489ab3

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to introduce emoji reactions in the upcoming 0.2.0 release!

With the new Message.react() method, your bot can now react to messages using standard Unicode :

await message.react(emoji`👍`);

support is also included, allowing your bot to react with server-specific emojis:

const emojis = bot.addCustomEmojis({
  // Use a remote image URL:
  yesBlob: {
    url: "https://cdn3.emoji.gg/emojis/68238-yesblob.png",
    mediaType: "image/png",
  },
  // Use a local image file:
  noBlob: {
    file: `${import.meta.dirname}/emojis/no_blob.png`,
    mediaType: "image/webp",
  },
});

await message.react(emojis.yesBlob);

Reactions can be removed using the AuthorizedReaction.unreact() method:

const reaction = await message.react(emoji`❤️`);
await reaction.unreact();

Want to try these features now? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.84+c997c6a6

We're looking forward to seeing how your bots express themselves with this new feature!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

Sebastian Lasse's avatar
Sebastian Lasse

@sl007@digitalcourage.social · Reply to Michael Brandtner's post

@MBrandtner @anneroth

Danke.
Wollte diesen Thread als Anlaß nehmen, einige pinpoints für Entwickler*innen hierzulassen, wie föderierte algorithmische Timelines gelingen.

Wir beschreiben im Buch, bei UN und Public Spaces Talk (gepinnt) die Hintergründe und in youtube.com/live/Ieihyq3JbWs?t konkret, was wir machen.

Eine Grundlage für algorithmische Timeline wäre eine standardisierte Vegleichbarkeit von Inhalten.

Das wichtigste hierbei sind für uns eindeutige Links basierend auf wikidata, OSM und dem Restwissen der Welt.
Um z.B. meine Perle zu beschreiben, ist der primäre Link wikidata.org/wiki/Q1055 und ein eindeutiges as:Profile speichert die OSM Links und etliche andere.
Dies bedeutet gleichzeitig, das wir maschinenlesbar das Wissen haben, über was geredet wird und in allen Sprachen die Beschreibungen, Texte, commons etc.

Dann erweitern wir mit verschiedenen Indexes - z. B.
[ - Wo? }
location mit geohash, siehe github.com/w3c/activitystreams
Dann wissen wir Plätze innerhalb oder nah bei etc.

🧵 1/3

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to introduce emoji reactions in the upcoming 0.2.0 release!

With the new Message.react() method, your bot can now react to messages using standard Unicode :

await message.react(emoji`👍`);

support is also included, allowing your bot to react with server-specific emojis:

const emojis = bot.addCustomEmojis({
  // Use a remote image URL:
  yesBlob: {
    url: "https://cdn3.emoji.gg/emojis/68238-yesblob.png",
    mediaType: "image/png",
  },
  // Use a local image file:
  noBlob: {
    file: `${import.meta.dirname}/emojis/no_blob.png`,
    mediaType: "image/webp",
  },
});

await message.react(emojis.yesBlob);

Reactions can be removed using the AuthorizedReaction.unreact() method:

const reaction = await message.react(emoji`❤️`);
await reaction.unreact();

Want to try these features now? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.84+c997c6a6

We're looking forward to seeing how your bots express themselves with this new feature!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to introduce emoji reactions in the upcoming 0.2.0 release!

With the new Message.react() method, your bot can now react to messages using standard Unicode :

await message.react(emoji`👍`);

support is also included, allowing your bot to react with server-specific emojis:

const emojis = bot.addCustomEmojis({
  // Use a remote image URL:
  yesBlob: {
    url: "https://cdn3.emoji.gg/emojis/68238-yesblob.png",
    mediaType: "image/png",
  },
  // Use a local image file:
  noBlob: {
    file: `${import.meta.dirname}/emojis/no_blob.png`,
    mediaType: "image/webp",
  },
});

await message.react(emojis.yesBlob);

Reactions can be removed using the AuthorizedReaction.unreact() method:

const reaction = await message.react(emoji`❤️`);
await reaction.unreact();

Want to try these features now? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.84+c997c6a6

We're looking forward to seeing how your bots express themselves with this new feature!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to introduce emoji reactions in the upcoming 0.2.0 release!

With the new Message.react() method, your bot can now react to messages using standard Unicode :

await message.react(emoji`👍`);

support is also included, allowing your bot to react with server-specific emojis:

const emojis = bot.addCustomEmojis({
  // Use a remote image URL:
  yesBlob: {
    url: "https://cdn3.emoji.gg/emojis/68238-yesblob.png",
    mediaType: "image/png",
  },
  // Use a local image file:
  noBlob: {
    file: `${import.meta.dirname}/emojis/no_blob.png`,
    mediaType: "image/webp",
  },
});

await message.react(emojis.yesBlob);

Reactions can be removed using the AuthorizedReaction.unreact() method:

const reaction = await message.react(emoji`❤️`);
await reaction.unreact();

Want to try these features now? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.84+c997c6a6

We're looking forward to seeing how your bots express themselves with this new feature!

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to announce that 0.2.0 will introduce custom emoji support! This feature allows your bots to express themselves with more personality and engagement.

What's included:

  • Add custom emojis to your bot with Bot.addCustomEmojis()
  • Use emoji in messages with the customEmoji() function
  • Support for both local image files and remote URLs as emoji sources
  • Full integration with BotKit's text formatting system

Simple example:

// Define custom emojis
const emojis = bot.addCustomEmojis({
  botkit: { file: "./botkit.png", type: "image/png" },
  fedify: { url: "https://fedify.dev/logo.png", type: "image/png" }
});

// Use in messages
await session.publish(
  text`Hello world! ${customEmoji(emojis.botkit)}`
);

Want to try it early? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.82+8a0438e6

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to announce that 0.2.0 will introduce custom emoji support! This feature allows your bots to express themselves with more personality and engagement.

What's included:

  • Add custom emojis to your bot with Bot.addCustomEmojis()
  • Use emoji in messages with the customEmoji() function
  • Support for both local image files and remote URLs as emoji sources
  • Full integration with BotKit's text formatting system

Simple example:

// Define custom emojis
const emojis = bot.addCustomEmojis({
  botkit: { file: "./botkit.png", type: "image/png" },
  fedify: { url: "https://fedify.dev/logo.png", type: "image/png" }
});

// Use in messages
await session.publish(
  text`Hello world! ${customEmoji(emojis.botkit)}`
);

Want to try it early? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.82+8a0438e6

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to announce that 0.2.0 will introduce custom emoji support! This feature allows your bots to express themselves with more personality and engagement.

What's included:

  • Add custom emojis to your bot with Bot.addCustomEmojis()
  • Use emoji in messages with the customEmoji() function
  • Support for both local image files and remote URLs as emoji sources
  • Full integration with BotKit's text formatting system

Simple example:

// Define custom emojis
const emojis = bot.addCustomEmojis({
  botkit: { file: "./botkit.png", type: "image/png" },
  fedify: { url: "https://fedify.dev/logo.png", type: "image/png" }
});

// Use in messages
await session.publish(
  text`Hello world! ${customEmoji(emojis.botkit)}`
);

Want to try it early? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.82+8a0438e6

BotKit by Fedify :botkit:'s avatar
BotKit by Fedify :botkit:

@botkit@hollo.social

We're excited to announce that 0.2.0 will introduce custom emoji support! This feature allows your bots to express themselves with more personality and engagement.

What's included:

  • Add custom emojis to your bot with Bot.addCustomEmojis()
  • Use emoji in messages with the customEmoji() function
  • Support for both local image files and remote URLs as emoji sources
  • Full integration with BotKit's text formatting system

Simple example:

// Define custom emojis
const emojis = bot.addCustomEmojis({
  botkit: { file: "./botkit.png", type: "image/png" },
  fedify: { url: "https://fedify.dev/logo.png", type: "image/png" }
});

// Use in messages
await session.publish(
  text`Hello world! ${customEmoji(emojis.botkit)}`
);

Want to try it early? You can install the development version from JSR today:

deno add jsr:@fedify/botkit@0.2.0-dev.82+8a0438e6

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

In case you weren't aware, has both and communities where you can get help, discuss features, or just chat about and federated social networks.

Feel free to join either community based on your preference. Both channels have active discussions about Fedify and federation topics.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

もしかしたらご存じないかもしれませんが、Fedifyには DiscordとMatrixのコミュニティがあります。ここでは、サポートを受けたり、機能について議論したり、ActivityPubやフェデレーテッドソーシャルネットワークについて話し合うことができます。

お好みのコミュニティにご参加ください。どちらのチャンネルでも、Fedifyやフェデレーション関連のトピックについて活発な議論が行われています。

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

In case you weren't aware, has both and communities where you can get help, discuss features, or just chat about and federated social networks.

Feel free to join either community based on your preference. Both channels have active discussions about Fedify and federation topics.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

もしかしたらご存じないかもしれませんが、Fedifyには DiscordとMatrixのコミュニティがあります。ここでは、サポートを受けたり、機能について議論したり、ActivityPubやフェデレーテッドソーシャルネットワークについて話し合うことができます。

お好みのコミュニティにご参加ください。どちらのチャンネルでも、Fedifyやフェデレーション関連のトピックについて活発な議論が行われています。

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

In case you weren't aware, has both and communities where you can get help, discuss features, or just chat about and federated social networks.

Feel free to join either community based on your preference. Both channels have active discussions about Fedify and federation topics.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

もしかしたらご存じないかもしれませんが、Fedifyには DiscordとMatrixのコミュニティがあります。ここでは、サポートを受けたり、機能について議論したり、ActivityPubやフェデレーテッドソーシャルネットワークについて話し合うことができます。

お好みのコミュニティにご参加ください。どちらのチャンネルでも、Fedifyやフェデレーション関連のトピックについて活発な議論が行われています。

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social · Reply to Fedify: an ActivityPub server framework's post

혹시 모르고 계셨다면, Fedify는 Discord와 Matrix 커뮤니티를 운영하고 있습니다. 이곳에서 도움을 받거나, 기능에 대해 논의하거나, ActivityPub와 연합 소셜 네트워크에 대해 대화를 나눌 수 있습니다.

여러분의 선호도에 따라 어느 커뮤니티든 참여해 주세요. 두 채널 모두 Fedify와 연합 관련 주제에 대한 활발한 논의가 이루어지고 있습니다.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

In case you weren't aware, has both and communities where you can get help, discuss features, or just chat about and federated social networks.

Feel free to join either community based on your preference. Both channels have active discussions about Fedify and federation topics.

Fedify: an ActivityPub server framework's avatar
Fedify: an ActivityPub server framework

@fedify@hollo.social

In case you weren't aware, has both and communities where you can get help, discuss features, or just chat about and federated social networks.

Feel free to join either community based on your preference. Both channels have active discussions about Fedify and federation topics.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

As someone who has developed several software implementations (Fedify, Hollo, BotKit, and Hackers' Pub), I believe one of the most frustrating features to implement in the is .

The challenges are numerous:

First, there's no standardization. ActivityPub specifications don't define how custom emoji should work, leading to inconsistent implementations across different servers like Mastodon and Misskey.

Rendering is particularly problematic. Emojis must display properly across different contexts (in text, as reactions, in emoji pickers) while maintaining quality at various sizes. Animated emojis add another layer of complexity.

Perhaps most concerning is the poor . Most implementations simply use the emoji code (like :party_blob:) as the alt text, which provides no meaningful information to screen reader users (in particular, non-English speakers) about what the emoji actually depicts or means.

What really dampens my motivation to implement this feature is knowing I'm investing significant effort into something that ultimately creates accessibility barriers. It's disheartening to work hard on a feature that excludes part of the community.

Charlie O’Hara's avatar
Charlie O’Hara

@awfulwoman@indieweb.social · Reply to Charlie O’Hara's post

I can go and write a malicious client right now and go and read your follower-only messages. That’s beyond fucked up.

Charlie O’Hara's avatar
Charlie O’Hara

@awfulwoman@indieweb.social · Reply to Charlie O’Hara's post

I’m honestly agog that the whole privacy thing is based on trust between instances, and not, LET’S SAY, cryptography. 😱

Charlie O’Hara's avatar
Charlie O’Hara

@awfulwoman@indieweb.social

Upon reading more about the Puxelfed follower bug - and realising it’s a fundamental problem with the ActivityPub protocol - I can’t see much point in staying follower-only on Mastodon. I’ll go public and just keep my mouth shut about anything even vaguely related to work.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-18

Servers

- Funkwhale v1.4.1
- Manyfold v0.108.0
- Mitra v4.0.0
- snac v2.75
- Bookwyrm v0.7.5
- Mbin v1.8.2
- Vernissage Server v1.9.0
- kmyblue v18.0
- Recapping your feedback (Ghost)

Clients

- Mastodon for Android v2.9.6
- Voyager v2.30.0
- Tesseract v1.4.37

Tools and Plugins

- Event Bridge for ActivityPub v1.1.0 (WordPress plugin)
- Enable Mastodon Apps v1.4.2 (WordPress plugin)

For developers

- Federails v0.6.2
- Ditch the DIY Drama: Why Use Fedify Instead of Building ActivityPub from Scratch?

Protocol

- FEP-4f05: Soft Deletion

Articles

- Integrating a News Publication Into the Fediverse
- Sustaining Decentralised Social Platforms: Analysing User Activity and Governance Structures on Mastodon
- Fediverse Report – #112

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196266f-f5d6-a460-90b7-b3a25e489ab3

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-18

Servers

- Funkwhale v1.4.1
- Manyfold v0.108.0
- Mitra v4.0.0
- snac v2.75
- Bookwyrm v0.7.5
- Mbin v1.8.2
- Vernissage Server v1.9.0
- kmyblue v18.0
- Recapping your feedback (Ghost)

Clients

- Mastodon for Android v2.9.6
- Voyager v2.30.0
- Tesseract v1.4.37

Tools and Plugins

- Event Bridge for ActivityPub v1.1.0 (WordPress plugin)
- Enable Mastodon Apps v1.4.2 (WordPress plugin)

For developers

- Federails v0.6.2
- Ditch the DIY Drama: Why Use Fedify Instead of Building ActivityPub from Scratch?

Protocol

- FEP-4f05: Soft Deletion

Articles

- Integrating a News Publication Into the Fediverse
- Sustaining Decentralised Social Platforms: Analysing User Activity and Governance Structures on Mastodon
- Fediverse Report – #112

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196266f-f5d6-a460-90b7-b3a25e489ab3

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-18

Servers

- Funkwhale v1.4.1
- Manyfold v0.108.0
- Mitra v4.0.0
- snac v2.75
- Bookwyrm v0.7.5
- Mbin v1.8.2
- Vernissage Server v1.9.0
- kmyblue v18.0
- Recapping your feedback (Ghost)

Clients

- Mastodon for Android v2.9.6
- Voyager v2.30.0
- Tesseract v1.4.37

Tools and Plugins

- Event Bridge for ActivityPub v1.1.0 (WordPress plugin)
- Enable Mastodon Apps v1.4.2 (WordPress plugin)

For developers

- Federails v0.6.2
- Ditch the DIY Drama: Why Use Fedify Instead of Building ActivityPub from Scratch?

Protocol

- FEP-4f05: Soft Deletion

Articles

- Integrating a News Publication Into the Fediverse
- Sustaining Decentralised Social Platforms: Analysing User Activity and Governance Structures on Mastodon
- Fediverse Report – #112

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/0196266f-f5d6-a460-90b7-b3a25e489ab3

Jay 🆘's avatar
Jay 🆘

@jsit@social.coop

Wow, is using "Mobilizon," an -federated events platform. I didn't know this existed but it's so cool that it does! mobilizon.org

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

Jay 🆘's avatar
Jay 🆘

@jsit@social.coop

Wow, is using "Mobilizon," an -federated events platform. I didn't know this existed but it's so cool that it does! mobilizon.org

Yogthos's avatar
Yogthos

@yogthos@social.marxist.network

Both Mastodon and Bluesky offer decentralized alternatives, but only one puts users first. While Bluesky’s VC-backed model serves shareholder interests, Mastodon’s nonprofit structure safeguards a truly open internet. The future of social media shouldn’t be for sale.

phillipjreese.com/the-social-n

Yogthos's avatar
Yogthos

@yogthos@social.marxist.network

Both Mastodon and Bluesky offer decentralized alternatives, but only one puts users first. While Bluesky’s VC-backed model serves shareholder interests, Mastodon’s nonprofit structure safeguards a truly open internet. The future of social media shouldn’t be for sale.

phillipjreese.com/the-social-n

Yogthos's avatar
Yogthos

@yogthos@social.marxist.network

Both Mastodon and Bluesky offer decentralized alternatives, but only one puts users first. While Bluesky’s VC-backed model serves shareholder interests, Mastodon’s nonprofit structure safeguards a truly open internet. The future of social media shouldn’t be for sale.

phillipjreese.com/the-social-n

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

I've been considering what to add in the next version of BotKit (v0.2.0) and wanted to share my current plans. After reviewing feedback and examining the ecosystem, I've identified three key features that would significantly enhance the framework's capabilities:

  1. Custom emoji support. This would allow bots to use server-defined custom emojis in their messages, making communication more expressive and allowing better integration with instance culture.

  2. Emoji reactions. I plan to implement both sending and receiving emoji reactions to messages. This provides a lightweight interaction model that many users prefer for simple acknowledgments or responses. This would manifest as new event handlers (like Bot.onReaction) and methods (like Message.react()).

  3. Quote posts. The ability to reference other posts with commentary is an important discourse feature in the fediverse. Supporting both sending quotes and detecting when bot posts have been quoted would enable more sophisticated conversational patterns.

These additions should make more capable while maintaining its simple, developer-friendly API. I expect implementation to involve extending the Message class and adding new Text processing capabilities, all while keeping backward compatibility with existing bots. Having built both Hollo and Hackers' Pub, I already have deep familiarity with how various ActivityPub implementations handle these features across the fediverse. I welcome any community feedback on priorities or implementation details before I begin coding.

Bob Dendry's avatar
Bob Dendry

@BobDendry@masto.fediverse.games

Another cool ActivityPub project I came across today - BadgeFed.

From the point of view of your regular Fediverse instance - I could foresee this being used to recognise members for financial contributions, being moderators, Creating x number of Peertube videos, y posts on Mastodon, winning community contests, stuff like that. Really cool and I will definitely look into this further a bit further down the line.

Maho Pacheco 🦝🍻's avatar
Maho Pacheco 🦝🍻

@mapache@hachyderm.io · Reply to Maho Pacheco 🦝🍻's post

well, it worked

Liam :partyparrot:'s avatar
Liam :partyparrot:

@liachra@mastodon.au · Reply to Osma A 🇫🇮🇺🇦's post

@osma
This just proves isn't federated and it's all marketing scam. @bsky.app has been nothing but false promises, wasn't it suppose to federate to natively? Welp, that never happened.

I'm disabling the until there are other AT Protocol instances that aren't corporation involved.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

Bob Dunn's avatar
Bob Dunn

@DotheWoo@openchannels.fm

In Episode 642 of Do the Woo, host Matthias Pfefferle brings us another Open Web Conversations and dives into the world of decentralized social networks and the open web, specifically focusing on the Fediverse, with guest André Menrath. André shares his unconventional journey into software development, driven by his passion for events and democracy, and his vision for a federated future. They explore the challenges and opportunities in integrating WordPress with the Fediverse, discussing André's innovative plugins bridging WordPress events with ActivityPub. The conversation sheds light on the potential for WordPress to become a dominant platform in the Fediverse, hosting diverse content types while maintaining an open and interconnected web. Join them as they navigate the technical and social landscape of creating a truly decentralized internet. […]
Bring Federated Events to Your WordPress Site with André Menrath
ALT text detailsBring Federated Events to Your WordPress Site with André Menrath
Bob Dendry's avatar
Bob Dendry

@BobDendry@masto.fediverse.games

Another cool ActivityPub project I came across today - BadgeFed.

From the point of view of your regular Fediverse instance - I could foresee this being used to recognise members for financial contributions, being moderators, Creating x number of Peertube videos, y posts on Mastodon, winning community contests, stuff like that. Really cool and I will definitely look into this further a bit further down the line.

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

国漢文混用体からHolloまで

本日、第8回FediLUG勉強会で「国漢文混用体からHolloまで」というタイトルで発表をしてきました。

私がなぜActivityPubサーバーフレームワークのFedifyと、シングルユーザー向けActivityPubサーバーのHolloを開発する事に成ったのか、その旅路を共有しました。

実は全ての始まりは、韓国語の「国漢文混用体」(漢字ハングル混じり文)に「振りハングル」を付けたいという単純な願いからでした。この小さな目標が、最終的にFedifyHolloという二つのプロジェクトへと発展したのです。

興味のある方は、発表スライドをご覧ください: 「国漢文混用体からHolloまで」(Speaker Deck)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social · Reply to 洪 民憙 (Hong Minhee)'s post

国漢文混用体からHolloまで

本日、第8回FediLUG勉強会で「国漢文混用体からHolloまで」というタイトルで発表をしてきました。

私がなぜActivityPubサーバーフレームワークのFedifyと、シングルユーザー向けActivityPubサーバーのHolloを開発する事に成ったのか、その旅路を共有しました。

実は全ての始まりは、韓国語の「国漢文混用体」(漢字ハングル混じり文)に「振りハングル」を付けたいという単純な願いからでした。この小さな目標が、最終的にFedifyHolloという二つのプロジェクトへと発展したのです。

興味のある方は、発表スライドをご覧ください: 「国漢文混用体からHolloまで」(Speaker Deck)

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

guerrilla stickers 通信's avatar
guerrilla stickers 通信

@guerrillastickers@mastodon.bida.im

🏴‍☠️ New campaign coming soon /// 💥 Against the surveillance capitalism: stop to the social networks under master. Come to Mastodon‼️ 🦣

Announcement here at 50 follower on : @guerrillastickers@livellosegreto.it

Konstantin Obenland's avatar
Konstantin Obenland

@obenland@mastodon.social

ActivityPub 5.7.0 for WordPress is out now! 🥳

Among other things, this release brings more helpful details to Site Health and upgrades the Reply block—it now embeds the referenced post, even if oEmbed isn’t supported!

👉 Full changelog: wordpress.org/plugins/activity

WordPress editor showing a Federated Reply block with an embedded post from PixelFed, featuring a photo of a bakery display full of pastries. The sidebar shows the ‘Embed Post’ setting toggled on.
ALT text detailsWordPress editor showing a Federated Reply block with an embedded post from PixelFed, featuring a photo of a bakery display full of pastries. The sidebar shows the ‘Embed Post’ setting toggled on.
Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-11

Servers

- PeerTube v7.1.1
- Lemmy v0.19.11
- Manyfold v0.107.0
- Hubzilla v10.2.2
- ActivityPub for WordPress v5.7.0
- Misskey v2025.4.0
- tootik v0.15.6
- Gush! v0.0.16
- NodeBB v4.2.1
- You think you're following us, but you might not be (Ghost)
- Trunk & Tidbits, March 2025 (Mastodon)
- 2025 PeerTube Roadmap ! (PeerTube)
- Flox: A self hosted Movie, Series and Animes watch list

Clients

- Fedilab v3.32.0
- IceCubesApp v1.11.3
- Pixelix v4.1.0
- Voyager v2.29.0
- Tesseract v1.4.33
- Interstellar v0.9.1

Tools and Plugins

- Mastodon Requirements

For developers

- Federails v0.6.0

Articles

- Eight years on, Mastodon stubbornly survives
- Mastodon Exit Interview
- Some Notes about FediList (and Poisoned Data)
- Fediverse Report – #111

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01960262-d8ba-73dd-51c1-18f3881f9ec7

Week in Fediverse :fediverse_light:'s avatar
Week in Fediverse :fediverse_light:

@weekinfediverse@mitra.social

Week in Fediverse 2025-04-11

Servers

- PeerTube v7.1.1
- Lemmy v0.19.11
- Manyfold v0.107.0
- Hubzilla v10.2.2
- ActivityPub for WordPress v5.7.0
- Misskey v2025.4.0
- tootik v0.15.6
- Gush! v0.0.16
- NodeBB v4.2.1
- You think you're following us, but you might not be (Ghost)
- Trunk & Tidbits, March 2025 (Mastodon)
- 2025 PeerTube Roadmap ! (PeerTube)
- Flox: A self hosted Movie, Series and Animes watch list

Clients

- Fedilab v3.32.0
- IceCubesApp v1.11.3
- Pixelix v4.1.0
- Voyager v2.29.0
- Tesseract v1.4.33
- Interstellar v0.9.1

Tools and Plugins

- Mastodon Requirements

For developers

- Federails v0.6.0

Articles

- Eight years on, Mastodon stubbornly survives
- Mastodon Exit Interview
- Some Notes about FediList (and Poisoned Data)
- Fediverse Report – #111

-----

#WeekInFediverse #Fediverse #ActivityPub

Previous edition: https://mitra.social/objects/01960262-d8ba-73dd-51c1-18f3881f9ec7

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation = createFederation({
  queue: new DenoKvMessageQueue(/* ... */),
  // ...
});
// Sending is now reliable and non-blocking
await ctx.sendActivity({ handle: "myUser" }, recipient, someActivity);

Challenge #5: Security—Avoiding Common Pitfalls

Securing an ActivityPub server is critical. You need to implement HTTP Signatures (draft-cavage-http-signatures-12) for server-to-server authentication—a complex process. You might also need Linked Data Signatures (LDS) or Object Integrity Proofs (OIP) based on FEP-8b32 for data integrity and compatibility. Managing cryptographic keys securely is essential. Lastly, fetching remote resources risks Server-Side Request Forgery (SSRF) if not validated properly.

Fedify is designed with security in mind. It automatically handles the creation and verification of HTTP Signatures, LDS, and OIP, provided you supply keys via setKeyPairsDispatcher(). It includes key management utilities. Crucially, Fedify's default document loader includes built-in SSRF protection, blocking requests to private IPs unless explicitly allowed.

Challenge #6: Interoperability & Maintenance—Playing Nicely with Others

The fediverse is diverse. Different servers have quirks. Ensuring compatibility requires testing and adaptation. Standards evolve with new Federation Enhancement Proposals (FEPs). You also need protocols like NodeInfo to advertise server capabilities.

Fedify aims for broad interoperability and is actively maintained. It includes features like ActivityTransformers to smooth over implementation differences. NodeInfo support is built-in via setNodeInfoDispatcher().

Challenge #7: Developer Experience—Actually Building Your App

Beyond the protocol, building any server involves setup, testing, and debugging. With federation, debugging becomes harder—was the message malformed? Was the signature wrong? Is the remote server down? Is it a compatibility quirk? Good tooling is essential.

Fedify enhances the developer experience significantly. Being built with TypeScript, it offers excellent type safety and editor auto-completion. The fedify CLI is a powerful companion designed to streamline common development tasks.

You can quickly scaffold a new project tailored to your chosen runtime and web framework using fedify init.

For debugging interactions and verifying data, fedify lookup is invaluable. It lets you inspect how any remote actor or object appears from the outside by performing WebFinger discovery and fetching the object's data. Fedify then displays the parsed object structure and properties directly in your terminal. For example, running:

$ fedify lookup @fedify-example@fedify-blog.deno.dev

Will first show progress messages and then output the structured representation of the actor, similar to this:

// Output of fedify lookup command (shows parsed object structure)
Person {
  id: URL "https://fedify-blog.deno.dev/users/fedify-example",
  name: "Fedify Example Blog",
  published: 2024-03-03T13:18:11.857Z, // Simplified timestamp
  summary: "This blog is powered by Fedify, a fediverse server framework.",
  url: URL "https://fedify-blog.deno.dev/",
  preferredUsername: "fedify-example",
  publicKey: CryptographicKey {
    id: URL "https://fedify-blog.deno.dev/users/fedify-example#main-key",
    owner: URL "https://fedify-blog.deno.dev/users/fedify-example",
    publicKey: CryptoKey { /* ... CryptoKey details ... */ }
  },
  // ... other properties like inbox, outbox, followers, endpoints ...
}

This allows you to easily check how data is structured or troubleshoot why an interaction might be failing by seeing the actual properties Fedify parsed.

Testing outgoing activities from your application during development is made much easier with fedify inbox. Running the command starts a temporary local server that acts as a publicly accessible inbox, displaying key information about the temporary actor it creates for receiving messages:

$ fedify inbox
✔ The ephemeral ActivityPub server is up and running: https://<unique_id>.lhr.life/
✔ Sent follow request to @<some_test_account>@activitypub.academy.
╭───────────────┬─────────────────────────────────────────╮
│ Actor handle: │ i@<unique_id>.lhr.life                  │
├───────────────┼─────────────────────────────────────────┤
│   Actor URI:  │ https://<unique_id>.lhr.life/i          │
├───────────────┼─────────────────────────────────────────┤
│  Actor inbox: │ https://<unique_id>.lhr.life/i/inbox    │
├───────────────┼─────────────────────────────────────────┤
│ Shared inbox: │ https://<unique_id>.lhr.life/inbox      │
╰───────────────┴─────────────────────────────────────────╯

Web interface available at: http://localhost:8000/

You then configure your developing application to send an activity to the Actor inbox or Shared inbox URI provided. When an activity arrives, fedify inbox only prints a summary table to your console indicating that a request was received:

╭────────────────┬─────────────────────────────────────╮
│     Request #: │ 2                                   │
├────────────────┼─────────────────────────────────────┤
│ Activity type: │ Follow                              │
├────────────────┼─────────────────────────────────────┤
│  HTTP request: │ POST /i/inbox                       │
├────────────────┼─────────────────────────────────────┤
│ HTTP response: │ 202                                 │
├────────────────┼─────────────────────────────────────┤
│       Details  │ https://<unique_id>.lhr.life/r/2    │
╰────────────────┴─────────────────────────────────────╯

Crucially, the detailed information about the received request—including the full headers (like Signature), the request body (the Activity JSON), and the signature verification status—is only available in the web interface provided by fedify inbox. This web UI allows you to thoroughly inspect incoming activities during development.

Screenshot of the Fedify Inbox web interface showing received activities and their details.
The Fedify Inbox web UI is where you view detailed activity information.

When you need to test interactions with the live fediverse from your local machine beyond just sending, fedify tunnel can securely expose your entire local development server temporarily. This suite of tools significantly eases the process of building and debugging federated applications.

Conclusion: Build Features, Not Plumbing

Implementing the ActivityPub suite of protocols from scratch is an incredibly complex and time-consuming undertaking. It involves deep dives into multiple technical specifications, cryptographic signing, security hardening, and navigating the nuances of a diverse ecosystem. While educational, it dramatically slows down the process of building the actual, unique features of your federated application.

Fedify offers a well-architected, secure, and type-safe foundation, handling the intricacies of federation for you—data modeling, discovery, core mechanics, delivery, security, and interoperability. It lets you focus on your application's unique value and user experience. Stop wrestling with low-level protocol details and start building your vision for the fediverse faster and more reliably. Give Fedify a try!

Getting started is straightforward. First, install the Fedify CLI using your preferred method. Once installed, create a new project template by running fedify init your-project-name.

Check out the Fedify tutorials and Fedify manual to learn more. Happy federating!

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hollo.social

Don't build from scratch! It's complex. See why using the framework is the smarter way to develop for the fediverse in my new post:

https://hackers.pub/@hongminhee/2025/why-use-fedify

洪 民憙 (Hong Minhee)'s avatar
洪 民憙 (Hong Minhee)

@hongminhee@hackers.pub


So, you're captivated by the fediverse—the decentralized social web powered by protocols like ActivityPub. Maybe you're dreaming of building the next great federated app, a unique space connected to Mastodon, Lemmy, Pixelfed, and more. The temptation to dive deep and implement ActivityPub yourself, from the ground up, is strong. Total control, right? Understanding every byte? Sounds cool!

But hold on a sec. Before you embark on that epic quest, let's talk reality. Implementing ActivityPub correctly isn't just one task; it's like juggling several complex standards while riding a unicycle… blindfolded. It’s hard.

That's where Fedify comes in. It's a TypeScript framework designed to handle the gnarliest parts of ActivityPub development, letting you focus on what makes your app special, not reinventing the federation wheel.

This post will break down the common headaches of DIY ActivityPub implementation and show how Fedify acts as the super-powered pain reliever, starting with the very foundation of how data is represented.

Challenge #1: Data Modeling—Speaking ActivityStreams & JSON-LD Fluently

At its core, ActivityPub relies on the ActivityStreams 2.0 vocabulary to describe actions and objects, and it uses JSON-LD as the syntax to encode this vocabulary. While powerful, this combination introduces significant complexity right from the start.

First, understanding and correctly using the vast ActivityStreams vocabulary itself is a hurdle. You need to model everything—posts (Note, Article), profiles (Person, Organization), actions (Create, Follow, Like, Announce)—using the precise terms and properties defined in the specification. Manual JSON construction is tedious and prone to errors.

Second, JSON-LD, the encoding layer, has specific rules that make direct JSON manipulation surprisingly tricky:

  • Missing vs. Empty Array: In JSON-LD, a property being absent is often semantically identical to it being present with an empty array. Your application logic needs to treat these cases equally when checking for values. For example, these two Note objects mean the same thing regarding the name property:
    // No name property
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ""
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "name": [],
      "content": ""
    }
  • Single Value vs. Array: Similarly, a property holding a single value directly is often equivalent to it holding a single-element array containing that value. Your code must anticipate both representations for the same meaning, like for the content property here:
    // Single value
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": "Hello"
    }
    // Equivalent to:
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Note",
      "content": ["Hello"]
    }
  • Object Reference vs. Embedded Object: Properties can contain either the full JSON-LD object embedded directly or just a URI string referencing that object. Your application needs to be prepared to fetch the object's data if only a URI is given (a process called dereferencing). These two Announce activities are semantically equivalent (assuming the URIs resolve correctly):
    {
      "@context": "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // Embedded objects:
      "actor": {
        "type": "Person",
        "id": "http://sally.example.org/",
        "name": "Sally"
      },
      "object": {
        "type": "Arrive",
        "id": "https://sally.example.com/arrive",
        /* ... */
      }
    }
    // Equivalent to:
    {
      "@context":
      "https://www.w3.org/ns/activitystreams",
      "type": "Announce",
      // URI references:
      "actor": "http://sally.example.org/",
      "object": "https://sally.example.com/arrive"
    }

Attempting to manually handle all these vocabulary rules and JSON-LD variations consistently across your application inevitably leads to verbose, complex, and fragile code, ripe for subtle bugs that break federation.

Fedify tackles this entire data modeling challenge with its comprehensive, type-safe Activity Vocabulary API. It provides TypeScript classes for ActivityStreams types and common extensions, giving you autocompletion and compile-time safety. Crucially, these classes internally manage all the tricky JSON-LD nuances. Fedify's property accessors present a consistent interface—non-functional properties (like tags) always return arrays, functional properties (like content) always return single values or null. It handles object references versus embedded objects seamlessly through dereferencing accessors (like activity.getActor()) which automatically fetch remote objects via URI when needed—a feature known as property hydration. With Fedify, you work with a clean, predictable TypeScript API, letting the framework handle the messy details of AS vocabulary and JSON-LD encoding.

Challenge #2: Discovery & Identity—Finding Your Actors

Once you can model data, you need to make your actors discoverable. This primarily involves the WebFinger protocol (RFC 7033). You'd need to build a server endpoint at /.well-known/webfinger capable of parsing resource queries (like acct: URIs), validating the requested domain against your server, and responding with a precisely formatted JSON Resource Descriptor (JRD). This JRD must include specific links, like a self link pointing to the actor's ActivityPub ID using the correct media type. Getting any part of this wrong can make your actors invisible.

Fedify simplifies this significantly. It automatically handles WebFinger requests based on the actor information you provide through its setActorDispatcher() method. Fedify generates the correct JRD response. If you need more advanced control, like mapping user-facing handles to internal identifiers, you can easily register mapHandle() or mapAlias() callbacks. You focus on defining your actors; Fedify handles making them discoverable.

// Example: Define how to find actors
federation.setActorDispatcher(
  "/users/{username}",
  async (ctx, username) => { /* ... */ }
);
// Now GET /.well-known/webfinger?resource=acct:username@your.domain just works!

Challenge #3: Core ActivityPub Mechanics—Handling Requests and Collections

Serving actor profiles requires careful content negotiation. A request for an actor's ID needs JSON-LD for machine clients (Accept: application/activity+json) but HTML for browsers (Accept: text/html). Handling incoming activities at the inbox endpoint involves validating POST requests, verifying cryptographic signatures, parsing the payload, preventing duplicates (idempotency), and routing based on activity type. Implementing collections (outbox, followers, etc.) with correct pagination adds another layer.

Fedify streamlines all of this. Its core request handler (via Federation.fetch() or framework adapters like @fedify/express) manages content negotiation. You define actors with setActorDispatcher() and web pages with your framework (Hono, Express, SvelteKit, etc.)—Fedify routes appropriately. For the inbox, setInboxListeners() lets you define handlers per activity type (e.g., .on(Follow, ...)), while Fedify automatically handles validation, signature verification, parsing, and idempotency checks using its KV Store. Collection implementation is simplified via dispatchers (e.g., setFollowersDispatcher()); you provide logic to fetch a page of data, and Fedify constructs the correct Collection or CollectionPage with pagination.

// Define inbox handlers
federation.setInboxListeners("/inbox", "/users/{handle}/inbox")
  .on(Follow, async (ctx, follow) => { /* Handle follow */ })
  .on(Undo, async (ctx, undo) => { /* Handle undo */ });

// Define followers collection logic
federation.setFollowersDispatcher(
  "/users/{handle}/followers",
  async (ctx, handle, cursor) => { /* ... */ }
);

Challenge #4: Reliable Delivery & Asynchronous Processing—Sending Activities Robustly

Sending an activity requires more than a simple POST. Networks fail, servers go down. You need robust failure handling and retry logic (ideally with backoff). Processing incoming activities synchronously can block your server. Efficiently broadcasting to many followers (fan-out) requires background processing and using shared inboxes where possible.

Fedify addresses reliability and scalability using its MessageQueue abstraction. When configured (highly recommended), Context.sendActivity() enqueues delivery tasks. Background workers handle sending with automatic retries based on configurable policies (like outboxRetryPolicy). Fedify supports various queue backends (Deno KV, Redis, PostgreSQL, AMQP). For high-traffic fan-out, Fedify uses an optimized two-stage mechanism to distribute the load efficiently.

// Configure Fedify with a persistent queue (e.g., Deno KV)
const federation =