home.social

#nodeinfo — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #nodeinfo, aggregated by home.social.

  1. @elgg We've got a MR to add #Elgg to fediverse.party;

    codeberg.org/fediverse/fedipar

    Our usual process is to set up some test accounts to check federation is working, and we usually wait until a project has at least 1 independent instance, to confirm that it's practical to self-host.

    I can't find any Elgg instances on FediDB or the-federation.info, and only a demo server on fediverse.observer. Maybe that the plugin isn't publishing #NodeInfo data in a way these instance mapping sites can ingest?

  2. @elgg We've got a MR to add #Elgg to fediverse.party;

    codeberg.org/fediverse/fedipar

    Our usual process is to set up some test accounts to check federation is working, and we usually wait until a project has at least 1 independent instance, to confirm that it's practical to self-host.

    I can't find any Elgg instances on FediDB or the-federation.info, and only a demo server on fediverse.observer. Maybe that the plugin isn't publishing #NodeInfo data in a way these instance mapping sites can ingest?

  3. @elgg We've got a MR to add #Elgg to fediverse.party;

    codeberg.org/fediverse/fedipar

    Our usual process is to set up some test accounts to check federation is working, and we usually wait until a project has at least 1 independent instance, to confirm that it's practical to self-host.

    I can't find any Elgg instances on FediDB or the-federation.info, and only a demo server on fediverse.observer. Maybe that the plugin isn't publishing #NodeInfo data in a way these instance mapping sites can ingest?

  4. @elgg We've got a MR to add #Elgg to fediverse.party;

    codeberg.org/fediverse/fedipar

    Our usual process is to set up some test accounts to check federation is working, and we usually wait until a project has at least 1 independent instance, to confirm that it's practical to self-host.

    I can't find any Elgg instances on FediDB or the-federation.info, and only a demo server on fediverse.observer. Maybe that the plugin isn't publishing #NodeInfo data in a way these instance mapping sites can ingest?

  5. Just so you know, the dominance of Mastodon as a server software choice for the fediverse has at times been overstated, and may still be overstated;

    "The Mastodon API endpoint is Mastodon specific but platforms which have also implemented the Mastodon API (to make use of Mastodon mobile clients) look like Mastodon servers to apps reading information about the servers."

    @jaywink, 2019

    talk.feneas.org/t/serviceinfo-

    (1/2)

    #fediverse #StatsCollection #NodeInfo

  6. Just so you know, the dominance of Mastodon as a server software choice for the fediverse has at times been overstated, and may still be overstated;

    "The Mastodon API endpoint is Mastodon specific but platforms which have also implemented the Mastodon API (to make use of Mastodon mobile clients) look like Mastodon servers to apps reading information about the servers."

    @jaywink, 2019

    talk.feneas.org/t/serviceinfo-

    (1/2)

    #fediverse #StatsCollection #NodeInfo

  7. Just so you know, the dominance of Mastodon as a server software choice for the fediverse has at times been overstated, and may still be overstated;

    "The Mastodon API endpoint is Mastodon specific but platforms which have also implemented the Mastodon API (to make use of Mastodon mobile clients) look like Mastodon servers to apps reading information about the servers."

    @jaywink, 2019

    talk.feneas.org/t/serviceinfo-

    (1/2)

    #fediverse #StatsCollection #NodeInfo

  8. Just so you know, the dominance of Mastodon as a server software choice for the fediverse has at times been overstated, and may still be overstated;

    "The Mastodon API endpoint is Mastodon specific but platforms which have also implemented the Mastodon API (to make use of Mastodon mobile clients) look like Mastodon servers to apps reading information about the servers."

    @jaywink, 2019

    talk.feneas.org/t/serviceinfo-

    (1/2)

    #fediverse #StatsCollection #NodeInfo

  9. @Rob Ricci Maybe this is interesting for you:

    (streams) had almost all nodeinfo code intentionally removed. This was done to keep (streams) from being crawled by instance-listing websites and dragged into competitions between server applications and particular servers.

    Also, (streams) does not have a unified instance type identifier. Server admins may not only enter their own name for the server, but also their own custom instance type. If no instance type is given, (streams) uses the first word in the server name as the instance type.

    Likewise, Forte's stats being reported as zero is fully intentional in order to keep it out of competitions. I'd be very surprised if there was an ActivityPub-compliant way around this.

    By the way, here is a correction: Iceshrimp.NET is not a Misskey fork. It is being rewritten from the ground up in C# whereas Misskey and all Forkeys are written in TypeScript and Vue.js.

    A few more Forkeys, dead or alive:
    • Tanukey (you've listed it elsewhere)
    • Neko
    • Catodon
    • Hajkey
    • Metaskey
    • Backspacekey

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #Forkey #Forkeys #nodeinfo
  10. @Rob Ricci Maybe this is interesting for you:

    (streams) had almost all nodeinfo code intentionally removed. This was done to keep (streams) from being crawled by instance-listing websites and dragged into competitions between server applications and particular servers.

    Also, (streams) does not have a unified instance type identifier. Server admins may not only enter their own name for the server, but also their own custom instance type. If no instance type is given, (streams) uses the first word in the server name as the instance type.

    Likewise, Forte's stats being reported as zero is fully intentional in order to keep it out of competitions. I'd be very surprised if there was an ActivityPub-compliant way around this.

    By the way, here is a correction: Iceshrimp.NET is not a Misskey fork. It is being rewritten from the ground up in C# whereas Misskey and all Forkeys are written in TypeScript and Vue.js.

    A few more Forkeys, dead or alive:
    • Tanukey (you've listed it elsewhere)
    • Neko
    • Catodon
    • Hajkey
    • Metaskey
    • Backspacekey

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #Forkey #Forkeys #nodeinfo
  11. @Rob Ricci Maybe this is interesting for you:

    (streams) had almost all nodeinfo code intentionally removed. This was done to keep (streams) from being crawled by instance-listing websites and dragged into competitions between server applications and particular servers.

    Also, (streams) does not have a unified instance type identifier. Server admins may not only enter their own name for the server, but also their own custom instance type. If no instance type is given, (streams) uses the first word in the server name as the instance type.

    Likewise, Forte's stats being reported as zero is fully intentional in order to keep it out of competitions. I'd be very surprised if there was an ActivityPub-compliant way around this.

    By the way, here is a correction: Iceshrimp.NET is not a Misskey fork. It is being rewritten from the ground up in C# whereas Misskey and all Forkeys are written in TypeScript and Vue.js.

    A few more Forkeys, dead or alive:
    • Tanukey (you've listed it elsewhere)
    • Neko
    • Catodon
    • Hajkey
    • Metaskey
    • Backspacekey

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #Forkey #Forkeys #nodeinfo
  12. @Rob Ricci Maybe this is interesting for you:

    (streams) had almost all nodeinfo code intentionally removed. This was done to keep (streams) from being crawled by instance-listing websites and dragged into competitions between server applications and particular servers.

    Also, (streams) does not have a unified instance type identifier. Server admins may not only enter their own name for the server, but also their own custom instance type. If no instance type is given, (streams) uses the first word in the server name as the instance type.

    Likewise, Forte's stats being reported as zero is fully intentional in order to keep it out of competitions. I'd be very surprised if there was an ActivityPub-compliant way around this.

    By the way, here is a correction: Iceshrimp.NET is not a Misskey fork. It is being rewritten from the ground up in C# whereas Misskey and all Forkeys are written in TypeScript and Vue.js.

    A few more Forkeys, dead or alive:
    • Tanukey (you've listed it elsewhere)
    • Neko
    • Catodon
    • Hajkey
    • Metaskey
    • Backspacekey

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #Forkey #Forkeys #nodeinfo
  13. @Rob Ricci Maybe this is interesting for you:

    (streams) had almost all nodeinfo code intentionally removed. This was done to keep (streams) from being crawled by instance-listing websites and dragged into competitions between server applications and particular servers.

    Also, (streams) does not have a unified instance type identifier. Server admins may not only enter their own name for the server, but also their own custom instance type. If no instance type is given, (streams) uses the first word in the server name as the instance type.

    Likewise, Forte's stats being reported as zero is fully intentional in order to keep it out of competitions. I'd be very surprised if there was an ActivityPub-compliant way around this.

    By the way, here is a correction: Iceshrimp.NET is not a Misskey fork. It is being rewritten from the ground up in C# whereas Misskey and all Forkeys are written in TypeScript and Vue.js.

    A few more Forkeys, dead or alive:
    • Tanukey (you've listed it elsewhere)
    • Neko
    • Catodon
    • Hajkey
    • Metaskey
    • Backspacekey

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #Forkey #Forkeys #nodeinfo
  14. 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.

    #fep #fep_0151 #activitypub #nodeinfo

  15. 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.

    #fep #fep_0151 #activitypub #nodeinfo

  16. 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.

    #fep #fep_0151 #activitypub #nodeinfo

  17. 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.

    #fep #fep_0151 #activitypub #nodeinfo

  18. 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.

  19. 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.

  20. 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.

  21. 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.

  22. 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.

  23. @crossgolf_rebel - kostenlose Kwalitätsposts Wahrscheinlich auch ein Grund, warum (streams) und Forte so sind, wie sie sind:

    Bei (streams) hat Mike nodeinfo mit Absicht komplett rausgeschmissen. Forte hat wieder nodeinfo, weil das laut Mike in einem mastodondominierten Fediverse zwingend notwendig ist. Aber Forte meldet alle Statistikwerte als 0. Auch da kann man von Absicht ausgehen.

    Während also Hubzilla die Statistiken mit nomadischen Kanälen verzerrt, weil jeder Klon als eigenes Konto aufgefaßt wird, gleichzeitig aber auch jeder einzelne Kanal auf demselben Konto wiederum als eigenes Konto gezählt wird (Hubzilla meldet ja zum Glück nicht die Zahl der Konten, sondern die Zahl der Kanäle), tauchen (streams) und Forte in den Statistiken überhaupt nicht auf.

    Interessanterweise meldet Forte auch keine Versionsnummern per nodeinfo, sondern nur auf Wegen, die nur von Mikes eigener Software verstanden werden. So kann man zwar auf Community-Listen auf (streams) und Forte die Versionsnummern einzelner Server sehen, aber Crawler, die auf ActivityPub und Mastodon ausgelegt sind, erfahren die Versionsnummern nicht.

    Dazu kommt, daß (streams) ohne nodeinfo nicht crawlbar ist. Selbst wenn es nodeinfo hätte, wäre es nicht crawlbar, weil es als einzige Fediverse-Software keinen festen, einheitlichen Softwarenamen hat. Und so ist (streams) vom Fediverse Observer und vom FediIndex komplett abwesend. Die FediDB, auf der Daniel jede Software per Hand einträgt, kennt nicht nur (streams) nicht, sondern auch Forte.

    Zugegeben, statistische Signifikanz fürs Fediverse als Ganzes haben die beiden nicht. (streams) dürfte keine 50 aktiven Nutzer haben, Forte keine 20, die sich samt und sonders aus den (streams)-Reihen rekrutiert haben dürften. Und Forte hat nur Privatserver, aber keinen einzigen öffentlichen mit offener Registrierung, während (streams) zumindest davon zwei hat, die aber nur Insider kennen.

    CC: @Netzbegrünung

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #nodeinfo
  24. @crossgolf_rebel - kostenlose Kwalitätsposts Wahrscheinlich auch ein Grund, warum (streams) und Forte so sind, wie sie sind:

    Bei (streams) hat Mike nodeinfo mit Absicht komplett rausgeschmissen. Forte hat wieder nodeinfo, weil das laut Mike in einem mastodondominierten Fediverse zwingend notwendig ist. Aber Forte meldet alle Statistikwerte als 0. Auch da kann man von Absicht ausgehen.

    Während also Hubzilla die Statistiken mit nomadischen Kanälen verzerrt, weil jeder Klon als eigenes Konto aufgefaßt wird, gleichzeitig aber auch jeder einzelne Kanal auf demselben Konto wiederum als eigenes Konto gezählt wird (Hubzilla meldet ja zum Glück nicht die Zahl der Konten, sondern die Zahl der Kanäle), tauchen (streams) und Forte in den Statistiken überhaupt nicht auf.

    Interessanterweise meldet Forte auch keine Versionsnummern per nodeinfo, sondern nur auf Wegen, die nur von Mikes eigener Software verstanden werden. So kann man zwar auf Community-Listen auf (streams) und Forte die Versionsnummern einzelner Server sehen, aber Crawler, die auf ActivityPub und Mastodon ausgelegt sind, erfahren die Versionsnummern nicht.

    Dazu kommt, daß (streams) ohne nodeinfo nicht crawlbar ist. Selbst wenn es nodeinfo hätte, wäre es nicht crawlbar, weil es als einzige Fediverse-Software keinen festen, einheitlichen Softwarenamen hat. Und so ist (streams) vom Fediverse Observer und vom FediIndex komplett abwesend. Die FediDB, auf der Daniel jede Software per Hand einträgt, kennt nicht nur (streams) nicht, sondern auch Forte.

    Zugegeben, statistische Signifikanz fürs Fediverse als Ganzes haben die beiden nicht. (streams) dürfte keine 50 aktiven Nutzer haben, Forte keine 20, die sich samt und sonders aus den (streams)-Reihen rekrutiert haben dürften. Und Forte hat nur Privatserver, aber keinen einzigen öffentlichen mit offener Registrierung, während (streams) zumindest davon zwei hat, die aber nur Insider kennen.

    CC: @Netzbegrünung

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #nodeinfo
  25. @crossgolf_rebel - kostenlose Kwalitätsposts Wahrscheinlich auch ein Grund, warum (streams) und Forte so sind, wie sie sind:

    Bei (streams) hat Mike nodeinfo mit Absicht komplett rausgeschmissen. Forte hat wieder nodeinfo, weil das laut Mike in einem mastodondominierten Fediverse zwingend notwendig ist. Aber Forte meldet alle Statistikwerte als 0. Auch da kann man von Absicht ausgehen.

    Während also Hubzilla die Statistiken mit nomadischen Kanälen verzerrt, weil jeder Klon als eigenes Konto aufgefaßt wird, gleichzeitig aber auch jeder einzelne Kanal auf demselben Konto wiederum als eigenes Konto gezählt wird (Hubzilla meldet ja zum Glück nicht die Zahl der Konten, sondern die Zahl der Kanäle), tauchen (streams) und Forte in den Statistiken überhaupt nicht auf.

    Interessanterweise meldet Forte auch keine Versionsnummern per nodeinfo, sondern nur auf Wegen, die nur von Mikes eigener Software verstanden werden. So kann man zwar auf Community-Listen auf (streams) und Forte die Versionsnummern einzelner Server sehen, aber Crawler, die auf ActivityPub und Mastodon ausgelegt sind, erfahren die Versionsnummern nicht.

    Dazu kommt, daß (streams) ohne nodeinfo nicht crawlbar ist. Selbst wenn es nodeinfo hätte, wäre es nicht crawlbar, weil es als einzige Fediverse-Software keinen festen, einheitlichen Softwarenamen hat. Und so ist (streams) vom Fediverse Observer und vom FediIndex komplett abwesend. Die FediDB, auf der Daniel jede Software per Hand einträgt, kennt nicht nur (streams) nicht, sondern auch Forte.

    Zugegeben, statistische Signifikanz fürs Fediverse als Ganzes haben die beiden nicht. (streams) dürfte keine 50 aktiven Nutzer haben, Forte keine 20, die sich samt und sonders aus den (streams)-Reihen rekrutiert haben dürften. Und Forte hat nur Privatserver, aber keinen einzigen öffentlichen mit offener Registrierung, während (streams) zumindest davon zwei hat, die aber nur Insider kennen.

    CC: @Netzbegrünung

    #Long #LongPost #CWLong #CWLongPost #FediMeta #FediverseMeta #CWFediMeta #CWFediverseMeta #Streams #(streams) #Forte #nodeinfo
  26. 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.

    #opensource #fedidev #fediverse

  27. 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.

    #opensource #fedidev #fediverse

  28. 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.

    #opensource #fedidev #fediverse

  29. 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.

    #opensource #fedidev #fediverse

  30. 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.

    #opensource #fedidev #fediverse

  31. Started writing a new FEP:

    FEP-0151: NodeInfo in Fediverse Software (2025 edition)

    Mentioned some best practices. What else should be added there?

    #FEP #NodeInfo

  32. Started writing a new FEP:

    FEP-0151: NodeInfo in Fediverse Software (2025 edition)

    Mentioned some best practices. What else should be added there?

    #FEP #NodeInfo

  33. Started writing a new FEP:

    FEP-0151: NodeInfo in Fediverse Software (2025 edition)

    Mentioned some best practices. What else should be added there?

    #FEP #NodeInfo

  34. Started writing a new FEP:

    FEP-0151: NodeInfo in Fediverse Software (2025 edition)

    Mentioned some best practices. What else should be added there?

    #FEP #NodeInfo