<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/rss-style.xsl" type="text/xsl"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	     xmlns:dc="http://purl.org/dc/elements/1.1/"
	   xmlns:atom="http://www.w3.org/2005/Atom"
	     xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	  xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>
<channel>
	<title>avatar &#8211; Terence Eden’s Blog</title>
	<atom:link href="https://shkspr.mobi/blog/tag/avatar/feed/" rel="self" type="application/rss+xml" />
	<link>https://shkspr.mobi/blog</link>
	<description>Regular nonsense about tech and its effects 🙃</description>
	<lastBuildDate>Thu, 23 Oct 2025 14:43:24 +0000</lastBuildDate>
	<language>en-GB</language>
	<copyright>© Terence Eden. 🄯 CC BY-SA. See https://shkspr.mobi/blog/copyright-and-copyleft/</copyright>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://shkspr.mobi/blog/wp-content/uploads/2023/07/cropped-avatar-32x32.jpeg</url>
	<title>avatar &#8211; Terence Eden’s Blog</title>
	<link>https://shkspr.mobi/blog</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title><![CDATA[.well-known/avatar]]></title>
		<link>https://shkspr.mobi/blog/2024/03/well-known-avatar/</link>
					<comments>https://shkspr.mobi/blog/2024/03/well-known-avatar/#comments</comments>
				<dc:creator><![CDATA[Terence Eden]]></dc:creator>
		<pubDate>Sun, 17 Mar 2024 12:34:47 +0000</pubDate>
		<category><![CDATA[avatar]]></category><category><![CDATA[IETF]]></category><category><![CDATA[Open Standards]]></category><category><![CDATA[standards]]></category>		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=49907</guid>

					<description><![CDATA[Hot on the heels of a post I wrote 4 years ago, wouldn&#039;t it be useful to have a well-known URl for user avatar images?  When I sign up to a web service, I don&#039;t want to faff around uploading an image to use as my avatar. I want that service to look at my email address or social-sign-in and automatically pick up my preferred graphic.  Here&#039;s how I see it working.   A user signs in to a service…]]></description>
										<content:encoded>&lt;p&gt;Hot on the heels of &lt;a href="https://shkspr.mobi/blog/2020/03/one-avatar-to-rule-them-all/"&gt;a post I wrote 4 years ago&lt;/a&gt;, wouldn't it be useful to have a &lt;a href="https://en.wikipedia.org/wiki/Well-known_URI"&gt;well-known URl&lt;/a&gt; for user avatar images?&lt;/p&gt;

&lt;p&gt;When I sign up to a web service, I don't want to faff around uploading an image to use as my avatar. I want that service to look at my email address or social-sign-in and automatically pick up my preferred graphic.&lt;/p&gt;

&lt;p&gt;Here's how I see it working.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A user signs in to a service with the email address &lt;code&gt;username@example.com&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;In a similar way to &lt;a href="https://www.rfc-editor.org/rfc/rfc7033"&gt;WebFinger&lt;/a&gt;, the service makes a request to:

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;example.com/.well-known/avatar?resource=acct:username@example.com&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;If the request's &lt;code&gt;Accept&lt;/code&gt; header has a MIME type of &lt;code&gt;image/*&lt;/code&gt;, then the server immediately returns an image.&lt;/li&gt;
&lt;li&gt;If the request's &lt;code&gt;Accept&lt;/code&gt; header has a MIME type of &lt;code&gt;application/json&lt;/code&gt;, then the server can return a WebFinger-style document with &lt;code&gt;"rel":"http://webfinger.net/rel/avatar"&lt;/code&gt; and, perhaps, a list of different images, formats, and sizes.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This makes it incredibly simple for people to use the same avatar &lt;em&gt;everywhere&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;It also means that if you're designing a service which publicly shows usernames, you can make avatars available without an expensive API call. For example, Twitter could make user's avatars available at:
&lt;code&gt;twitter.com/.well-known/avatars?resource=acct:edent&lt;/code&gt;&lt;/p&gt;

&lt;h2 id="but-what-about"&gt;&lt;a href="https://shkspr.mobi/blog/2024/03/well-known-avatar/#but-what-about"&gt;But what about...?&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;This is a sketch of an idea. I'd like to know if people think it is useful before I take it any further.&lt;/p&gt;

&lt;p&gt;I don't think it breaches privacy - a user's image is public on all services anyway.&lt;/p&gt;

&lt;p&gt;Users should still be given the option of changing their avatar if they want.&lt;/p&gt;

&lt;p&gt;A service shouldn't expose the user's email address - they should proxy the image.&lt;/p&gt;

&lt;p&gt;Anything else I should have thought of?&lt;/p&gt;

&lt;p&gt;&lt;ins datetime="2024-03-18T15:05:30+00:00"&gt;Updates&lt;/ins&gt;&lt;/p&gt;

&lt;p&gt;To stave off some common points raised.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No this isn't like &lt;a href="https://shkspr.mobi/blog/2020/03/one-avatar-to-rule-them-all/"&gt;Gravatar&lt;/a&gt;. That works by being a 3rd party service and using the MD5 of your email address.&lt;/li&gt;
&lt;li&gt;No this isn't like &lt;a href="https://www.libravatar.org/"&gt;Libravatar&lt;/a&gt;. See above.&lt;/li&gt;
&lt;li&gt;No this isn't like WebFinger. That only returns JSON.&lt;/li&gt;
&lt;li&gt;No this isn't like h-card. That requires a server to parse HTML in order to find an image.&lt;/li&gt;
&lt;li&gt;No this isn't like &lt;a href="https://shkspr.mobi/blog/2022/08/dns-esoterica-bimi-svg-in-dns-txt-wtf/"&gt;BIMI&lt;/a&gt;. That's expensive and only supports SVG.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=49907&amp;amp;HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager"&gt;</content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2024/03/well-known-avatar/feed/</wfw:commentRss>
			<slash:comments>31</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Goodbye avatars .io - hello unavatar!]]></title>
		<link>https://shkspr.mobi/blog/2020/07/goodbye-avatars-io-hello-unavatar/</link>
					<comments>https://shkspr.mobi/blog/2020/07/goodbye-avatars-io-hello-unavatar/#comments</comments>
				<dc:creator><![CDATA[Terence Eden]]></dc:creator>
		<pubDate>Fri, 03 Jul 2020 11:43:30 +0000</pubDate>
		<category><![CDATA[avatar]]></category><category><![CDATA[HTML]]></category><category><![CDATA[programming]]></category>		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=35489</guid>

					<description><![CDATA[Given a social media user&#039;s username, how do you get a picture of their avatar?  I always used avatars.io - but sadly that service has bitten the dust. So I&#039;ve switched to unavatar.  It&#039;s dead easy to use.  https://unavatar.now.sh/twitter/edent will return @edent&#039;s avatar.  You can use GitHub, Facebook, Gravatar, Instagram, Telegram, YouTube, SoundCloud, and a couple of other providers.  Simple…]]></description>
										<content:encoded>&lt;p&gt;Given a social media user's username, how do you get a picture of their avatar?&lt;/p&gt;

&lt;p&gt;I always used avatars.io - but sadly that service has bitten the dust. So I've switched to &lt;a href="https://github.com/microlinkhq/unavatar"&gt;unavatar&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It's dead easy to use.  &lt;a href="https://unavatar.now.sh/twitter/edent"&gt;&lt;code&gt;https://unavatar.now.sh/twitter/edent&lt;/code&gt;&lt;/a&gt; will return @edent's avatar.  You can use GitHub, Facebook, Gravatar, Instagram, Telegram, YouTube, SoundCloud, and a couple of other providers.&lt;/p&gt;

&lt;p&gt;Simple to use, and easy to embed in an &lt;code&gt;&amp;lt;img&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;p&gt;It's also &lt;a href="https://github.com/Kikobeats/unavatar"&gt;open source&lt;/a&gt; and looks pretty easy to deploy if you want to host it yourself.&lt;/p&gt;

&lt;h2 id="why-is-this-needed"&gt;&lt;a href="https://shkspr.mobi/blog/2020/07/goodbye-avatars-io-hello-unavatar/#why-is-this-needed"&gt;Why is this needed?&lt;/a&gt;&lt;/h2&gt;

&lt;p&gt;In an ideal world, there would be a standard for where to find a user's avatar. Possibly a &lt;a href="https://tools.ietf.org/html/rfc8615"&gt;&lt;code&gt;.well-known&lt;/code&gt;&lt;/a&gt; resource. Until then, we have to make do with 3rd party services playing intermediary.&lt;/p&gt;
&lt;img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=35489&amp;amp;HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager"&gt;</content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2020/07/goodbye-avatars-io-hello-unavatar/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title><![CDATA[Previewing Circular Avatars]]></title>
		<link>https://shkspr.mobi/blog/2017/07/previewing-circular-avatars/</link>
					<comments>https://shkspr.mobi/blog/2017/07/previewing-circular-avatars/#respond</comments>
				<dc:creator><![CDATA[Terence Eden]]></dc:creator>
		<pubDate>Sun, 02 Jul 2017 11:04:05 +0000</pubDate>
		<category><![CDATA[avatar]]></category><category><![CDATA[code]]></category><category><![CDATA[HowTo]]></category><category><![CDATA[mvp]]></category><category><![CDATA[Social Networks]]></category>		<guid isPermaLink="false">https://shkspr.mobi/blog/?p=25441</guid>

					<description><![CDATA[Play with the demo  I was lucky enough to go to Number 10 Downing Street for a meeting a few weeks ago.  A perfect opportunity for a photo of me by that famous door.    Being the vain man that I am, I wanted to set it as my avatar photo.  But Twitter and other social networks now use circular avatars.    The &#34;10&#34; has been obliterated and part of my head is missing.  So I&#039;ve created a quick way to …]]></description>
										<content:encoded>&lt;p&gt;&lt;a href="https://edent.github.io/AvatarPreview/"&gt;Play with the demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I was lucky enough to go to Number 10 Downing Street for a meeting a few weeks ago.  A perfect opportunity for a photo of me by that famous door.&lt;/p&gt;

&lt;img src="https://shkspr.mobi/blog/wp-content/uploads/2017/07/Terence-at-Number-10-Square.jpg" alt="Terence at Number 10 Downing Street" width="256" height="256" class="aligncenter size-full wp-image-25443" style="border-radius:0%"&gt;

&lt;p&gt;Being the vain man that I am, I wanted to set it as my avatar photo.  But Twitter and other social networks now use circular avatars.&lt;/p&gt;

&lt;img src="https://shkspr.mobi/blog/wp-content/uploads/2017/07/Terence-at-Number-10-Circle.jpg" alt="Terence at Number 10 - the door number is obscured as is part of his face because the photo has been cropped in a circle" width="256" height="256" class="aligncenter size-full wp-image-25442" style="border-radius:0%"&gt;

&lt;p&gt;The "10" has been obliterated and part of my head is missing.&lt;/p&gt;

&lt;p&gt;So I've created a quick way to preview avatar images to see how they'll look on both squares and circles.  It places a simple overlay on top of your image - like so:&lt;/p&gt;

&lt;img src="https://shkspr.mobi/blog/wp-content/uploads/2017/07/Guidelines.jpg" alt="The same photo - but with a red circular guideline superimposed" width="262" height="262" class="aligncenter size-full wp-image-25444" style="border-radius:0%"&gt;

&lt;p&gt;Images can be panned around and zoomed using the mouse.&lt;/p&gt;

&lt;p&gt;You can &lt;a href="https://edent.github.io/AvatarPreview/"&gt;play with the demo&lt;/a&gt;&lt;/p&gt;

&lt;iframe src="https://edent.github.io/AvatarPreview/" width="100%" height="400px"&gt;&lt;/iframe&gt;

&lt;p&gt;This is only a Minimum Viable Prototype - pull requests welcome!&lt;/p&gt;
&lt;img src="https://shkspr.mobi/blog/wp-content/themes/edent-wordpress-theme/info/okgo.php?ID=25441&amp;amp;HTTP_REFERER=RSS" alt="" width="1" height="1" loading="eager"&gt;</content:encoded>
					
					<wfw:commentRss>https://shkspr.mobi/blog/2017/07/previewing-circular-avatars/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
