home.social

#webfinger — Public Fediverse posts

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

  1. Today, I build a #mastodon instance on my own #vps using #docker in #coolify

    I wasn't expecting it to be that hard.

    But man, mastodon is a beast.

    It has so many configs, services, settings, etc. It's actually insane.

    Especially if you set #s3 storage, #webfinger etc

    In the last months, I've been using #fedihost to host my current instance.

    Since I seem able to run it myself, I might move and save the money.

    It's currenly empty:
    social.fraxoweb.com

  2. Hi @kirschner @fsfe,
    if I expanded the #bookmarklet creator mro.name/2025/bookmarklet/inte so that it worked for non-fediverse URLs like yours above, would you consider featuring it?
    #Fediverse #Webfinger #RFC7033

  3. BTW, bener deh jadinya #fediverse handler sangeunahna.com kepegang sama #gotosocial nya si @[email protected] karena #misskey tidak support #webfinger sedangkan #gotosocial bisa.
  4. @[email protected]

    Moin Julian.

    Ich hatte mich letztes Jahr schon einmal mit Deinem "WebFinger Split-Domain Canary"-Aufbau beschäftigt, um meine Implementation darauf abzuklopfen.

    https://correct.webfinger-canary.fietkau.software/

    Leider habe ich Dich seinerzeit nicht kontaktiert, daher versuche ich gerade, mein Gedächtnis wieder aufzufrischen.

    Geht es Dir im Wesentlichen darum, daß man bei einem Webfinger-Lookup das "subject"-Feld vergleicht und ggf. einem Redirect folgt und ein zweites Webfinger-Lookup durchführt? Oder noch etwas anderes?

    Irgendwie scheine ich Dein Setup nicht vollständig zu durchschauen...

    Ich nutze zur manuellen Überprüfung jetzt schlicht einmal https://webfinger.net/

    Ein #Webfinger auf canary[at]correct.webfinger-canary.fietkau.software liefert ein passendes Subject, hier wären also die Informationen zu entnehmen, d.h. für #ActivityPub der Eintrag unter dem Typ "application/activity+json".

    Ein Webfinger auf canary[at]wrong.webfinger-canary.fietkau.software liefert eine abweichende Subject-Angabe, so daß man canary[at]correct.webfinger-canary.fietkau.software abfragt, wenn man dem Redirect folgt.

    Auch canary[at]webfinger-canary.fietkau.software zeigt im Subject auf die correct-Subdomain.

    Allerdings zeigen alle drei Webfinger-Einträge im Self auf https://wrong.webfinger-canary.fietkau.software/canary - wie soll die Abfrage auf https://correct.webfinger-canary.fietkau.software als Ergebnis landen?

    Und nebenbei, wie hast Du den Implementationsstatus geprüft? Mit einem Testaccount auf entsprechenden Instanzen?

    Freue mich über Feedback... :-)

    #Fediverse

  5. @Lioh
    Ah aber danke zur Erklärung, habe das Problem auch nicht verstanden. Dann ist es ja auch keine fehlende standardisierung, afaik ist der Weg über webfinger ja der richtige und eben auch standardisiert, dafür gibt es ja die well-known URLs.
    Also ist doch alles gut, #fedimap klingt auch nach nem coolen Projekt und folgt jetzt dem #webfinger Standard, yaay! 🥳
    @mro @feb

  6. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary\
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to include that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back.

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - Updated GetOutbox, GetNote, and GetCreateNote methods.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    “By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.”

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Also readable in: https://maho.dev/2025/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  7. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary\
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to include that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back.

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - Updated GetOutbox, GetNote, and GetCreateNote methods.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    “By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.”

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Also readable in: https://maho.dev/2025/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  8. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary (or reply)
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to assert that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back (blanket approval).

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - in the GetNote method.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Next Steps: The Quote Visualization Challenge

    Now that we’ve successfully implemented the backend infrastructure for consent-respecting quote posts, we face an equally important question: How should we display these quotes on our website?

    Treat quoted posts as special reply types? Quotes have different semantic meaning than replies - they’re more like “shared with commentary” So maybe create a separate “Quoted By” section similar to how we handle likes and shares?

    Any ideas?

    Also readable in: https://maho.dev/2026/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  9. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary (or reply)
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to assert that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back (blanket approval).

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - in the GetNote method.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Next Steps: The Quote Visualization Challenge

    Now that we’ve successfully implemented the backend infrastructure for consent-respecting quote posts, we face an equally important question: How should we display these quotes on our website?

    Treat quoted posts as special reply types? Quotes have different semantic meaning than replies - they’re more like “shared with commentary” So maybe create a separate “Quoted By” section similar to how we handle likes and shares?

    Any ideas?

    Also readable in: https://maho.dev/2026/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  10. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary (or reply)
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to assert that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back (blanket approval).

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - in the GetNote method.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Next Steps: The Quote Visualization Challenge

    Now that we’ve successfully implemented the backend infrastructure for consent-respecting quote posts, we face an equally important question: How should we display these quotes on our website?

    Treat quoted posts as special reply types? Quotes have different semantic meaning than replies - they’re more like “shared with commentary” So maybe create a separate “Quoted By” section similar to how we handle likes and shares?

    Any ideas?

    Also readable in: https://maho.dev/2026/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  11. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary (or reply)
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to assert that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back (blanket approval).

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - in the GetNote method.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Next Steps: The Quote Visualization Challenge

    Now that we’ve successfully implemented the backend infrastructure for consent-respecting quote posts, we face an equally important question: How should we display these quotes on our website?

    Treat quoted posts as special reply types? Quotes have different semantic meaning than replies - they’re more like “shared with commentary” So maybe create a separate “Quoted By” section similar to how we handle likes and shares?

    Any ideas?

    Also readable in: https://maho.dev/2026/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  12. A Guide to Implementing ActivityPub in a Static Site (or Any Website) - Part 9: Quote Posts

    Summary:

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Find the index and earlier parts of this series here.

    Quote Posts for Static Sites: A Practical Guide to FEP-044f Implementation

    Transform your static blog into a consent-respecting quote-enabled node in the fediverse. This guide shows you how to implement quote post support that works with Mastodon, GoToSocial, and other ActivityPub servers while respecting author preferences.

    In this guide: You’ll learn to build quote-enabled blog posts that can be responsibly shared across the fediverse

    Why Quote Posts Matter (And Why They’re Controversial)

    The User Experience Problem

    Picture this: Someone finds your blog post fascinating and wants to share it with their followers, but they also want to add their own perspective or why is important. Without quote posts, they have two unsatisfying options:

    1. Simple share: Just boost with no commentary (or reply)
    2. Link sharing: Add a link to the blog post in their note

    Neither option creates the rich, attributed conversations that make social media engaging.

    The Solution: Consent-First Quote Implementation

    We’re implementing FEP-044f: Consent-respecting quote posts in our federated blog.

    What this means for your readers:

    • They can quote your posts with confidence that you’ve opted in
    • Their quotes include proper attribution and linking

    What this means for you:

    • Automatic handling of quote requests
    • Future-ready for advanced moderation features (like in the fuuutuuure)

    Implementation Overview

    We are going to:

    1. Modify the Notes JSON to assert that the notes are quotable.
    2. Modify our Index function (the only dynamic POST endpoint) to handle quote requests and send the appropriate approval back (blanket approval).

    1. Modifying the Notes: Enhanced ActivityPub Context

    What We Changed: Extended the @context from a simple string to a rich object array supporting the GoToSocial namespace.

    Before:

    "@context": "https://www.w3.org/ns/activitystreams"
    

    After:

    "@context": [
      "https://www.w3.org/ns/activitystreams",
      {
        "gts": "https://gotosocial.org/ns#",
        "interactionPolicy": {"@id": "gts:interactionPolicy", "@type": "@id"},
        "canQuote": {"@id": "gts:canQuote", "@type": "@id"},
        "automaticApproval": {"@id": "gts:automaticApproval", "@type": "@id"}
      }
    ]
    

    We are also adding this section at the end of the Note:

    "interactionPolicy": {
      "canQuote": {
        "automaticApproval": "https://www.w3.org/ns/activitystreams#Public"
      }
    }
    

    If you want to be specific about who can quote your post, this is where you do it, read more in here.

    You can see an example of the implementation in RssUtils.cs - in the GetNote method.

    2: Quote Request Processing

    Now we need to add the quote request handling system that processes incoming quote requests and automatically approves them based on our interaction policy.

    New Components:

    • QuoteRequestService: Processes incoming quote requests from the fediverse
    • Auto-Approval Logic: Automatically approves public quote requests as defined in our interaction policy
    • Quote Authorization: Issues authorization tokens (stamps) for approved quotes

    The Quote Request Flow:

    sequenceDiagram
        participant Requester as Fediverse User
        participant Inbox as Our Inbox
        participant QRS as QuoteRequestService  
        participant Target as Target Instance
        
        Requester->>Inbox: QuoteRequest for our post
        Inbox->>QRS: Process quote request
        QRS->>QRS: Check interaction policy
        QRS->>QRS: Generate authorization stamp
        QRS->>Target: Send Accept + Authorization
        Target->>Requester: Quote approved
    
    

    Checkout the implementation in the QuoteRequestService.cs.

    Key Takeaways

    By implementing FEP-044f, we’re not just adding quote functionality - we’re building consent-respecting social interactions into the protocol level.

    Why This Matters:

    This implementation shows how static sites can participate in modern social web standards while keeping their simplicity and performance benefits. Right now, we’re automatically allowing all public quotes, but this foundation sets us up for more granular consent controls in the future - like requiring approval for specific users or implementing follower-only quoting.

    The consent-respecting approach means our content can be shared thoughtfully across the fediverse, with the infrastructure already in place to handle more sophisticated permission systems as they evolve.

    Next Steps: The Quote Visualization Challenge

    Now that we’ve successfully implemented the backend infrastructure for consent-respecting quote posts, we face an equally important question: How should we display these quotes on our website?

    Treat quoted posts as special reply types? Quotes have different semantic meaning than replies - they’re more like “shared with commentary” So maybe create a separate “Quoted By” section similar to how we handle likes and shares?

    Any ideas?

    Also readable in: https://maho.dev/2026/02/a-guide-to-implementing-activitypub-in-a-static-site-or-any-website-part-9-quote-posts/ by @mapache:

    #fediverse #activitypub #static-sites #hugo #azure #mastodon #web-development #social-web #webfinger #http #quote-posts #fep-044f

  13. blog.futtta.be on the fediverse

    Pretty sure no-one is waiting for this, but after having spent a couple of years on the Fediverse (Mastodon in my case) I decided to add ActivityPub support to my WordPress installation via the ActivityPub plugin. I have the WP Rest Cache plugin active, so I'm expecting things to gently hum along, without (most likely) or with these posts gaining traction. Kudo's to Stian and Servebolt for assisting me to get the webfinger endpoint to work, which is ... not self-explanatory on hosts that […]

    blog.futtta.be/2026/01/15/blog

  14. Found this helpful resource by Ben Boyter (@boyter): a collection of sequence diagrams explaining how #ActivityPub/#WebFinger works in practice—covering post creation, follows, boosts, deletions, and user migration.

    If you're trying to implement ActivityPub, the spec can be frustratingly vague, and different servers do things differently. This aims to be a “clean room” reference for getting federation right.

    https://github.com/boyter/activitypub

    #fediverse #fedidev

  15. I've configured static webfinger and host-meta files, so you can now find me on Mastodon simply by searching for @bexelbie. This is done by mapping my domain to my Fediverse identity without needing to host a full server.

    Huge thanks to:

    @shanselman for the excellent webfinger guide.

    @maartenballiauw for the tip on including the .well-known directory in Jekyll.

    @osma for the pointer to the host-meta file.

    #Fediverse #WebFinger #Mastodon #Jekyll #SelfHost #AlmostSortaMaybe

  16. Grundlagen der #Föderation

    A folgt B

    Das #Fediverse heißt nicht ohne Grund "föderiertes Universum". In dieser Föderation spielen viele tausend Instanzen zusammen. Aber heißt das, jede #Instanz muß den gesamten Datenbestand des gesamten Fediversums lokal vorhalten oder ständig über das Netz funken? Nein.

    Eine Basisfunktion, damit Instanzen wissen, wer sich für welche Beiträge interessiert, ist das Folgen.

    Wenn Akteur A auf Instanz A eine Folgeanfrage an Akteurin B auf Instanz B absetzt, weiß Instanz B im Anschluß, das sich jemand für die passenden (z.B. öffentlichen) Beiträge von Akteurin B auf Instanz A interessiert und wird diese ab diesem Zeitpunkt an Instanz A zustellen. Instanz A kann diese Beiträge von Akteurin B auf Instanz B dann auch in der föderierten Zeitleiste allen Nutzenden auf Instanz A anzeigen.

    Damit die Instanzen sich untereinander über ihre lokalen Konten informieren können, dient das an anderer Stelle beschriebene #Webfinger-#Protokoll.

  17. Grundlagen der #Föderation

    A folgt B

    Das #Fediverse heißt nicht ohne Grund "föderiertes Universum". In dieser Föderation spielen viele tausend Instanzen zusammen. Aber heißt das, jede #Instanz muß den gesamten Datenbestand des gesamten Fediversums lokal vorhalten oder ständig über das Netz funken? Nein.

    Eine Basisfunktion, damit Instanzen wissen, wer sich für welche Beiträge interessiert, ist das Folgen.

    Wenn Akteur A auf Instanz A eine Folgeanfrage an Akteurin B auf Instanz B absetzt, weiß Instanz B im Anschluß, das sich jemand für die passenden (z.B. öffentlichen) Beiträge von Akteurin B auf Instanz A interessiert und wird diese ab diesem Zeitpunkt an Instanz A zustellen. Instanz A kann diese Beiträge von Akteurin B auf Instanz B dann auch in der föderierten Zeitleiste allen Nutzenden auf Instanz A anzeigen.

    Damit die Instanzen sich untereinander über ihre lokalen Konten informieren können, dient das an anderer Stelle beschriebene #Webfinger-#Protokoll.

  18. @kitten

    In addition there's an easy way to check, too. Just look at the handle of this mention right here: @canary

    Is it @ correct.webfinger-canary.fietkau.software then everything works on your instance. But if it is @ wrong.webfinger-canary.fietkau.software then you're affected by this.

    correct.webfinger-canary.fietk

    #webfinger #mastodon #activitypub

  19. In #WebFinger, are there any relations that use the template property instead of the href property, excluding the http://ostatus.org/schema/1.0/subscribe relation?

    #fedidev

  20. @saiki @db_geek @MartinH

    Ich habe

    #Webfinger Support
    Redirect 301 /.well-known/webfinger /index.php/.well-known/webfinger

    ergänzt.

    In der .htaccess stand weiter oben

    RewriteCond %{HTTP_USER_AGENT} DavClnt
    RewriteRule ^$ /remote.php/webdav/ [L,R=302]
    RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteRule ^\.well-known/carddav /remote.php/dav/ [R=301,L]
    RewriteRule ^\.well-known/caldav /remote.php/dav/ [R=301,L]
    RewriteRule ^remote/(.*) remote.php [QSA,L]
    RewriteRule ^(?:build|tests|config|lib|3rdparty|templates)/.* - [R=404,L]
    RewriteRule ^\.well-known/(?!acme-challenge|pki-validation) /index.php [QSA,L]
    RewriteRule ^ocm-provider/?$ index.php [QSA,L]
    RewriteRule ^(?:\.(?!well-known)|autotest|occ|issue|indie|db_|console).* - [R=404,L]

  21. Seit dem letzten Update habe ich einen Hinweis in meiner #Nextcloud.

    Der Webserver ist nicht ordnungsgemäß für die Auflösung von `.well-known`-URLs eingerichtet. Fehler bei: `/.well-known/webfinger`

    Wer kann mich unterstützen?

    #Webfinger #31.0.8 #allinkl.com

  22. #FediverseHistogram

    On October 2, 2013, GNU social developer MMN-o (Mikael Nordfeldth) published a blog piece announcing that they'd rolled out a change to their WebFinger implementation, adding backwards-compatible support for the RFC7033 version;

    "Plus of course the former RFC6415 (Web Host Metadata), which StatusNet supports (but only XRD format)."

    web.archive.org/web/2016072211

    For those who don't know, masrodon.social was created to federate with #GnuSocial servers.

    #WebFinger #StatusNet

  23. #FediverseHistogram

    On October 2, 2013, GNU social developer MMN-o (Mikael Nordfeldth) published a blog piece announcing that they'd rolled out a change to their WebFinger implementation, adding backwards-compatible support for the RFC7033 version;

    "Plus of course the former RFC6415 (Web Host Metadata), which StatusNet supports (but only XRD format)."

    web.archive.org/web/2016072211

    For those who don't know, masrodon.social was created to federate with #GnuSocial servers.

    #WebFinger #StatusNet

  24. #FediverseHistogram

    On October 2, 2013, GNU social developer MMN-o (Mikael Nordfeldth) published a blog piece announcing that they'd rolled out a change to their WebFinger implementation, adding backwards-compatible support for the RFC7033 version;

    "Plus of course the former RFC6415 (Web Host Metadata), which StatusNet supports (but only XRD format)."

    web.archive.org/web/2016072211

    For those who don't know, masrodon.social was created to federate with #GnuSocial servers.

    #WebFinger #StatusNet

  25. #FediverseHistogram

    On October 2, 2013, GNU social developer MMN-o (Mikael Nordfeldth) published a blog piece announcing that they'd rolled out a change to their WebFinger implementation, adding backwards-compatible support for the RFC7033 version;

    "Plus of course the former RFC6415 (Web Host Metadata), which StatusNet supports (but only XRD format)."

    web.archive.org/web/2016072211

    For those who don't know, masrodon.social was created to federate with #GnuSocial servers.

    #WebFinger #StatusNet

  26. "That's the irony of what Blaine did when he created WebFinger. It was supposed to support multiple! It wasn't supposed to just be this is your fediverse address, it was supposed to be, here's how you find all the different account of information about me, and different things."

    @rabble, 2025

    wedistribute.org/podcast/s2e3-

    So ... WF is meant to facilitate something like Libravatar, where all roads lead back to a canonical profile? Hmm ...

    #identity #PortableIdentity #WebFinger

  27. 🎉 Huge shoutout to two amazing contributors from Korea's #OSSCA program who've made excellent contributions to #Fedify!

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

    #ActivityPub #opensource #fedidev

  28. 🎉 Big thanks to @2chanhaeng for his first contribution to #Fedify! He implemented the new fedify webfinger command in PR #278, which allows isolated #WebFinger lookups for testing configurations. This addresses the need for developers to test WebFinger functionality without performing comprehensive object retrieval.

    The contribution includes:

    • A new fedify webfinger <handle> command that accepts @user@domain format handles or URIs
    • Clean JSON output of WebFinger JRD results
    • Proper error handling for invalid handles and lookup failures
    • Complete #CLI integration with help text and usage examples

    This was originally filed as issue #260 and marked as a good first issue—perfect for newcomers to learn the codebase structure while contributing meaningful functionality. The PR has been merged and will be included in the upcoming Fedify 1.8.0 release.

    We appreciate all first-time contributors who help make Fedify better for the entire #fediverse community. Welcome aboard, ChanHaeng!

    #opensource #fedidev

  29. Im #Fediverse spielt das #Protokoll #WebFinger gemäß #RFC 7033 eine wichtige Rolle, um Nutzende ausfindig zu machen.

    Diese Webfinger-Abfragen finden im normalen Umgang mit dem Fediverse aus Sicht der Nutzerschaft hinter den Kulissen statt. Von einer fediversalen #Instanz wird erwartet, daß sie über eine sogenannte "Well-known #URI" (dazu an anderer Stelle mehr) auf eine Webfinger-Anfrage reagiert.

    Dieser (gut bekannte) Identifikator lautet:

    /.well-known/webfinger?resource=acct:

    (wobei die Domain der Instanz sowie die abzufragende Kennung zu ergänzen ist)

    Netterweise kann man diese Abfrage auch über die Weboberfläche von webfinger.net durchführen lassen.

    Wer neugierig ist und dies (z.B. mit der eigenen Fediverse-Adresse) ausprobieren will:

    ➡️ https://webfinger.net/ im Browser aufrufen.

    ➡️ Oben rechts im Suchkästchen "Lookup WebFinger" die gewünschte Adresse eingeben, z.B. [email protected] (ohne das führende At-Zeichen) oder die #URL-Schreibweise https://mastodonium.de/@tagestipp und das Ergebnis bewundern.

    ➡️ Es sollte ein "#JSON Resource Descriptor (JRD)" zu sehen sein. Okay, möglicherweise ist das immer noch ziemlich technisch... ;-)

    Zum Nachlesen und schmökern:
    https://en.wikipedia.org/wiki/WebFinger
    https://datatracker.ietf.org/doc/html/rfc7033
    https://webfinger.net/
    https://en.wikipedia.org/wiki/Well-known_URI
    https://de.wikipedia.org/wiki/Uniform_Resource_Identifier

  30. @moderation Die allermeisten Kreisverbände von B90/Die Grünen nutzen Wordpress, das ihnen sehr oft von Verdigado zur Verfügung gestellt wird. Grüne-Kreisverbände könnte insofern ad hoc im Fediverse relevant werden. #ActivityPub und #Webfinger-Plugin installieren, fertig. Siehe auch chaos.social/@plinubius/114721

  31. I'd love to know more about what you're thinking here.

    I don't think we're replacing #Webfinger. I think we're trying to follow through on #WhatCorySaid at #FediForum (youtube.com/watch?v=7_Gs1t0qe78)

    ...which is basically: Let regular people take their account to a new server any time they want, without relying on awful XML/CSV import/export jobs. This would go a long way to solving Fediverse UX issues and preventing enshitification.

    Is there more that I've missed?

    @mro @j12t @tchambers

  32. Das ActivityPub-Plugin für WordPress erfordert, dass bestimmte URLs funktionieren. Das trifft insbesondere auf Multisite-Instanzen mit Unterverzeichnissen zu. Erfahre, wie du deinen nginx konfigurieren musst, damit es funktioniert.

    epiph.yt/blog/2025/activitypub

    #ActivityPub #Multisite #nginx #Webfinger #WordPress

  33. Running the ActivityPub plugin for WordPress requires particular URLs to be working as expected. This is even more true for a multisite instance in a sub-directory. Learn how to configure your nginx to get it working.

    epiph.yt/en/blog/2025/activity

    #ActivityPub #Multisite #nginx #Webfinger #WordPress

  34. Oma #nextcloud palvelin on nyt toiminnassa, ja säädetty kuntoon. Muutama havainto asiaan liittyen heille, jotka suunnittelevat itsehostaamista:

    1) Nextcloud -asennuksen voi tehdä monella tapaa. Itse ajoin testin vuoksi asennukset
    #dietpi distron, #snap paketin ja #AIO (All-In-One) paketin kautta.

    2) Dietpi distron kautta asennus on melko mutkaton prosessi, käyttöliittymä retromaisen tekstipohjainen. Asentuu raudalle ilman kontteja. Joutuu säätämään jälkikäteen, jos haluaa ajella reverse proxyn kautta. Jatkoon, jos säätäminen maistuupi.

    3) Snap paketin kautta, asennus on myös melko suoraviivaista, muutaman komentorivikomennon syöttämistä. Asennus menee kontteihin, asennuksessa asentaa snap -version dockerista, josta piireissä ollaan montaa mieltä. Valkotaulun joutuu asentamaan erikseen omaan konttiin, ja on "pain in the rectal area" -tyyppistä. Myös reverse proxyn kanssa menee tappeluksi. Ei jatkoon.

    4) AIO -asennus asentaa omiin kontteihin kaiken tarpeellisen,
    #borg backupista ja valkotaulupalvelimesta lähtien. Hyvät ohjeet eri reverse proxy -vaihtoehdoille. Asennus verkkoselainpohjainen kontin kautta. Tämä valikoitui omaan purkkiini.

    5) On todella harmillista, ettei missään vaihtoehdoista saa
    #social -aplikaatiota toimimaan aplikaatiossa #webfinger -käsittelijässä lymyilevän bugin johdosta. Käänsin käytännössä kaikki kivet tuota debugatessa, ja lokien ja testien perusteella syy on apissa, ei itse nextcloud -raamissa. Jos kehitysporukka saisi tuon bugin torpattua, saisin uuden instanssin nextcloudista myös #fediverse -perheeseen.

    6) Integraatio mobiililaitteen kanssa onnistuu, valmiit apit ovat
    #android ja #iphone luureille. Itse jouduin debuggaaman oman S3 -purkkiservon kanssa, kun iPhonen appi virheili melkoisen määrän alussa. Syy löytyi lopulta #S3 servon ja #bucket -asetuksista.

    #selfhosting #asd #adhd #erityismielenkiinnonkohteet

  35. Have you ever asked yourself how the BSD Café Mastodon instance was built?

    Stefano has written here what he has done. You should have at least rudimentary knowledge of what a jail is in order to follow everything and at least a simple manner.

    In short a jail is much more efficient than a VM, uses much less resources and it's easier to control

    If you take the time to Study all the subjects, you will be a will to build a freeBSD instance of Mastodon yourself; all the information necessary Is provided Here and Deep to very Deep details you can dig up yourself

    wiki.bsd.cafe/bsdcafe-technica

    🖋️ #bash #sh #zsh #ksh #csh #tsh #programming #JavaScript #Mastodon #freeBSD #ngix #json #POSIX #SocialMedia #webfinger

  36. I have had an account on an instance where the System Operator had to shut down because the operational costs were too high to sustain the node. All proper precautions were made and the operator gave us more than six weeks to get all of our followers moved somewhere else. He also made sure that everybody got the message by sending it multiple times also through email. I've made an account there because that place was bot Friendly {botsin.space/} and I was going to Create a bot on that instance

    However, since I put so few toots out there, on that account I didn't even bother to download them. And since I'm quite aware of high internet costs, I also make sure that I have accounts on different places because in the end somebody is paying for it either in cash or paying for it by using Surplus bandwidth and surplus disc area space.

    We as Fediverse Community users should realise that nothing is free apart from Air and Water; everything else cost either Time, Space_Time or Energy, often a combination of the latter two.

    I've just checked and botsin.space/ still seems to be up as a read-only instance.

    @altbot

    🖋️ #bash #sh #zsh #ksh #csh #tsh #programming #JavaScript #Mastodon #freeBSD #ngix #json  #POSIX #SocialMedia #webfinger

  37. Make sure that you always think about the data that you divulge to big companies. Use the Easy Storage knowing that they will use your data also even your copyrighted photographs.

    Within the Fediverse it's easy to own your data, very easy, always remember that and be thankful

    🖋️ #bash #sh #zsh #ksh #csh #tsh #programming #JavaScript #Mastodon #freeBSD #ngix #json #POSIX #SocialMedia #webfinger

  38. In this article Stefano explains to you how to use a web finger system so that people can always find your address

    An important message here is that _you should always own your data_. So do not rely on cloud or web services to maintain your data. Always remember that many of those massive conglomerates use your data and sell it, literally sell it, or the metadata off it, to the highest bidder

    Within the Fediverse it's easy to migrate from one server to the next, your followers will automatically follow your new account

    it-notes.dragas.net/2024/10/08

    🖋️ #bash #sh #zsh #ksh #csh #tsh #programming #JavaScript #Mastodon #freeBSD #ngix #json #POSIX #SocialMedia #webfinger

  39. #Fedify 프레임워크의 #WebFinger 구현에서 발견된 보안 취약점 CVE-2025-23221을 해결하기 위한 보안 업데이트(1.0.14, 1.1.11, 1.2.11, 1.3.4)를 배포했습니다. 모든 사용자께서는 각자 사용 중인 버전에 해당하는 최신 버전으로 즉시 업데이트하시기를 권장합니다.

    취약점 내용

    보안 연구자가 Fedify의 lookupWebFinger() 함수에서 다음과 같은 보안 문제점들을 발견했습니다:

    • 무한 리다이렉트 루프를 통한 서비스 거부 공격 가능
    • 내부 네트워크 주소로의 리다이렉트를 통한 SSRF (서버측 요청 위조) 공격 가능
    • 리다이렉트 조작을 통한 의도하지 않은 URL 스킴 접근 가능

    수정된 버전

    • 1.3.x 시리즈: 1.3.4로 업데이트
    • 1.2.x 시리즈: 1.2.11로 업데이트
    • 1.1.x 시리즈: 1.1.11로 업데이트
    • 1.0.x 시리즈: 1.0.14로 업데이트

    변경 사항

    이번 보안 업데이트에는 다음과 같은 수정 사항이 포함되어 있습니다:

    1. 무한 리다이렉트 루프를 방지하기 위해 최대 리다이렉트 횟수 제한(5회) 도입
    2. 원래 요청과 동일한 스킴(HTTP/HTTPS)으로만 리다이렉트 허용하도록 제한
    3. SSRF 공격 방지를 위해 내부 네트워크 주소로의 리다이렉트 차단

    업데이트 방법

    다음 명령어로 최신 보안 버전으로 업데이트하실 수 있습니다:

    # npm 사용자의 경우
    npm update @fedify/fedify
    
    # Deno 사용자의 경우
    deno add jsr:@fedify/fedify
    

    이 취약점을 책임감 있게 보고해 주신 보안 연구자께 감사드립니다. 덕분에 신속하게 문제를 해결할 수 있었습니다.

    이 취약점에 대한 자세한 내용은 보안 권고문을 참고해 주시기 바랍니다.

    문의 사항이나 우려 사항이 있으시다면 GitHub DiscussionsMatrix 채팅방, 또는 Discord 서버를 통해 언제든 연락해 주시기 바랍니다.

    #보안 #보안패치 #취약점 #SSRF

  40. @point5a @Vivaldi @johnbeen So, I happened to get my #VivaldiMail address, after all. I previously did it, but I still need to set it up in on my #MacBook app for downloading. Meanwhile, I also now have a secondary #Mastodon account at #VivaldiSocial.
    I have also been completing my #Fediverse, #Mastodon, #BlueSky, and other connections at #WordPress, thanks to #ActivityPub, #Jetpack, #Webfinger, #Friends, #Hum, #Webmention, and other #plugins. Thanks also to people like @pfefferle and many others who have been making these plugin applications happen over the years. Big improvements! Almost there in my setup… getting better everyday. I’ve been incredibly productive, and on the way! Thanks to the community here!! @mastodonmigration too.

  41. @mastodonmigration @bob So, I looked at your instructions, but I realized that they need an update.
    First, the desktop editor is not the same as the iPhone #WordPress - #WebsiteBuilder app. Somehow, I kept getting difficulties from the iPhone app to connect #Mastodon and #BlueSky. So, I instead went back to my laptop and did it there.
    This is now done by going into the editor, and selecting TOOLS >MARKETING; and then see the CONNECTIONS button on the page (right of the menu). Or HOSTING >CONNECTIONS, depending on how you’re logged in.

    Then hit the CONNECT button, sign into the Mastodon Account handle, approve the connection to WordPress by "authorizing" it. You may get a pop-up window in the process.

    #Jetpack #ActivityPub #WebFinger #NodeInfo #WebMention #URLshortener #PlugIn #Fediverse #Marketing #Sharing #SocialMedia #MarketingIntegrations #OnlineEngagement #AudienceEngagement

  42. @mastodonmigration @bob So, I looked at your instructions, but I realized that they need an update.
    First, the desktop editor is not the same as the iPhone #WordPress - #WebsiteBuilder app. Somehow, I kept getting difficulties from the iPhone app to connect #Mastodon and #BlueSky. So, I instead went back to my laptop and did it there.
    This is now done by going into the editor, and selecting TOOLS >MARKETING; and then see the CONNECTIONS button on the page (right of the menu). Or HOSTING >CONNECTIONS, depending on how you’re logged in.

    Then hit the CONNECT button, sign into the Mastodon Account handle, approve the connection to WordPress by "authorizing" it. You may get a pop-up window in the process.

    #Jetpack #ActivityPub #WebFinger #NodeInfo #WebMention #URLshortener #PlugIn #Fediverse #Marketing #Sharing #SocialMedia #MarketingIntegrations #OnlineEngagement #AudienceEngagement

  43. @mastodonmigration @bob So, I looked at your instructions, but I realized that they need an update.
    First, the desktop editor is not the same as the iPhone #WordPress - #WebsiteBuilder app. Somehow, I kept getting difficulties from the iPhone app to connect #Mastodon and #BlueSky. So, I instead went back to my laptop and did it there.
    This is now done by going into the editor, and selecting TOOLS >MARKETING; and then see the CONNECTIONS button on the page (right of the menu). Or HOSTING >CONNECTIONS, depending on how you’re logged in.

    Then hit the CONNECT button, sign into the Mastodon Account handle, approve the connection to WordPress by "authorizing" it. You may get a pop-up window in the process.

    #Jetpack #ActivityPub #WebFinger #NodeInfo #WebMention #URLshortener #PlugIn #Fediverse #Marketing #Sharing #SocialMedia #MarketingIntegrations #OnlineEngagement #AudienceEngagement