I had not given much thought to well-known URIs until recently. It wasn’t relevant to my day job, and of little relevance to my personal website besides its use with Let’s Encrypt and webfinger on the Fediverse.
However, Jim Nielsen’s post about well-known URLs for avatars piqued my interest. It makes a hell of a lot of sense to have one’s avatar or profile picture for forums and social media in a standardized location, and it’s fairly easily implemented. Nielsen uses Netlify, which allows him to set up HTTP redirects for his site, but I can accomplish the same on NearlyFreeSpeech.net by a slightly different method.
Netlify probably translates their redirects syntax to .htaccess
; I’ll just add a couple of redirects to my .htaccess
file
directly:
RedirectMatch 301 /.well-known/avatar /media/tattoo.png
RedirectMatch 301 /.well-known/cv /about/cv.html
There is a potential problem with redirecting directly to a JPEG or PNG file: anybody hitting /.well-known/avatar
doesn’t necessarily know what sort of file to expect. I imagine that if the IETF were to formally define an avatar
URI it would
probably be a JSON file that looks somewhat like this:
{
"url": "https://starbreaker.org/media/tattoo.png",
"mimeType": "image/png",
"width": "1024",
"height": "1024",
"altText": "a stylized tattoo that several characters in the operator's fiction have gotten"
}
avatar
file containing an image url, MIME type, dimensions, and alt textThis would give a service all the information needed to consume the provided avatar, though it would have to make a second HTTP request to actually get the image. Instead, it might be more efficient and convenient to do it Nielsen’s way and let the consumer figure out how to cope with the image after retrieval.
Now, if you refer to my sample htaccess you might notice that I not only implemented .well-known/avatar
, but .well-known/cv
besides. You might reasonably wonder what that is. If you’ll indulge me a bit longer, I’ll explain.
A CV, or curriculum vitae, is what people outside the United States call a résumé. It’s a summary of your professional experience and accomplishments, along with your education if you were privileged enough to attend a college or university and graduate with a degree.
It is something that I think should have a well-known URI because of its importance to one’s life. If you want employment, you need one of these. However, we’ve been encouraged to trust such data about our professional lives to platforms like LinkedIn and Indeed and job boards like Monster.com and Dice.com — none of which are operated with our needs and interests foremost in the minds of their management.
Besides, if we’re going to use our domains as our parasocial media handles, and serve our profile pics from our own domains, why shouldn’t our websites be the source of truth for other data as well?
Therefore I propose .well-known/cv
as an alternative, named thus because it need not only be useful to
Americans. If you have your own website, why wouldn’t you host your résumé or CV there in a sensible format like text/html
, text/plain
(with Markdown for formatting) or even application/pdf
.
Or, we could also make .well-known/cv
a JSON object like the following.
{
"name": "Matthew Graybosch",
"email": "contact@starbreaker.org",
"url": "https://starbreaker.org/about/cv.html",
"mimeType": "text/html"
"situationWanted": {
"job": "software developer",
"type": "remote",
"status": "W2",
"minSalary": "120000",
"currency": "USD"
},
"skills": "C#, SQL, .NET Core, JavaScript, React, Angular, Vue, HTML, CSS, GNU/Linux, shell scripting"
}
.well-known/cv
providing the candidate’s name, email, CV url, MIME type, a “situation
wanted” summary, and a comma-separated list of skillsThis does have the same downside as a JSON object for .well-known/avatar
in that it would take two
HTTP requests to actually get the CV, but I’m content to let that be the IETF’s problem. I doubt that this will catch
on and become a de facto standard by virtue of popularity, let alone an official standard.
But this is one case where I wouldn’t mind being proven wrong, if only because it would help make LinkedIn even more irrelevant as a tool for jobseekers than it already is. In the meantime, I can now delete with a clear conscience any cold email from a recruiter that doesn’t claim to have gotten my résumé from my website. If they say they got it from LinkedIn or “a job board” I can now be sure that they’re either lying to me or working from woefully outdated information.
In the meantime, here is my avatar and cv. If you have a website and you can set up HTTP redirects, you can implement these yourself.
And if you really want to go nuts, let’s talk about .well-known/dating
. Imagine if people looking for
a romantic or sexual relationship didn’t have to depend on apps like Tinder and Grindr…