Edit: Done! https://madeincanada.social/#servers
Instead of manually adding servers to https://MadeInCanada.social, I'll leverage my FediDB.com service with a new API 🔥
Edit: Done! https://madeincanada.social/#servers
Instead of manually adding servers to https://MadeInCanada.social, I'll leverage my FediDB.com service with a new API 🔥
FEP-0151: NodeInfo in Fediverse Software (2025 edition)
I added the "Implementations" section and a reference to FEP-844e:
https://codeberg.org/fediverse/fep/pulls/741
There are 3 independent implementations now. Since this is a "2025 edition", and 2025 is about to end, I think the FEP should be finalized.
If you have any suggestions, please comment here, on SocialHub, or create an issue.
I finally got around to setting up #nodeinfo properly on #Enigmatick as an effort to be a more compliant #ActivityPub participant. Coincidentally (and unexpectedly), my connected instances have jumped substantially (>15% in 24 hours):
enigmatick=> SELECT CASE WHEN created_at > NOW() - INTERVAL '1 day' THEN 'last 24h' WHEN created_at > NOW() - INTERVAL '2 days' THEN '24-48h ago' WHEN created_at > NOW() - INTERVAL '3 days' THEN '48-72h ago' END as period, COUNT(*) FROM instances WHERE created_at > NOW() - INTERVAL '3 days' GROUP BY period ORDER BY period;
period | count
------------+-------
24-48h ago | 1
48-72h ago | 3
last 24h | 164
(3 rows)
Maybe it's not directly related - I also fixed some direct object and tags link references to provide proper ActivityPub representations.
mods to the NodeInfo spec so we can all know how many moderators are handing content moderation on any given instance in the fediverse. The idea came from @jwildeboer@social.wildeboer.net wanting to know the ratio of mods:users on a instance.We'd like to recognize the valuable contributions from two developers who participated in Korea's #OSSCA (Open Source Contribution Academy) program. Both contributors identified important gaps in #Fedify's functionality and documentation, providing thoughtful solutions that benefit the broader #ActivityPub ecosystem.
@gaebalgom contributed PR #365, addressing issue #353 regarding NodeInfo parser compatibility, originally reported by @andypiper. The issue arose when Fedify incorrectly rejected #NodeInfo documents from snac instances due to overly strict version string parsing that required semantic versioning compliance. Their solution improves the fallback behavior in the parseSoftware() function to handle non-SemVer version strings by parsing dot-separated numbers and defaulting to zero for missing components. The implementation includes thorough test coverage for various edge cases, including single numbers (3), two-part versions (2.81), and malformed version strings. This fix provides immediate compatibility improvements across the fediverse while maintaining backward compatibility, and will be included in Fedify 1.9. The contribution serves as an interim solution, with a more comprehensive fix planned for Fedify 2.0 (issue #366), where the NodeInfo software.version field will be changed from the SemVer type to a plain string to fully comply with the NodeInfo specification.
@z9mb1 contributed PR #364, resolving issue #337 by adding practical examples for Fedify's custom collection dispatchers feature. Custom collections were introduced in Fedify 1.8 but lacked clear documentation for developers seeking to implement them. Their contribution provides a comprehensive example demonstrating how to set up custom collections for tagged posts, including proper routing patterns, pagination handling, and counter functionality. The example includes mock data structures, shows how to configure collection dispatchers with URL patterns like /users/{userId}/tags/{tag}, and demonstrates the complete request/response cycle using federation.fetch(). This work provides developers with a clear, runnable reference that reduces the complexity of implementing custom collections in ActivityPub applications.
We appreciate these meaningful contributions that help make Fedify more accessible and robust for the entire ActivityPub community.