Background
Stefan B kicked this off here: https://stefanbohacek.online/@stefan/116476612796168994
A working prototype here: https://communities.jointhefediverse.net/
The intent is to publish a FEP that seeks to add standardisation to nodeinfo elements, and propose new ones, resulting in platforms adding these elements to their platform so admins can fill out the details. The end result is twofold, better directories of service providers (nodes/servers/instances) and potential reputation signals for federation policies.
Nodeinfo spec here: https://nodeinfo.diaspora.software/
Nodeinfo survey data: https://codeberg.org/thefederationinfo/nodeinfo_metadata_survey
Sample nodeinfos here: https://github.com/stefanbohacek/fediverse-invite/tree/main/data/communities
Related FEPs
- FEP-0151: NodeInfo in Fediverse Software (2025 edition)
- https://fediverse.codeberg.page/fep/fep/6481/
- https://fediverse.codeberg.page/fep/fep/eb22/
- https://fediverse.codeberg.page/fep/fep/f1d5/ (superceded by 0151)
Elements (new, or suggested changes)
I’ve not included stuff that’s already in and doesn’t need changing. I assume this might mostly need to be in metadata. I’m working backwards from database thinking so how this ends up getting named is for others to weigh in on.
- node_crawler_visibility – none/limited/full – if none: nodeinfo crawlers drops all data, if limited: requests nodeinfo crawlers to record only the primary domain and federating status. Desired outcome would be a 28 day cool-off before re-requesting to confirm node_visibility. (this closes a gap where the host cannot alter robots.txt, maybe a managed hosted instance etc – but wants to opt out of metadata crawling)
- node_domain – (primary)
- node_alternate_domain – (can be multiple)
- node_web_domain
- node_account_creation – closed,invite,approval,open
- Closed: no account creation
- Invite: invitation only
- Approval: self registration, approval required
- Open: self-registration, instant activation
- node_membership_fee_month – none, or some amount in some ISO 4217 currency
- node_membership_fee_year – none, or some amount in some ISO 4217 currency
- node_name
- node_logo_url
- node_logo_square_url
- node_since – YYYY-MM-DD first account created
- node_links
- eg
- node_about – web page for potential new users, path_to_/sign-up, some other web page (like croeso.toot.wales)
- node_blog – official announcements/updates, might be a specific account, or web page
- node_funding – (can be multiple) link or links to service fundraising/donation/merch whatever
- node_policies – link to main community guidelines or policies, or break it out like
- node_community_guidelines
- node_terms_of_service
- node_privacy_policy
- node_annual_report – URL (this could be DSA-like annual report of moderation, could be a financial document, could be a web site…
- node_staff_total – Some kind of way to identify the number of people with admin and moderator (“staff”) privileges. Would need a way to show staff numbers without naming them, not all communities are public with who is doing the actual moderating as this can expose individuals to abuse/harassment
- node_locale – (can be multiple) if this service is intended to provide service for a specific building, institution, city, state, country, region etc. could be an array of OSM tags, left blank if locale not relevant – see https://jaz.co.uk/projects/mastodon-near-me/#data for example locale directory
- eg
- https://www.openstreetmap.org/way/1334527962 (Cardiff University)
- https://www.openstreetmap.org/relation/58437 (Wales)
- https://www.openstreetmap.org/node/25871341 (Europe)
- eg
- node_category – (can be multiple) with some guidance based on existing directories, a free form field of elements to describe topics for services that are topic-specific, unless “General” or blank
- Example directories with categories:
- node_language – (can be multiple) languages the host wishes to explicitly support or are seeking to host, not languages the service can technically host/process. ISO 639-3 codes. (https://en.wikipedia.org/wiki/ISO_639-3)
- m_accounts_total – (change all usage metrics from “users” to “accounts”)
- m_accounts_active_7
- m_accounts_active_28
- m_accounts_active_180
- m_posts_local_total
- m_comments_local_total
- federation_policy – to help people choosing a server know if they can connect with their friends on other major services/bridges/networks, could be something like:
"federation": {
"enabled": true/false
"fed.brid.gy": true/false
"threads.com": true/false
"mostr.pub": true/false
}
or maybe
"federation_policy": { "stance": open, allowlist, non-federating "notable_connections": ["threads.net", "fed.brid.gy", "bsky.brid.gy"]}
Or is this better as some kind of extension to services.inbound/services.outbound?