Close Menu
geekfence.comgeekfence.com
    What's Hot

    ClickFix attackers using new tactic to evade detection, says Microsoft – Computerworld

    March 7, 2026

    M&A Monthly: February/March 2026

    March 7, 2026

    Posit AI Blog: luz 0.4.0

    March 7, 2026
    Facebook X (Twitter) Instagram
    • About Us
    • Contact Us
    Facebook Instagram
    geekfence.comgeekfence.com
    • Home
    • UK Tech News
    • AI
    • Big Data
    • Cyber Security
      • Cloud Computing
      • iOS Development
    • IoT
    • Mobile
    • Software
      • Software Development
      • Software Engineering
    • Technology
      • Green Technology
      • Nanotechnology
    • Telecom
    geekfence.comgeekfence.com
    Home»Software Development»Use your own user @ domain for Mastodon discoverability with the WebFinger Protocol without hosting a server
    Software Development

    Use your own user @ domain for Mastodon discoverability with the WebFinger Protocol without hosting a server

    AdminBy AdminDecember 9, 2025No Comments4 Mins Read0 Views
    Facebook Twitter Pinterest LinkedIn Telegram Tumblr Email
    Use your own user @ domain for Mastodon discoverability with the WebFinger Protocol without hosting a server
    Share
    Facebook Twitter LinkedIn Pinterest Email



    Mastodon is a free, open-source social networking service that is decentralized and distributed. It was created in 2016 as an alternative to centralized social media platforms such as Twitter and Facebook.

    One of the key features of Mastodon is the use of the WebFinger protocol, which allows users to discover and access information about other users on the Mastodon network. WebFinger is a simple HTTP-based protocol that enables a user to discover information about other users or resources on the internet by using their email address or other identifying information. The WebFinger protocol is important for Mastodon because it enables users to find and follow each other on the network, regardless of where they are hosted.

    WebFinger uses a “well known” path structure when calling an domain. You may be familiar with the robots.txt convention. We all just agree that robots.txt will sit at the top path of everyone’s domain.

    The WebFinger protocol is a simple HTTP-based protocol that enables a user or search to discover information about other users or resources on the internet by using their email address or other identifying information. My is first name at last name .com, so…my personal WebFinger API endpoint is here

    The idea is that…

    1. A user sends a WebFinger request to a server, using the email address or other identifying information of the user or resource they are trying to discover.

    2. The server looks up the requested information in its database and returns a JSON object containing the information about the user or resource. This JSON object is called a “resource descriptor.”

    3. The user’s client receives the resource descriptor and displays the information to the user.

    The resource descriptor contains various types of information about the user or resource, such as their name, profile picture, and links to their social media accounts or other online resources. It can also include other types of information, such as the user’s public key, which can be used to establish a secure connection with the user.

    There’s a great explainer here as well. From that page:

    When someone searches for you on Mastodon, your server will be queried for accounts using an endpoint that looks like this:

    GET https://${MASTODON_DOMAIN}/.well-known/webfinger?resource=acct:${MASTODON_USER}@${MASTODON_DOMAIN}

    Note that Mastodon user names start with @ so they are @username@someserver.com. Just like twiter would be @shanselman@twitter.com I can be @shanselman@hanselman.com now!

    Searching for me with Mastodon

    So perhaps ?resource=acct:FRED@HANSELMAN.COM

    Mine returns

    {
    "subject":"acct:shanselman@hachyderm.io",
    "aliases":
    [
    "https://hachyderm.io/@shanselman",
    "https://hachyderm.io/users/shanselman"
    ],
    "links":
    [
    {
    "rel":"http://webfinger.net/rel/profile-page",
    "type":"text/html",
    "href":"https://hachyderm.io/@shanselman"
    },
    {
    "rel":"self",
    "type":"application/activity+json",
    "href":"https://hachyderm.io/users/shanselman"
    },
    {
    "rel":"http://ostatus.org/schema/1.0/subscribe",
    "template":"https://hachyderm.io/authorize_interaction?uri={uri}"
    }
    ]
    }

    This file should be returned as a mime type of application/jrd+json

    My site is an ASP.NET Razor Pages site, so I just did this in Startup.cs to map that well known URL to a page/route that returns the JSON needed.

    services.AddRazorPages().AddRazorPagesOptions(options =>
    {
    options.Conventions.AddPageRoute("/robotstxt", "/Robots.Txt"); //i did this before, not needed
    options.Conventions.AddPageRoute("/webfinger", "/.well-known/webfinger");
    options.Conventions.AddPageRoute("/webfinger", "/.well-known/webfinger/{val?}");
    });

    then I made a webfinger.cshtml like this. Note I have to double escape the @@ sites because it’s Razor.

    @page
    @{
    Layout = null;
    this.Response.ContentType = "application/jrd+json";
    }
    {
    "subject":"acct:shanselman@hachyderm.io",
    "aliases":
    [
    "https://hachyderm.io/@@shanselman",
    "https://hachyderm.io/users/shanselman"
    ],
    "links":
    [
    {
    "rel":"http://webfinger.net/rel/profile-page",
    "type":"text/html",
    "href":"https://hachyderm.io/@@shanselman"
    },
    {
    "rel":"self",
    "type":"application/activity+json",
    "href":"https://hachyderm.io/users/shanselman"
    },
    {
    "rel":"http://ostatus.org/schema/1.0/subscribe",
    "template":"https://hachyderm.io/authorize_interaction?uri={uri}"
    }
    ]
    }

    This is a static response, but if I was hosting pages for more than one person I’d want to take in the url with the user’s name, and then map it to their aliases and return those correctly.

    Even easier, you can just use the JSON file of your own Mastodon server’s webfinger response and SAVE IT as a static json file and copy it to your own server!

    As long as your server returns the right JSON from that well known URL then it’ll work.

    So this is my template from where I’m hosted now.

    If you want to get started with Mastodon, start here. it feels like Twitter circa 2007 except it’s not owned by anyone and is based on web standards like ActivityPub.

    Hope this helps!




    About Scott

    Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

    facebook
    bluesky
    subscribe
    About   Newsletter

    Hosting By
    Hosted on Linux using .NET in an Azure App Service












    Source link

    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email

    Related Posts

    Stop Paving the Cowpath: Why Agentic-First Is the Only Way to Build for the Enterprise

    March 7, 2026

    Voice Content and Usability – A List Apart

    March 6, 2026

    How to Play Grand Poo World 3

    March 5, 2026

    Humans and Agents in Software Engineering Loops

    March 4, 2026

    Tips on How to Hire .NET Developers in Poland

    March 1, 2026

    MCP leaves much to be desired when it comes to data privacy and security

    February 28, 2026
    Top Posts

    Hard-braking events as indicators of road segment crash risk

    January 14, 202619 Views

    Understanding U-Net Architecture in Deep Learning

    November 25, 202518 Views

    How to integrate a graph database into your RAG pipeline

    February 8, 202610 Views
    Don't Miss

    ClickFix attackers using new tactic to evade detection, says Microsoft – Computerworld

    March 7, 2026

    “And all Windows computers should already be restricted so that random, unsigned (not signed by…

    M&A Monthly: February/March 2026

    March 7, 2026

    Posit AI Blog: luz 0.4.0

    March 7, 2026

    Top Reasons to Choose Precisely for SAP and Salesforce Process Automation

    March 7, 2026
    Stay In Touch
    • Facebook
    • Instagram
    About Us

    At GeekFence, we are a team of tech-enthusiasts, industry watchers and content creators who believe that technology isn’t just about gadgets—it’s about how innovation transforms our lives, work and society. We’ve come together to build a place where readers, thinkers and industry insiders can converge to explore what’s next in tech.

    Our Picks

    ClickFix attackers using new tactic to evade detection, says Microsoft – Computerworld

    March 7, 2026

    M&A Monthly: February/March 2026

    March 7, 2026

    Subscribe to Updates

    Please enable JavaScript in your browser to complete this form.
    Loading
    • About Us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • Terms and Conditions
    © 2026 Geekfence.All Rigt Reserved.

    Type above and press Enter to search. Press Esc to cancel.