Github Mastodon Verification

How to get that ever-so-satisfying check mark and green translucent glow on your profile’s metadata?

Users can add up to four key:value pairs and populate them with whatever information they want. Here the admin user has a link to a support page, a link to his GitHub account, and a link to a website that he also manages.
Pretty enviable, right? You have to save changes to trigger the verification.

This guide by helped me get my verification on Mastodon Mexican Bold. It contains some HTML code that you can customize to point to your own page.

<!DOCTYPE html>
    <meta charset="utf-8" />
    <title>Redirecting to</title>
    <meta http-equiv="refresh" content="0; URL=">
    <link href="" rel="me">
    <link href="" rel="me">
    <link href="" rel="me">
  <body style="margin: 0; padding: 0">
        display: block;
        height: 100vh;
        width: 100vw;
        margin: 0;
        padding: 0;
        color: white;

I’d already created a GitHub repository and had it serving a static site that I made with Flutter several years ago as a test. I deleted almost all that was there – especially the CNAME file that contained an earlier pointer to (Note to self: that’s why, at first, it was redirecting to and not to which is where I keep all my repositories.)

Here’s another example by someone else: Mr. Hodges takes a different tack and redirects to, a static GitHub page instead of his GitHub profile page.

Mastodon up! @you@your.domain

#Test case:

Sign-in to your Mastodon instance. Search for What result do you get?*

Double the fun.  Search for, another alias of mine. What result do you get?*


Say you want to explore different servers, switching instances as you see fit. Today, it’s Mastodon.Social. Tomorrow, it’s Something.Else.

You have your own website https://your.domain. You’re thinking, “I’ll scrape the web for all the places where my handle appears. I’ll change to @me@something.else.”

You could have had a V-8.  You could have used your domain as your permanent, #portable, #interoperable (?) mastodon handle, even though you haven’t set up your own personal Mastodon server.


You can add an endpoint to https://your.domain/.well-known/webfinger that points to your latest Mastodon instance. Follow this guide by Your mileage may vary.

My experience was pretty much problem free. I reworked the #Sveltekit code for a couple of domains that I host on a Linux Ubuntu server on Google Cloud Platform. I came across a github issue that offered different ideas. The one that worked for me was the simplest. I added a dot folder under static/ and then created a blank file named ‘webfinger’ and then I put the json output of the GET command in the blank file. That was on my local development machine.

Here’s how I get the json:

$ curl | python3 -mjson.tool

That outputs the following:

“subject”: “”,
“aliases”: [
“links”: [
“rel”: “”,
“type”: “text/html”,
“href”: “”
“rel”: “self”,
“type”: “application/activity+json”,
“href”: “”
“rel”: “”,
“template”: “{uri}”

Copy and paste into the blank webfinger file (static/.well-known/webfinger). There’s nothing else in that file. I tried adding the output from a second account thinking I could add the json from an indefinite number of accounts, but if that’s even possible it didn’t work for me.

My process for updating a #Sveltekit web site is manual and somewhat tedious but not terribly laborious. Yes, it is toil and I should automate it. Most of my commands are in history and so I usually just use control-r in bash and find the right command. In svelte.config.js I use adapter-node. I self-host on Google Cloud Platform and use Nginx with upstream directives serving each site on a different port. I run PM2 process manager. I should do a post on my tedious-not-too-laborious-toil-nonetheless #sveltekit deployment process.

Once deployed, visit it and add .well-known/webfinger to your path and you should see some output. In Mastodon, search for your account using your new alias.  Now give your alias to any prospective mastodon user (any activitypub user?). Someone who searches for you in the Mastodon using @you@your.domain should get a result that matches the instance name that you’ve put in the webfinger file. When you change instances, simply rerun the curl command and swap the output and re-build and re-deploy.

So Mastodon UP! Roam wide and far, high and low, from now until … we go extinct.

* both times the result should be the same: The reason is that I put the same webfinger file in the .well-known folder for each of my domains, and