<?xml version="1.0" encoding="UTF-8" standalone="no"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>Doug Belshaw's blog</title><description>Open Educational Thinkering.</description><link>https://blog.dougbelshaw.com/</link><image><url>https://blog.dougbelshaw.com/favicon.png</url><title>Open Thinkering</title><link>https://blog.dougbelshaw.com/</link></image><generator>Ghost 6.22</generator><lastBuildDate>Sat, 16 May 2026 01:12:45 GMT</lastBuildDate><atom:link href="https://blog.dougbelshaw.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:image href="https://pbs.twimg.com/profile_images/596578671835684864/F4jBfz4Y.jpg"/><itunes:keywords>education,edtech,technology,productivity,schools</itunes:keywords><itunes:summary>Education, Technology &amp; Productivity.</itunes:summary><itunes:subtitle>Education, Technology &amp; Productivity.</itunes:subtitle><itunes:category text="Education"><itunes:category text="Educational Technology"/></itunes:category><itunes:author>Doug Belshaw</itunes:author><item><title><![CDATA[A brief guide to self-hosting websites and apps using Cloudflare Tunnel]]></title><description><![CDATA[TechFreedom is about trade-offs. And there's nothing quite like hosting things on something that lives on your desk...]]></description><link>https://blog.dougbelshaw.com/cloudflare-tunnel/</link><guid isPermaLink="false">6a058c09557ad600013699a0</guid><category><![CDATA[Technology]]></category><category><![CDATA[self-hosting]]></category><category><![CDATA[TechFreedom]]></category><pubDate>Fri, 15 May 2026 07:27:46 GMT</pubDate><media:content medium="image" url="https://images.unsplash.com/photo-1542577195-d562c6698ff3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fHR1bm5lbHxlbnwwfHx8fDE3Nzg3NTExMDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000"/><content:encoded><![CDATA[<blockquote>If you&apos;re having speed problems, I feel bad for you son / I got 99 problems, but fibre ain&apos;t one</blockquote><img src="https://images.unsplash.com/photo-1542577195-d562c6698ff3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fHR1bm5lbHxlbnwwfHx8fDE3Nzg3NTExMDd8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="A brief guide to self-hosting websites and apps using Cloudflare Tunnel"><p>What follows is a brief overview of how I&apos;m hosting most of my websites and the <a href="https://dynamicskillset.com/tools?ref=blog.dougbelshaw.com" rel="noreferrer">tools I&apos;ve created</a> using a Mac Mini M1 (8GB) and <a href="https://developers.cloudflare.com/tunnel/?ref=blog.dougbelshaw.com">Cloudflare Tunnel</a>. </p><p>This means that, instead of paying &#xA3;30/month for a VPS, I&apos;m paying nothing other than the cost of the electricity to my Mac Mini.</p><p>Here are some slightly ironic caveats given what we&apos;re trying to achieve through <a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com" rel="noreferrer">TechFreedom</a>:</p><ol><li>Your internet connection needs to be fast enough and reliable enough to make this work</li><li>Cloudflare Tunnel doesn&apos;t really have any competitors. I&apos;ve looked, and they all do <em>part</em> of what it offers, but not all. So while I&apos;d prefer not to rely on a US-based company, I&apos;m tolerating this for now.</li><li>You can do this on any kind of machine and operating system, but Mac Minis are fast, cheap, and <a href="https://support.apple.com/en-gb/guide/mac-help/mh14066/mac?ref=blog.dougbelshaw.com">macOS Screen Sharing</a> is <em>extremely</em> easy. This means I can run it without a monitor. </li></ol><h2 id="step-1-prepare-the-mac-mini">Step 1: Prepare the Mac Mini</h2><p>You&apos;ll need a monitor attached to your Mac Mini for steps 1-5, and then here&apos;s what to do:</p><p>1. Plug the Mac Mini to your router, or wireless access point, via ethernet.</p><figure class="kg-card kg-image-card"><img src="https://blog.dougbelshaw.com/content/images/2026/05/macos-network-settings.png" class="kg-image" alt="A brief guide to self-hosting websites and apps using Cloudflare Tunnel" loading="lazy" width="1670" height="1178" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/05/macos-network-settings.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/05/macos-network-settings.png 1000w, https://blog.dougbelshaw.com/content/images/size/w1600/2026/05/macos-network-settings.png 1600w, https://blog.dougbelshaw.com/content/images/2026/05/macos-network-settings.png 1670w" sizes="(min-width: 720px) 720px"></figure><ol start="2"><li>Ensure that your Mac Mini has a consistent IP address from your router. You can do this in the router settings, but you can also do it in macOS by going to <strong>System Settings </strong>&#x2192; Network &#x2192; Ethernet &#x2192; Details &#x2192; TCP/IP and select &apos;Manually&apos; under &apos;Configure IPv4&apos;. If your Router is 192.168.0.1, for example, choose something that&apos;s free like 192.168.0.99</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.dougbelshaw.com/content/images/2026/05/macos-energy-settings.png" class="kg-image" alt="A brief guide to self-hosting websites and apps using Cloudflare Tunnel" loading="lazy" width="1200" height="836" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/05/macos-energy-settings.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/05/macos-energy-settings.png 1000w, https://blog.dougbelshaw.com/content/images/2026/05/macos-energy-settings.png 1200w" sizes="(min-width: 720px) 720px"></figure><ol start="3"><li>Ensure that your Mac Mini stays on by going to <strong>System Settings</strong> &#x2192; Energy and setting sensible settings (see screenshot above)</li><li>Automatically log yourself in as an administrator by going to <strong>System Settings</strong> &#x2192; Users &amp; Groups. Note that this means you have to turn off FileVault.</li><li>Enable Screen Sharing by going to <strong>System Settings</strong> &#x2192; Sharing and turning it on.</li><li>Now disconnect the monitor from your Mac Mini, and try to connect to it from another Mac via <strong>Screen Sharing</strong>. </li><li>Once that&apos;s working, install <a href="https://www.docker.com/?ref=blog.dougbelshaw.com">Docker Desktop</a> on your Mac Mini.</li></ol><h2 id="step-2-set-up-a-cloudflare-tunnel">Step 2: Set up a Cloudflare Tunnel</h2><p>You&apos;re going to need a free <a href="https://cloudflare.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Cloudflare</a> account and a domain, or domains (and subdomains), that you want to connect to services running via Docker on your Mac Mini. </p><p>Cloudflare move around their options all of the time, but at the time of writing, this was correct.</p><ol><li>Set up your domain and DNS. This guide isn&apos;t going to cover this, because it&apos;s pretty much exactly the same as wherever you&apos;ve done it before. If you haven&apos;t got a domain, you can get one through the Cloudflare interface (<strong>Domains</strong> &#x2192; Registrations)</li><li>Go to <strong>Networking</strong> &#x2192; Tunnels in the sidebar and press the &apos;Create Tunnel&apos; button. Give your Tunnel a name.</li></ol><figure class="kg-card kg-image-card"><img src="https://blog.dougbelshaw.com/content/images/2026/05/cloudflare-tunnel-create.png" class="kg-image" alt="A brief guide to self-hosting websites and apps using Cloudflare Tunnel" loading="lazy" width="1200" height="587" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/05/cloudflare-tunnel-create.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/05/cloudflare-tunnel-create.png 1000w, https://blog.dougbelshaw.com/content/images/2026/05/cloudflare-tunnel-create.png 1200w" sizes="(min-width: 720px) 720px"></figure><ol start="3"><li>Choose &apos;Docker&apos; as your option and copy/paste the command. </li></ol><figure class="kg-card kg-image-card"><img src="https://blog.dougbelshaw.com/content/images/2026/05/cloudflare-tunnel-configure.png" class="kg-image" alt="A brief guide to self-hosting websites and apps using Cloudflare Tunnel" loading="lazy" width="1200" height="1475" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/05/cloudflare-tunnel-configure.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/05/cloudflare-tunnel-configure.png 1000w, https://blog.dougbelshaw.com/content/images/2026/05/cloudflare-tunnel-configure.png 1200w" sizes="(min-width: 720px) 720px"></figure><ol start="4"><li>Switch to <strong>Screen Sharing</strong> and go into your Mac Mini. Open the <strong>Terminal</strong> app and paste the command you just copied.</li><li>Go back to the Cloudflare Tunnel setup page and you should see Cloudflare connect to your Mac Mini.  </li></ol><h2 id="step-3-use-llms-to-configure-your-websites-and-apps">Step 3: Use LLMs to configure your websites and apps</h2><p>There are so many options here that I can&apos;t cover all of them. But I can show you screenshots of what I&apos;ve done through natural language conversations with LLMs.</p><p>My Mac Mini is currently running 13 apps or websites:</p><figure class="kg-card kg-image-card"><img src="https://blog.dougbelshaw.com/content/images/2026/05/cloudflare-tunnel-vision.png" class="kg-image" alt="A brief guide to self-hosting websites and apps using Cloudflare Tunnel" loading="lazy" width="1200" height="487" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/05/cloudflare-tunnel-vision.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/05/cloudflare-tunnel-vision.png 1000w, https://blog.dougbelshaw.com/content/images/2026/05/cloudflare-tunnel-vision.png 1200w" sizes="(min-width: 720px) 720px"></figure><p>The easiest option for most people, I should imagine, would be to install the <a href="https://claude.ai/?ref=blog.dougbelshaw.com" rel="noreferrer">Claude</a> app on the Mac Mini (via <strong>Screen Sharing</strong>) and ask it to install things using the &apos;Code&apos; tab. </p><p>Or you could use the <strong>Terminal</strong> and something like <a href="https://opencode.ai/?ref=blog.dougbelshaw.com">OpenCode</a> which can use multiple different LLMs &#x2013; including ones running on your own machine. </p><figure class="kg-card kg-image-card"><img src="https://blog.dougbelshaw.com/content/images/2026/05/opencode.png" class="kg-image" alt="A brief guide to self-hosting websites and apps using Cloudflare Tunnel" loading="lazy" width="1200" height="841" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/05/opencode.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/05/opencode.png 1000w, https://blog.dougbelshaw.com/content/images/2026/05/opencode.png 1200w" sizes="(min-width: 720px) 720px"></figure><p>And then, once you&apos;ve mastered that, you can dispense with screensharing altogether, and use <strong>Terminal</strong> to  <a href="https://en.wikipedia.org/wiki/Secure_Shell?ref=blog.dougbelshaw.com">SSH</a> into your Mac Mini via the machine you use daily. </p><hr><p>That&apos;s pretty much it! There&apos;s a lot of trial and error, but the reason I&apos;ve been able to do <em>so much</em> recently is that LLMs walk you through the bit where you would otherwise give up. </p><p>And yes, before you feel like you have to say it, I <em>know </em>it&apos;s technically better and more powerful/flexible to use Linux to do this. Especially as Docker on macOS has to virtualise Docker. But that&apos;s not as straightforward for most people &#x1F642;</p><p>Let me know how you get on, or if you have questions!</p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Cognitive Wallpaper #001: Field Notes on Productive Friction]]></title><description><![CDATA[An experimental physical zine that won't be available for digital download. ]]></description><link>https://blog.dougbelshaw.com/cognitive-wallpaper-001/</link><guid isPermaLink="false">6a044657557ad6000136982a</guid><category><![CDATA[zine]]></category><category><![CDATA[experiment]]></category><pubDate>Wed, 13 May 2026 10:25:29 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/05/CW-PUB-001-Cognitive-Wallpaper-compressed.png"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/05/CW-PUB-001-Cognitive-Wallpaper-compressed.png" alt="Cognitive Wallpaper #001: Field Notes on Productive Friction"><p>We no longer live in a deterministic world. As I <a href="https://blog.dougbelshaw.com/after-web-literacy/">discussed last week</a>, ours is a time of probabilistic inference via algorithms and LLMs, with smooth tools producing bad thinking. And as I mentioned a couple of weeks ago <a href="https://blog.dougbelshaw.com/productive-friction/">inconvenience is sometimes a feature</a>, not a bug. If we remove every point of friction, then we remove the points where <em>reflection</em> happens.</p><p><a href="https://cognitivewallpaper.com/?ref=blog.dougbelshaw.com" rel="noreferrer"><strong>Cognitive Wallpaper </strong>&#x2013;<strong> Issue 001: Field Notes on Productive Friction</strong></a> is a 40-page zine I&apos;m working on about the textures of attention, the architecture of thought, and the patterns we mistake for productivity. It&apos;s going to contain eight patterns of digital capture, as noticing is the first step in doing something about it: </p><ul><li><strong>Ambient nudging:</strong> modification of choice architecture in environments meaning that the user believes that they are operating under neutral conditions</li><li><strong>Default Capture:</strong> the process where a system retains access, data, or attention &#x2013; not through active user consent, but the absence of an opt-out mechanism</li><li><strong>Notification Creep:</strong> the expansion in the frequency and urgency of interruptions until the user is only paying persistent partial attention</li><li><strong>Frictionless Onboarding:</strong> deliberate removal of decision points during the initial adoption of a system or platform, which results in commitments that the user did not realise they were making</li><li><strong>Algorithmic Substitution:</strong> the replacement of human curation, memory, or discovery with an opaque automated system </li><li><strong>Surveillance as Convenience:</strong> reframing of data extraction as a &#x201C;user benefit&#x201D;, meaning that the user actively assists in their own monitoring</li><li><strong>Quantified Self Trap:</strong> the belief that self-knowledge is available primarily through numerical representation, relegating qualitative experience as an &#x201C;unreliable&#x201D; or &#x201C;inferior&#x201D; data source</li><li><strong>Exit Barriers:</strong> structural, psychological, and social costs imposed on users who attempt to discontinue a service or behaviour</li><li><strong>Self-Administered Audit Protocol:</strong> a standardised procedure to evaluate your own technological dependencies, without the assistance of the systems under evaluation.</li></ul><p>I&apos;m aiming for the zine to be the kind of thing you might read on a train &#x2013; and then spend the rest of the journey uninstalling apps and adjusting your notification settings.</p><p>The design is deliberately bureaucratic and deadpan, channelling <a href="https://qntm.org/scp?ref=blog.dougbelshaw.com"><em>There Is No Antimemetics Division</em></a> by qntm. The cover is a homage to <a href="https://en.wikipedia.org/wiki/Shigeo_Fukuda?ref=blog.dougbelshaw.com">Shigeo Fukuda</a>, the Japanese graphic designer, and the text is mono and appropriately zine-y. </p><p>The physical format owes a debt to <a href="https://thejaymo.net/?ref=blog.dougbelshaw.com">Jay Springett</a>, whose zines have arrived regularly through my letterbox over the last few years. There&apos;s a particular delight in holding someone else&apos;s thinking in your hands, in ink on paper; the medium is part of the message.</p><hr><p>This zine connects to work I have been doing this year on attention, agency, and the default settings of digital life. It also connects to a couple of decades of writing about digital literacies, web literacies, and (more recently) AI literacies. The thread being that literacy isn&apos;t just about using tools competently, but about noticing which tools are using <em>you</em>.</p><p>I&apos;m planning to print 50 numbered copies. There might be a second print run, but there&apos;s not going to be a digital version. The point, in part, is the friction: <em>you have to wait for it to arrive</em>. </p><p>Find out more at <a href="https://cognitivewallpaper.com/?ref=blog.dougbelshaw.com" rel="noreferrer">cognitivewallpaper.com</a>, or if you can&apos;t wait, just smash the button below.</p>
<!--kg-card-begin: html-->
<script async src="https://js.stripe.com/v3/buy-button.js">
</script>

<stripe-buy-button buy-button-id="buy_btn_1TWZC0BM3Zpk9fIsVDfgWAVf" publishable-key="pk_live_huX29ShO4Q7JHhGRj4fB1zcN">
</stripe-buy-button>
<!--kg-card-end: html-->
]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[What comes after web literacy?]]></title><description><![CDATA[One way to think of digital literacies is not as a single competency or bundle of skills, but as a capacity to move between layers of abstraction. To be able to do this you require an awareness of the cost/benefit of each layer. ]]></description><link>https://blog.dougbelshaw.com/after-web-literacy/</link><guid isPermaLink="false">69fc679331201d0001e4bf6e</guid><category><![CDATA[AI Literacies]]></category><category><![CDATA[web literacy]]></category><pubDate>Mon, 11 May 2026 14:40:45 GMT</pubDate><media:content medium="image" url="https://images.unsplash.com/photo-1719253481072-5579e62d0a3f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHx3ZWlyZCUyMHRlY2h8ZW58MHx8fHwxNzc4NTA5NjIzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1719253481072-5579e62d0a3f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDExfHx3ZWlyZCUyMHRlY2h8ZW58MHx8fHwxNzc4NTA5NjIzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="What comes after web literacy?"><p>I was having a conversation with someone recently who holds a senior role at an edtech organisation. We both agreed that the equivalent of <a href="https://webmaker.org/?ref=blog.dougbelshaw.com">Mozilla Webmaker</a> these days would not be teaching children HTML, CSS, and JavaScript. Instead, we would be teaching them how to understand and use AI tools to achieve their ends. This is still <em>literacy</em>.</p><p>In presentations around digital literacies, I&apos;ve often talked about the historical importance of &apos;view source&apos; on web pages as helping teach people how the web works. That, of course, doesn&apos;t really work any more given the complexity of modern web pages, but the principle is the same: what&apos;s the layer beneath the interface?</p><p>Nowadays, when the layer beneath is AI, what&apos;s the equivalent of &apos;view source&apos;? What comes after web literacy?</p><h2 id="the-webmaker-era-was-replaced-by-the-platform-era">The Webmaker era was replaced by the Platform era</h2><p>I won&apos;t rehash what I discussed in my recent post <a href="https://blog.dougbelshaw.com/beyond-elegant-consumption-again/">Beyond Elegant Consumption (Again)</a> but just to say that, as <a href="https://twitter.com/karenraycosta?ref=blog.dougbelshaw.com">Karen Smith</a> and I wrote in a <a href="https://mozilla.github.io/webmaker-whitepaper/?ref=blog.dougbelshaw.com">Webmaker whitepaper</a>, polished experiences often leave people as passive users rather than active participants. AI is the definition of polished output, almost <em>no matter what the input</em>.</p><p>While we want interfaces that delight and surprise us, when they&apos;re locked down and there&apos;s no way to look under the hood, we&apos;re trapped as mere consumers of other people&apos;s content. This was the argument for web literacy: learn HTML, CSS, and JavaScript so that you can help build the web, not just consume it .</p><p>But in the time since I was at Mozilla, the platforms won. The everyday experience of computing for most people has changed from files and folders to algorithmic feeds. Something which seemed so foundational: a filesystem, on hardware you control, seems alien to people who have grown up on iOS and Google Drive. </p><p>You&apos;re running out of space on your phone? No problem, iCloud will happily &#x201C;optimise&#x201D; your local storage &#x2013;  i.e. quietly move your files to Apple&apos;s servers. It&apos;s done so seamlessly that most users have no idea what&apos;s actually happening in the background. </p><p>It&apos;s not like there&apos;s no layer beneath the interfaces that we use in 2026, it&apos;s just that they&apos;re buried. You can still view source, but good luck finding anything intelligible with a React-built platform with minified JavaScript and third-party scripts loading from six different domains. </p><p>So perhaps it&apos;s worth differentiating between the <em>technical</em> layer and the <em>cognitive </em>layer. What can a curious person understand about a system these days? </p><h2 id="moving-into-the-ai-era">Moving into the AI era</h2><p>Whereas platforms went out of the way to hide the source so it couldn&apos;t be viewed, we&apos;re now in a situation where the source cannot be inspected <em>at all</em>. </p><p>There is no &apos;view source&apos; with a large language model (LLM). You enter a prompt and get an output, between which lies a statistical model (i) trained on data you didn&apos;t choose, (ii) governed by weights you (usually) can&apos;t see, (iii) running on hardware you do not own, and (iv) operated by a company you don&apos;t control. It&apos;s not just inaccessible, it&apos;s impenetrable<em>.</em></p><p>As it&apos;s a statistical model and not deterministic, it&apos;s different to what came before. For example, we ran Webmaker parties where people could follow guidance on how to use HTML, CSS, and JavaScript. We knew that entering these things ended up with these consequences. That&apos;s not true with LLMs. </p><p>Depending on system prompts, temperature settings, and post-processing features, LLMs behave differently. Look at the difference between what you get when using a tool like <a href="https://convenethecouncil.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Convene the Council</a> &#x2013; which is more explicit about these differences.</p><p>This is, of course, a very different problem to the platform era. When dealing with platforms, there was still some way of figuring out what was going on under the hood. Not so with AI. </p><p>That means, in turn, that the literacy questions changes. While web literacy helped us read the technical and conceptual layer beneath the page, AI literacy has to ask something else &#x2013; namely, <em>whether you even recognise at which layer you are operating.</em></p><h2 id="literacy-as-layer-navigation">Literacy as layer navigation</h2><p>I&apos;m not against frameworks <em>per se</em> &#x2013; I <a href="https://blog.dougbelshaw.com/supporting-ai-literacies-for-young-adults/">helped create one for BBC R&amp;D</a> only recently &#x2013; but I&apos;m against the kind of <a href="https://blog.dougbelshaw.com/cognitive-autonomous-zones/">framework fundamentalism</a> which suggests that frameworks are anything other than useful approximations. What I want to offer is a <em>way of thinking</em>.</p><p>One way to think of digital literacies is not as a single competency or bundle of skills, but as a <em>capacity</em> to move between layers of abstraction. To be able to do this you require an awareness of the cost/benefit of each layer. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.dougbelshaw.com/content/images/2026/05/three-layers.png" class="kg-image" alt="What comes after web literacy?" loading="lazy" width="2000" height="1000" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/05/three-layers.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/05/three-layers.png 1000w, https://blog.dougbelshaw.com/content/images/size/w1600/2026/05/three-layers.png 1600w, https://blog.dougbelshaw.com/content/images/2026/05/three-layers.png 2000w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Three layers of working with digital material, trading control and visibility for speed</span></figcaption></figure><p>For example, if we skip the &apos;bare metal&apos; level, at the bottom layer you have the direct manipulation of digital material &#x2013; e.g. writing HTML, CSS, and JavaScript by hand. Editing a configuration file, or running a script that you wrote yourselves. This is a slow, error-prone approach that requires technical knowledge and gives maximum agency.</p><p>At the next layer up, you have tools that automate parts of that work. For example, a content management system, or a no-code builder. You trade some control for speed, with the question being whether you know what the trade-offs are.</p><p>Then, at the top layer, you have fully opaque systems where you type a prompt and receive an output. You have zero visibility into how the output was produced, and you can&apos;t check it against the source material. The cost here isn&apos;t just control and agency, but the ability to judge whether the output <em>is any good</em>.</p><p>So literacy, on this account, becomes not the ability to operate at the bottom layer all the time. That would be somewhat anachronistic. It&apos;s the ability to know which layer you&apos;re at, or <em>should</em> be working at, and recognise when to move up and down the stack. </p><h2 id="whats-next">What&apos;s next?</h2><p>I&apos;m just thinking aloud in this post, realising that the conversation I mentioned at the start of this post means that I need to be thinking differently about the work I&apos;ve done before. </p><p>Recently, I&apos;ve been building <a href="https://dynamicskillset.com/tools/?ref=blog.dougbelshaw.com">small tools</a> lately which I&apos;m referring to as <a href="https://thoughtshrapnel.com/2026/04/17/folk-software-not-vibe-coding.html?ref=blog.dougbelshaw.com">folk software</a>. They&apos;re tools made for one person, or a handful of people, with no real attempt to scale. Building this kind of software, which I could never do if I had to write each line of code by hand, has made me very aware of the different layers of the stack. </p><p>I know that the bottom layer is where full agency lives. The upper layers, though, are where most people spend most of their time. And so while digital literacies require an awareness of the whole stack, there needs to be an understanding that absolute fluency at all levels isn&apos;t required for a working, pragmatic literacy.</p><p>This is where I&apos;m at at the moment. I don&apos;t think that what comes after web literacy is necessarily a new set of technical skills or a checklist of competencies. It&apos;s more the <em>conceptual</em> ability to know which layer you&apos;re working at, and whether you&apos;ve got work to do to understand, and potentially be able to operate at, the other layers.</p><p>What do <strong>you</strong> think?</p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Weeknote 19/2026]]></title><description><![CDATA[What I've been up to this week.]]></description><link>https://blog.dougbelshaw.com/weeknote-19-2026/</link><guid isPermaLink="false">6a00cc5531201d0001e4c175</guid><category><![CDATA[weeknote]]></category><pubDate>Sun, 10 May 2026 20:47:34 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/05/tree-bark.jpg"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/05/tree-bark.jpg" alt="Weeknote 19/2026"><p>Another busy week, but not a bad one at all. My first week flying solo after the closure of WAO, as I discussed in my <a href="https://blog.dougbelshaw.com/weeknote-18-2026/">last weeknote</a>. It&apos;s a different rhythm, for sure. I&apos;m thinking about taking Wednesdays off, as I used to when I was at Moodle &#x1F914;</p><p>You might think that taking a day off in the middle of the week is odd, and perhaps it is. But it divides the week into two mini working weeks, which is lovely. I might try it this week, as I&apos;ve only got one meeting in the calendar, which I could move.</p><h2 id="writing-creating">Writing &amp; Creating</h2><p>Here, I published:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/april-2026/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">April 2026: frameworks, friction, and federation</div><div class="kg-bookmark-description">What appeared on this blog in April 2026.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-163.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/og" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/literacy-slop/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Literacy-slop</div><div class="kg-bookmark-description">AI is a tool that allows us to create shortcuts, but point is to be able to judge whether the shortcuts take us anywhere useful. Just as humans are the ultimate arbiters of taste, so we are the ultimate arbiters of literacy. And that can&#x2019;t be sloptimised.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-164.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/og-1" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/beyond-elegant-consumption-again/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Beyond Elegant Consumption (Again)</div><div class="kg-bookmark-description">What are the conditions under which legitimate taste and real digital literacies are formed?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-165.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/og-2" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>Over at <em>Thought Shrapnel</em>, I published:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/07/on-originality.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">On originality</div><div class="kg-bookmark-description">100% agree.
Source: Are.na</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-166.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/5860100.png" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/07/time-as-an-instrument.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Time as an instrument?</div><div class="kg-bookmark-description">I&#x2019;m fascinated by this. Not fascinated enough to pay $21.99 to use it on just one of my devices, but I just think it&#x2019;s a really interesting example of reducing functionality, working hard on the aesthetic, and making something simple to use.
I can, and do, use Toggl which is much more fully-featured, but there&#x2019;s something to be said for things being nice to use. Perhaps I need to create my own cross-platform version, rather than an Apple-only one, as I did with Stream&#x2026;</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-167.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/5860103.png" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/07/how-power-structures-and-relationships.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How power structures and relationships really work</div><div class="kg-bookmark-description">I&#x2019;m not sure what I enjoyed more, the org chart showing how power structures and relationships really work, or the LinkedIn comment that said: Very interesting how the dealer sells to his coworkers, and yet they&#x2019;re still sad.A lack of clearly defined KPIs and regular milestone celebrations can make it difficult to maintain alignment and momentum with stakeholders. Would be insightful to create a internal customer feedback loop here.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-168.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/original-598fd30b40c0c1d54c9c8e3b17b7acb7.jpg" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/07/digital-literacies-involve-layers-of.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Digital literacies involve layers of abstraction</div><div class="kg-bookmark-description">On the one hand, yes I feel this. On the other hand, things change! There are layers of abstraction, especially with computing.
I was having a conversation with someone recently who&#x2019;s senior in an educational computing organisation. We both agreed that the equivalent of Mozilla Webmaker these days wouldn&#x2019;t be teaching kids HTML, CSS, and JavaScript; we&#x2019;d be teaching them how to understand and use AI tools to achieve their ends.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-169.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/creative-minds-factory-ylzjtu-vmmo-unsplash.jpg" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/07/on-the-gendered-nature-of.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">On the gendered nature of (types of) hobbies</div><div class="kg-bookmark-description">This is an interesting look at the gendered nature of hobbies, how they&#x2019;re coded, and how people treat them as provisional or non-negotiable. I&#x2019;ve never been a woman, and never been in a long-term relationship with anyone other than my wife, so I don&#x2019;t know how this works for other people.
What I do know is that there&#x2019;s at least three forces at play here: gender norms and differences, peer pressure (real/imaginary) and expectations of self.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-170.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/5860129.png" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/09/wisdom-from-the-tao-te.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Wisdom from the Tao Te Ching</div><div class="kg-bookmark-description">It&#x2019;s the standing back that&#x2019;s the hard part.
Source: Are.na</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-171.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/5862903.png" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/09/the-patient-as-transcription-layer.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The patient as transcription layer</div><div class="kg-bookmark-description">I had a similar experience last year attempting to get a diagnosis for a different cluster of symptons. While I totally get the ethical issues and potential problems with using AI in medicine, the waste (and patient frustration) is incredible. Everyone worries about AI replacing doctors. After 24 hours in the hands of the NHS, I think they&#x2019;re looking in the wrong direction.
GP, A&amp;E, then other parts of the hospital.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-172.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/immo-wegmann-csb9ehxb65a-unsplash.jpg" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/09/my-goal-is-to-encourage.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">My goal is to encourage people to take action and look at the alternatives that are on the table</div><div class="kg-bookmark-description">An important part of TechFreedom is not just talking about reducing dependency on Big Tech, but getting on and doing it. Tom posted his &#x2018;stack&#x2019; this week, which was an update to his post last year. It shows that, like me he&#x2019;s moving towards more and more Open Source-based workflows.
The table above and quotation below comes from a post by Tim Rodenbr&#xF6;ker, a designer, hacker and content creator, who in December 2025 outlined his switch from Apple and Adobe to Open Source.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-173.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/5862933.png" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/09/we-live-in-an-economy.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">We live in an economy that has systematically destroyed the conditions for trust, and then charges us for the workarounds</div><div class="kg-bookmark-description">This is from an economics blog, so focuses on money, but I think it&#x2019;s equally true of the kind of politics we&#x2019;ve got at the moment. When people don&#x2019;t trust each other, then they look to so-called &#x201C;strong men&#x201D; to save them from a non-existent, manufactured threat. Think about what a low-trust economy actually looks like in practice. Everything gets expensive. Contracts get thicker. Lawyers get richer. Every transaction requires documentation, verification, third-party guarantees.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-174.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/bernard-hermant-olltavhhbkg-unsplash.jpg" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/05/09/oof.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Oof</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-175.svg" alt="Weeknote 19/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/5863186.png" alt="Weeknote 19/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="reading-listening-and-watching">Reading, Listening, and Watching</h2><p>I&apos;m having another go at reading <a href="https://literal.club/dajbelshaw/book/cormac-mccarthy-no-country-for-old-men-volzv?ref=blog.dougbelshaw.com"><em>No Country for Old Men</em></a> by Cormac McCarthy. I&apos;ve seen the film, of course, but last time I tried to read the book, gave up half way through. I&apos;m taking my time for this re-read.</p><p>I&apos;m not listening to podcasts at the moment, which I think must be a combination of there being absolutely fantastic music out at the moment (e.g. <a href="https://album.link/s/0z5uyAUrflFAnjBR2EhW9J?ref=blog.dougbelshaw.com">FENIAN</a> by KNEECAP) and me trying to limit my information inputs a bit. I&apos;ve got a lot on. </p><h2 id="working">Working</h2><p>It was a four-day week due to the Early May Bank Holiday. I&apos;m working on four projects at the moment:</p><ul><li><a href="https://digitalcredentials.mit.edu/?ref=blog.dougbelshaw.com">DCC</a> &#x2013; I used <a href="https://claude.ai/design?ref=blog.dougbelshaw.com">Claude Design</a> to create a design system for work I&apos;m doing on <a href="https://blog.dcconsortium.org/what-is-wallet-attached-storage-439917ba4fa5?ref=blog.dougbelshaw.com">Wallet Attached Storage</a>. I didn&apos;t get much done other than that, though. </li><li><a href="https://inasp.info/?ref=blog.dougbelshaw.com" rel="noreferrer">INASP</a> &#x2013; I put together some options for how they should approach procurement for both their <a href="https://risingscholars.net/?ref=blog.dougbelshaw.com">Rising Scholars</a> and main website project. After meeting with their project lead and CEO, I&apos;m going to build out that procurement documentation, based on the <a href="https://www.dovetail.network/how-to/run-a-selection-process?ref=blog.dougbelshaw.com">Dovetail guidance</a>. I&apos;ve also removed WAO and added <a href="https://dynamicskillset.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Dynamic Skillset</a> to the <a href="https://www.dovetail.network/agencies/dynamic-skillset?ref=blog.dougbelshaw.com">Dovetail Partner directory</a>.</li><li><a href="https://www.skillsdevelopmentscotland.co.uk/?ref=blog.dougbelshaw.com">SDS</a> &#x2013; <a href="https://ottonomy.net/?ref=blog.dougbelshaw.com" rel="noreferrer">Nate</a> got the platform ready for the <a href="https://github.com/dynamicskillset/digital-badges-poc/wiki?ref=blog.dougbelshaw.com">Digital Badges Proof of Concept</a> project, and I ran a workshop for <a href="https://www.awardsnetwork.org/?ref=blog.dougbelshaw.com">Awards Network</a> members and other stakeholders on Friday. It went well, although I forgot to make everyone admins so they couldn&apos;t test issuing.  </li><li><a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com" rel="noreferrer">TechFreedom</a> &#x2013; On Wednesday, <a href="https://tomcw.xyz/?ref=blog.dougbelshaw.com" rel="noreferrer">Tom</a> and I ran the second workshop for members of the pilot cohort. We also sent out the <a href="https://newsletter.techfreedom.eu/archive/dispatch-002?ref=blog.dougbelshaw.com">second newsletter</a>.</li></ul><p>Other than that, I did some business development, which involved some meetings. I also met with <a href="https://bsky.app/profile/mrlockyer.bsky.social?ref=blog.dougbelshaw.com">Stephen Lockyer</a> about developing <a href="https://framagit.org/dynamicskillset/projectdial?ref=blog.dougbelshaw.com">ProjectDial</a> (the sister to <a href="https://taskdial.dynamicskillset.com/about/?ref=blog.dougbelshaw.com">TaskDial</a>). </p><p>The main thing I&apos;m doing in my &apos;spare&apos; time, professionally-speaking, is working on Sightlines+ which will be a paid addition to the existing, free <a href="https://sightlines.dynamicskillset.com/?ref=blog.dougbelshaw.com">Sightlines</a> tools. It&apos;s going well: a suite of 10 Systems Thinking tools, which also come with a comparison tool, and the option to switch on AI as well to help (if you want).  </p><p>I also did something quickly this afternoon (Sunday) after I saw that Fran&#xE7;ois Jourde had created a nifty <a href="https://github.com/jourde/markdown-slidedeck?ref=blog.dougbelshaw.com">Markdown-to-HTML presentation tool</a>. It reminded me that back in my Mozilla days I used to <a href="https://github.com/dajbelshaw/Open_Badges_overview?ref=blog.dougbelshaw.com">present using web pages with 3D effects</a>. So, while I was watching the football, I got my little robot friend to fork Fran&#xE7;ois&apos; repo and create <a href="https://markdeck-3d.dynamicskillset.com/?ref=blog.dougbelshaw.com">Markdeck 3D</a>.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://markdeck-3d.dynamicskillset.com/?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Markdeck 3D &#x2014; preview</div><div class="kg-bookmark-description">Markdeck 3D: a lightweight, accessible single-page Markdown-to-slides app, with an opt-in impress.js 3D mode, local image support, and branded themes. A fork of jourde/markdown-slidedeck.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-176.svg" alt="Weeknote 19/2026"></div></div></a></figure><p>It needs a bit of tidying up, but it&apos;s pretty cool and incorporates the design systems for Dynamic Skillset and TechFreedom &#x1F642;</p><h2 id="personal">Personal</h2><p>My wife, <a href="https://hannahbelshaw.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Hannah</a>, and I went away on Friday night. Just to Newcastle, but we ended up staying at the same hotel as the Man Utd first team! We casually walked past <a href="https://en.wikipedia.org/wiki/Mason_Mount?ref=blog.dougbelshaw.com">Mason Mount</a> on the way back from breakfast, who picked up a yellow card during a 0-0 draw with Sunderland on Saturday afternoon. It&apos;s nice to get away, even for one night, as it makes the weekend seem longer. </p><p>No football for my daughter Grace this week, but Ben was home and I was around while he filled in the official form to switch from Sport to Geography at <a href="https://www.northumbria.ac.uk/?ref=blog.dougbelshaw.com">Northumbria University</a>. He went on a Geography field trip last week with the first year students to get a feel for it, and liked it. So he&apos;s applied to make the switch. It means starting in the first year again, and it&apos;s potentially a four year course (with a sandwich year). So that means he could be in his final year when Grace is in her first year...</p><p>Ben and I had planned to go for a walk on Saturday, but it was absolutely pouring with rain, so we decided not to make ourselves miserable. Other than that, I&apos;ve been running up the steps in the park, on the treadmill at the gym, did some Pilates, and some leg weights. </p><h2 id="next-week">Next week</h2><p>I&apos;ve got client meetings, business development meetings, and a call with a potential business coach on Monday. Then on Tuesday I&apos;ve been invited to an <a href="https://rai.ac.uk/?ref=blog.dougbelshaw.com">RAi</a> workshop to give feedback on an upcoming Education white paper. Wednesday I might take off, and then on Thursday and Friday, along with meeting up in person with Tom, I need to get work done on all four projects.</p><p>I&apos;m still thinking about how and where to share information about the projects I&apos;m working on. It was easy when we had the <a href="https://web.archive.org/web/20260503090345/https://blog.weareopen.coop/">WAO blog</a>, but now I&apos;m wondering whether I need one for Dynamic Skillset. Or whether just to do case studies. Decisions, decisions. </p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Beyond Elegant Consumption (Again)]]></title><description><![CDATA[What are the conditions under which legitimate taste and real digital literacies are formed? ]]></description><link>https://blog.dougbelshaw.com/beyond-elegant-consumption-again/</link><guid isPermaLink="false">69fa539931201d0001e4bd46</guid><category><![CDATA[digital literacies]]></category><category><![CDATA[tasteslop]]></category><category><![CDATA[Emily Segal]]></category><pubDate>Fri, 08 May 2026 07:11:46 GMT</pubDate><media:content medium="image" url="https://images.unsplash.com/photo-1644794472051-36d154dfe487?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fHNjcm9sbGluZyUyMHdlaXJkfGVufDB8fHx8MTc3ODE1MzUzOHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1644794472051-36d154dfe487?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDN8fHNjcm9sbGluZyUyMHdlaXJkfGVufDB8fHx8MTc3ODE1MzUzOHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="Beyond Elegant Consumption (Again)"><p>In my <a href="https://blog.dougbelshaw.com/literacy-slop/">previous post</a>, I argued that &#x201C;tasteslop&#x201D; (as identified by Emily Segal) and &#x201C;literacy-slop&#x201D; are both symptoms of a similar extractive logic. It&apos;s an attempt to produce the outputs of socially-negotiated practices... without the social negotiation.</p><p>In this post, I want to again riff on Segal&apos;s <a href="https://nemesisglobal.substack.com/p/tasteslop?ref=blog.dougbelshaw.com">Nemesis Memos post</a> to consider the question: what are the conditions under which <em>legitimate</em> taste and <em>real</em> digital literacies are formed? If the first post discussed what kills digital literacies, in this post I&apos;m more focused on what keeps them alive. </p><hr><p>Towards the end of her piece, after discussing AI moodboards, tech capital anxiously laundering itself through aesthetic sophistication, and the sloptimisation of culture, Segal observes that:</p><blockquote>Fresh esotericism can spring up at any moment.</blockquote><p>This is a really important point. Tasteslop is necessarily <em>parasitic</em> upon the genuine article, as AI slop can only index extant taste markers. So it cannot capture &#x201C;esotericism&#x201D; that is still being formed in the kind of spaces that pre-date subreddits. As Segal notes, with a nod to Bourdieu: </p><blockquote>To put it another way: if significant cultural capital can be spun up by any random group of people who share an esoteric or notably artificial sensibility &#x2013; if camp or subcultural capital can grow anywhere like wild mushroom spores, uncategorizable and somehow irrepressible &#x2013; there will always be cultural capital that elite lords can&#x2019;t properly access or control
</blockquote><p>I think the same is true of digital literacies. While platforms and institutions can credential the <em>surface</em> features of competent digital practice, they don&apos;t always generate the communities of practice, the productive friction, or indeed the <em>partial legibility </em>that makes those features meaningful.  
</p><h2 id="elegant-consumption-fifteen-years-on">Elegant consumption, fifteen years on
</h2><p>Back in 2012, when I was working at Mozilla, <a href="https://en.wikipedia.org/wiki/Mitchell_Baker?ref=blog.dougbelshaw.com" rel="noreferrer">Mitchell Baker</a> gave a short talk at MozFest that I&apos;ve quoted ever since. The phrase, which you&apos;ve probably heard or read me using before, was &#x201C;elegant consumption&#x201D;. She used this to warn of the danger of interfaces <em>so smooth and delightful</em> that we become trapped as mere consumers of other people&apos;s content.</p><p>The <a href="https://www.mozillafoundation.org/en/initiatives/web-literacy/?ref=blog.dougbelshaw.com">Web Literacy</a> work I led at Mozilla underpinned the <a href="https://blog.mozilla.org/en/mozilla/introducing-mozilla-webmaker/?ref=blog.dougbelshaw.com">Webmaker</a> programme, which was an attempt to resist that tendency towards elegant consumption. We built tools, activities, and approaches to help people understand how the web works; to help them <em>read, write, and participate</em> on the web. Participation is key. </p><p>I&apos;ve got a separate post brewing about what comes <em>after</em> web literacy, but the problem of &#x201C;elegant consumption&#x201D; hasn&apos;t gone away. In fact, it&apos;s become much worse: platforms are better at keeping people inside them, interfaces have become smoother, and recommendation systems are more accurate. As a result, we arrived at what Segal describes around tasteslop, and what I have been calling literacy-slop: the <em>appearance</em> of digital competence, sustained by platforms that make it unnecessary to develop actual fluency.

You could conceptualise tasteslop as elegant consumption applied to cultural capital. It <em>looks</em> like participation in culture, but is <em>actually</em> consumption of pre-digested signifiers. Elegant consumption has no stakes; it&apos;s dead inside.</p><h2 id="proof-of-work-and-productive-friction">Proof of work and productive friction
</h2><p>Segal&apos;s collaborator Martti Kalliala describes good taste as having &#x201C;a huge proof of work element to it&#x201D;. Although somewhat mysterious, we can agree that taste is a skill built through time, exposure, repeated acts of judgement within a social context.</p><p>In a <a href="https://blog.dougbelshaw.com/productive-friction/">recent post</a> I used the phrase <em>productive friction.</em> I said that &#x201C;sometimes the more human outcome is the one that introduces a pause long enough to notice, judge, and choose differently&#x201D;. That post was a reflection on running a session with a pilot cohort of organisations trying to reduce their dependency on Big Tech platforms. In that context, the temptation is to reach for the most frictionless tool. But that tool is often the one that <em>removes your agency most efficiently</em>, as it makes the decision for you without you knowing.</p><p>Kalliala&apos;s mention of proof-of-work in relation to taste and my discussion of productive friction are in the same ball park. We&apos;re both arguing that effortful, situated practices can&apos;t be automated away without also removing the things that made them meaningful in the first place. </p><p>I&apos;ve experienced this recently, moving away from Spotify after 17 years as a paid subscriber. Creating an auto-generated playlist has its uses, but it&apos;s entirely different to a mixtape I made for my wife when we first got together. There may be overlaps between the two, but I&apos;m not sure her reaction to &#x201C;here&apos;s a playlist I asked Spotify to generate for you&#x201D; is the same as a cassette tape where I&apos;ve thought carefully about the tracks, their order, and their lyrics. There has to be <em>proof of work</em> and <em>friction</em> for things to be meaningful.
</p><p>With digital literacies, this matters in learning contexts. The <strong>constructive</strong> element of digital literacies that I identified in my <a href="https://dougbelshaw.com/thesis?ref=blog.dougbelshaw.com" rel="noreferrer">doctoral work</a> means actually building things &#x2013; making meaning through <em>practice.</em> The <strong>cognitive</strong> and <strong>confident</strong> elements are about not only knowing your way around digital systems, but having the <em>agency</em> to try things, recover from failure, and push back if they don&apos;t meet with your expectations or values. It&apos;s about developing skills and competencies through exactly the kind of friction that smooth interfaces are designed to remove.    </p><p>To use an analogy, just like learning to swim, there&apos;s no shortcut to this. You have to get into the water and struggle for a bit. It&apos;s not enough to just wear a swimsuit and pose by the side of the pool. </p><h2 id="small-communities-and-partial-legibility">Small communities and partial legibility</h2><p>Returning to the idea of &#x201C;fresh esotericism,&#x201D; I find it interesting that Segal talks about this being predicated on <em>partial legibility</em>. In other words, this is cultural production that&apos;s not immediately searchable, categorisable, or indexable. It&apos;s a shared reference that only makes sense if you were there; an in-joke. In many ways, it maps onto my <a href="https://ambiguiti.es/?ref=blog.dougbelshaw.com">continuum of ambiguity</a>.</p><p>In the world of aesthetics and fashion, this can come across as elitist. But there&apos;s a different way to understand this: real cultural capital forms in communities which have <em>shared</em> histories, norms, and stakes. It doesn&apos;t form in algorithmically-curated feeds. Indeed, these feeds are where it&apos;s <em>extracted.</em></p><p>The same is true of digital literacies, with the <strong>civic</strong> and <strong>creative</strong> elements focusing on producing work within communities where your judgement is visible and contestable. In other words, someone can <em>say that you are wrong.</em> The meaning of what you make is socially-negotiated with others who care about it.</p><p>I think this is why people are increasingly retreating to <a href="https://www.ystrickler.com/the-dark-forest-theory-of-the-internet/?ref=blog.dougbelshaw.com">dark forest</a> spaces. It&apos;s where the interesting stuff happens. It&apos;s where communities develop their own norms and vocabularies, maintaining a partial legibility that requires shared taste and digital literacy skills. 
</p><h2 id="who-gets-to-define-what-counts">Who gets to define what counts?</h2><p>Segal closes her piece by observing tech capital&apos;s anxiety: it keeps trying to fully capture cultural capital &#x2013; and keeps failing. Why? Because cultural capital has a stubborn tendency to grow in the cracks. Segal calls this <em>incomplete capture</em>. </p><p>Structurally, something similar is happening with digital literacies. There are <em>so many </em>frameworks, definitions, and approaches because everyone wants to own the definition of what counts as &#x201C;digitally literate&#x201D;. This desire, I think, stems from the power play of attempting to own the credentials, the training, and the pipeline. </p><p>You can see this in the rush to define <em>AI Literacy</em>. It&apos;s the same game: you can package up the definition, framework, and credentials. But you can&apos;t package up the cultural capital that comes from the practices, taste, and judgement. </p><p>My argument, which I&apos;ve been reiterating for 15+ years at this point, is that digital literacies can&apos;t be defined in advance and just <em>handed down</em> to learners. They have to be co-constructed with the communities who are going to live with them. Literacies are contextual and socially-negotiated, not extracted.</p><p>The <strong>civic</strong> element involves understanding that literacy is always a political concept. Who gets to classify? In whose interest? Whose version of &#x201C;tasteful&#x201D; or &#x201C;literate&#x201D; gets to become the default? Tasteslop and literacy-slop emerge when the classifying function is automated at the expense of the social body that has previously performed that classification.
</p><h2 id="final-words">Final words</h2><p>The &#x201C;wild mushroom spores&#x201D; that Segal talks about are still there, and <em>always will be</em>. Fresh esotericism forms in the cracks of platform monoculture, meaning that real, legitimate digital literacies develop in communities of practice that can never be fully captured by institutions or platforms.

I suppose the bigger question is whether we&apos;re building the conditions that expand the monoculture (paving over everything) or whether we&apos;re intentionally creating more generative spaces (cultivating the soil). I&apos;m particularly interested in this in terms of credentialing, where <a href="https://www.ndln.ie/new-learning-and-teaching-models?ref=blog.dougbelshaw.com">we need less microcredentialing</a> and more <a href="https://openrecognition.org/?ref=blog.dougbelshaw.com" rel="noreferrer">Open Recognition</a>.  </p><p>Mitchell Baker&apos;s phrase is more relevant than ever: we <em>still</em> need to move beyond elegant consumption. Not because consuming things is wrong, but because if that&apos;s <em>all we do</em>, the social body withers. The habitus I discussed in my previous post doesn&apos;t form, and the classifying function gets outsourced. 
</p><p>And, in that situation, what are we left with? <em>Endless sloptimisation.</em>
</p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Literacy-slop]]></title><description><![CDATA[AI is a tool that allows us to create shortcuts, but point is to be able to judge whether the shortcuts take us anywhere useful. Just as humans are the ultimate arbiters of taste, so we are the ultimate arbiters of literacy. And that can't be sloptimised.]]></description><link>https://blog.dougbelshaw.com/literacy-slop/</link><guid isPermaLink="false">69fa51c131201d0001e4bd2c</guid><category><![CDATA[digital literacies]]></category><category><![CDATA[tasteslop]]></category><category><![CDATA[Emily Segal]]></category><pubDate>Wed, 06 May 2026 07:30:50 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/05/FabrizioMatarese-CognitiveCosmos-and-Mind-Maps-1280x1201.png"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/05/FabrizioMatarese-CognitiveCosmos-and-Mind-Maps-1280x1201.png" alt="Literacy-slop"><p>I found I had so much to say about Emily Segal&apos;s <a href="https://nemesisglobal.substack.com/p/tasteslop?ref=blog.dougbelshaw.com">latest Nemesis Memos post</a>, that I not only transferred it from <a href="https://thoughtshrapnel.com/?ref=blog.dougbelshaw.com" rel="noreferrer"><em>Thought Shrapnel</em></a> to here, but I think this is going to have to be a couple of posts. </p><p>Segal is talking about the world of aesthetics as it relates to AI, but it&apos;s absolutely relevant to the world of digital literacies. </p><blockquote>Taste is not really a property of various objects. It is a socially validated relation between objects, people, histories, scenes, and timing.</blockquote><p>If we swap &#x201C;Digital literacy&#x201D; for &#x201C;Taste&#x201D; then it&apos;s a socially-negotiated relation between people, tools, practices, contexts, and communities. </p><hr><p>Segal discusses the ways in which AI-generated designs look <em>almost</em> right, but feel a bit hollow. The uncanny valley is produced by AI knowing what the visible signs of taste <em>should </em>be (e.g. a Dieter Rams book on a shelf) but they&apos;re extracted from the social relations that give them meaning, and redeployed generically.</p><blockquote>I would say the biggest thing people are missing about taste across the board is that it is relative, contextual, and social. Taste needs to be socially validated. There is no such thing as taste if it falls in a forest.</blockquote><p>While the object <em>looks</em> tasteful, and the curation<em> looks</em> intentional, it&apos;s contextless. It has no meaning.</p><p>This isn&apos;t a new problem. Proponents of <a href="https://sk.sagepub.com/ency/edvol/curriculumstudies/chpt/new-literacy-studies?ref=blog.dougbelshaw.com#_">New Literacy Studies</a> (e.g. Gee, Street, Lankshear and Knobel) made a similar argument about reading and writing. Literacy isn&apos;t a &#x201C;skill&#x201D; you carry around in your head, but a <em>social practice</em> which only makes sense in context. My <a href="https://dougbelshaw.com/thesis?ref=blog.dougbelshaw.com" rel="noreferrer">doctoral thesis</a>, and work I&apos;ve done around digital, web, and AI literacies after it, was an attempt to think about that in the digital age.</p><p>The eight elements (cultural, cognitive, communicative, constructive, civic, critical, creative, confident) that resulted from my meta-analysis were never meant to be a checklist or a framework. Instead, they describe the baselayer of a kind of <em>habitus </em>of norms, dispositions and tacit know-how obtained by someone who is literate in a particular digital domain.</p><p>Tasteslop, you could argue, is what happens when the habitus is automated to produce signs without substance. </p><h2 id="automating-the-classifying-function">Automating the classifying function</h2><p>Segal explains that:</p><blockquote>Tasteslop is what happens when the classifying function is automated, overly explicit, or reduced to spitting out rote taste tokens.</blockquote><p>I&apos;ve <a href="https://archive.org/details/ithaka-next-wave-part-3-truth-lies-and-digital-fluency">made a similar point</a> about digital literacies when talking about how the point is not simply to operate tools more efficiently, but to learn to notice structures, question defaults, and understand the incentives underlying those tools.</p><p>Segal&apos;s collaborator Greg Fong puts it more succinctly: </p><blockquote>Nobody can have taste unless somebody else can see it. The LLM is not a person. It isn&#x2019;t subjective either. You can subjectively like it, and it can be weird enough to be stylish, but it doesn&#x2019;t actually have taste; it can only look for data indexes of taste... </blockquote><p>That phrase, the &#x201C;data indexes&#x201D; of taste, has a parallel in education. It annoys me that academics wring their hands about students submitting AI-written essays, as if their institutions haven&apos;t consciously created data indexes of literacy and competent performance. Essays were long ago extracted from the <em>social</em> practices that gave learning meaning.  </p><p>So I&apos;m going to give this a name: <em>literacy-slop</em>.</p><p>Literacy-slop is the credential without the community of practice; it&apos;s the qualification without the learning; the skills certificate for getting an AI agent to click through a self-paced module on digital skills. It <em>looks</em> like literacy, satisfying the classifier. But it&apos;s just curation without a social body.</p><h2 id="literacy-slop-fails-in-the-same-way-tasteslop-fails">Literacy-slop fails in the same way tasteslop fails</h2><p>Let&apos;s take three of the eight elements of digital literacies to see what&apos;s going on. </p><h3 id="critical-element">Critical element</h3><p>Segal cites her &#x201C;Bourdieu agent&#x201D; (presumably an AI tool) as saying:</p><blockquote>If taste classifies (and classifies the classifier), tasteslop is what happens when the classifying function is automated.</blockquote><p>The <strong>critical</strong> element asks people to interrogate their, and other people&apos;s assumptions. Who is doing the classifying? With what values? In whose interest? And to what end?</p><p>Tasteslop is a kind of fluency without interrogation, where you can deploy Dieter Rams as a taste-marker without knowing why <a href="https://tenprinciples.design/?ref=blog.dougbelshaw.com" rel="noreferrer">Rams&apos; ten principles</a> became canonical and not someone else&apos;s. Equally, you can generate a &#x201C;digitally literate&#x201D; essay response without understanding anything <em>behind</em> it.</p><p>Critical digital literacies aren&apos;t about being suspicious of everything, but about having the tools to ask relevant questions when they matter. Literacy-slop never asks them.</p><h3 id="cultural-element">Cultural element</h3><p>The three things I always make sure to say about my work on literacy are:</p><ol><li>Literacies are plural</li><li>They are context-dependent</li><li>They are socially-negotiated</li></ol><p>This almost exactly maps onto what Segal says about taste:</p><blockquote>The biggest thing people are missing about taste across the board is that it is relative, contextual, and social.</blockquote><p>The <strong>cultural</strong> element of digital literacies foregrounds the fact that digital practices only make sense in context. Competence, skill, or fluency in one setting might be relevant, or <em>actively counterproductive</em> in another. </p><p>This element is about understanding the norms, histories, and values of the particular digital environment in which you find yourself. The way that people interact on Instagram is different to LinkedIn, is different to the student forum on Moodle. </p><p>Tasteslop decontextualises. Segal talks about how the same Trader Joe&apos;s tote bag is vulgar in California and briefly high-status in Tokyo. A Togo couch is tasteful until overexposure makes it <em>obvious</em>. It&apos;s all surface, no depth.</p><p>Literacy-slop does the same. It looks at surface competencies such as &#x201C;the ability to evaluate online sources&#x201D; or &#x201C;understanding privacy settings&#x201D; without the <em>contextual</em> knowledge that makes those competencies functional or useful. Evaluating online sources means something <em>very</em> different in a professional scientific community compared with a secondary school classroom, or a political campaign. </p><p>Without taking care of the cultural element of digital literacies, you are just running the classifier and creating literacy-slop.</p><h3 id="communicative-element">Communicative element</h3><p>Meaning is socially-negotiated. Taste requires an <em>audience</em> and a community sharing enough reference points to validate the judgement.</p><blockquote>Nobody can have taste unless somebody else can see it.</blockquote><p>AI can&apos;t <em>participate</em> in that process; it can only simulate its outputs.</p><p>The <strong>communicative</strong> element that I identified in digital literacies isn&apos;t just about about writing clearly or being able to share things. Rather, it&apos;s about the <em>relational</em> dimension of meaning-making: the fact that I&apos;m writing this on my blog makes my thoughts visible and valuable to others who can recognise and respond to it. </p><p>That&apos;s very different to an AI-written essay that&apos;s automatically graded. It&apos;s not really literacy at all &#x2013; never discussed within a community of practice, never contested, or refined, or validated by other humans. It&apos;s just a surface-level data index.</p><h3 id="cultural-capital-after-extraction">Cultural capital after extraction</h3><p>I like Segal&apos;s summary of tasteslop as:</p><blockquote>Cultural capital after extraction, after it&apos;s been through the blender.</blockquote><p>In other words, platforms and AI tools identify the aesthetic outputs of culturally-situated tastemaking and decontextualise them from the relations that give them meaning. Like the front of a house on a film set, the surface is there, but there&apos;s no actual substance behind it. </p><p>I&apos;m not against AI in education, but I&apos;m bored of seeing the same things presented as somehow <em>revolutionary:</em></p><ul><li>Learning content generated by models trained on Open Educational Resources and textbooks</li><li>Automated grading based on surface-level markers of competence</li><li>A focus on decontextualised &#x201C;skills&#x201D; with the thinnest layer of evidence</li></ul><p>This is literacy-slop served at scale, shorn of community interaction and the norms of the various disciplines. It&apos;s the logical endpoint of an education system that treats competence as something that can be somehow identified, extracted, certified, and redistributed independently of the communities of practice that produced it. </p><p>AI just accelerates that tendency and makes it cheaper. But it&apos;s the same error: mistaking the index for the practice.</p><p>My eight elements of digital literacies were an attempt to push back against that tendency. As I mentioned above, they describe not a set of skills but a <em>habitus. </em>There exists a whole complex of knowledge, dispositions, and social relationships that makes someone capable in various digital contexts. This is why I&apos;ve always been interested in the <a href="https://openrecognition.org/?ref=blog.dougbelshaw.com">Open Recognition</a> side of digital credentialing, rather than just slapping a badge on something.</p><h2 id="what-are-you-saying-doug">What are you saying, Doug?</h2><p>You could dismiss the above as a misguided claim that you can&apos;t measure learning. <em>That&apos;s not what I&apos;m saying</em>. </p><p>Instead, I&apos;m making the narrower claim that <em>tasteslop</em> and <em>literacy-slop</em> can be seen as symptoms of the same extractive logic. And that recognising that logic is <em>itself</em> an aspect of critical digital literacies.   </p><ul><li>A question for tastesloppers: &#x201C;Oh, you&apos;ve created an impeccably-tasteful AI-generated moodboard? Great: tell me what you know about Dieter Rams.&#x201D;</li><li>A question for literacy-sloppers: &#x201C;Oh, you&apos;ve created a beautifully-produced AI-generated learning module? Great: tell me what you know about constructivism.&#x201D; </li></ul><p>AI is a tool that allows us to create shortcuts, but the point is to be able to judge whether the shortcuts <em>take us anywhere useful.</em> Just as humans are the ultimate arbiters of taste, so we are the ultimate arbiters of literacy. And that can&apos;t be sloptimised.</p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[April 2026: frameworks, friction, and federation]]></title><description><![CDATA[What appeared on this blog in April 2026.]]></description><link>https://blog.dougbelshaw.com/april-2026/</link><guid isPermaLink="false">69f87c47bd09a60001b1ee49</guid><category><![CDATA[retrospective]]></category><category><![CDATA[month]]></category><pubDate>Mon, 04 May 2026 11:17:17 GMT</pubDate><media:content medium="image" url="https://images.unsplash.com/photo-1585305924445-e66502043e26?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGFwcmlsJTIwc2NyYWJibGV8ZW58MHx8fHwxNzc3ODkzMzc0fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1585305924445-e66502043e26?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fGFwcmlsJTIwc2NyYWJibGV8ZW58MHx8fHwxNzc3ODkzMzc0fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="April 2026: frameworks, friction, and federation"><p>It&apos;s Bank Holiday Monday and I&apos;ve just realised that I didn&apos;t write and publish an April roundup on April 30th. So here it is, a few days late. </p><p><a href="https://weareopen.coop/?ref=blog.dougbelshaw.com" rel="noreferrer">We Are (no longer) Open</a> which may have something to do with it. I also haven&apos;t had my usual three weeks off in April, so I&apos;m <em>tired</em>. As I&apos;ve <a href="https://blog.dougbelshaw.com/third-week/">written about before</a>, there&apos;s something magical about taking three weeks, especially at this time of year. But there&apos;s just been too much on.</p><p><a href="https://laurahilliger.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Laura</a> and I started a new project even with a few weeks left of the co-op, <a href="https://tomcw.xyz/?ref=blog.dougbelshaw.com" rel="noreferrer">Tom</a> kicked off the <a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com" rel="noreferrer">TechFreedom</a> pilot went live, I shipped a couple of <a href="https://dynamicskillset.com/tools?ref=blog.dougbelshaw.com" rel="noreferrer">new tools</a>, and the WAO research with the BBC was finally published. The pace caught up with me a bit by the end of the month, but more on that below.</p><h2 id="techfreedom-and-the-pilot-cohort">TechFreedom and the pilot cohort</h2><p>The big news this month is that <a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com">TechFreedom</a> launched properly as a cohort-based programme. Tom and I had been planning it for a while, so it was a relief to see it actually run with real participants. We&apos;ve had interest from people in the US and New Zealand who want to run something similar.</p><ul><li><a href="https://blog.dougbelshaw.com/techfreedom-pilot/"><strong>Want a clearer view of your tech stack? Join the TechFreedom pilot cohort</strong></a> (3 Apr) &#x2013; the formal call for the pilot cohort, alongside a new &#x201C;going deeper<a href="https://blog.dougbelshaw.com/certainty-theatre/"><strong>&#x201D;</strong></a> weighted risk profile and the <a href="https://techfreedom.eu/stacktopolis/?ref=blog.dougbelshaw.com">Stacktopolis</a> game.</li><li><a href="https://blog.dougbelshaw.com/certainty-theatre/"><strong>Choosing partnership over &#x201C;certainty theatre&#x201D;</strong></a> (22 Apr) &#x2013; on the pretence and performance that everyone knows what&apos;s going on. The gap between confident-sounding briefs and what&apos;s actually true on the ground is where most projects come unstuck.</li><li><a href="https://blog.dougbelshaw.com/productive-friction/"><strong>How a little &#x201C;productive friction&#x201D; protects human agency</strong></a> (24 Apr) &#x2013; sometimes the more human outcome is the one that introduces a pause long enough to notice, judge, and choose differently.</li></ul><p>The second two of these posts came directly out of running the first pilot session, with participants largely focusing as on things we&apos;d said in passing as the planned content.</p><h2 id="tools-federation-and-the-long-shadow-of-moodlenet">Tools, federation, and the long shadow of MoodleNet</h2><p>I shipped a couple of tools this month with which I&apos;m rather pleased:</p><ul><li><a href="https://blog.dougbelshaw.com/introducing-commonplace/"><strong>Introducing Commonplace</strong></a> (17 Apr) &#x2013; a federated resource collection manager for the open social web. You log in with your existing Mastodon, Bluesky, or IndieWeb account, curate links and uploads by topic, and share collections via ActivityPub or RSS. The closure announcement for what&apos;s left of moodle.net (on 20th April, of all days) gave me the nudge I needed.</li><li><a href="https://blog.dougbelshaw.com/contours-of-practice/"><strong>Turning polygonal badges into contours of practice</strong></a> (20 Apr) &#x2013; an early experiment that takes the polygonal badges idea and runs with it. <a href="https://contours.dynamicskillset.com/?ref=blog.dougbelshaw.com">Contours</a> shows a learner&apos;s skills progression as a layered, topographic-style view rather than a single snapshot. Still very much v0.x, but the idea is sound.</li></ul><p>Commonplace is obviously the more substantial of the two. <a href="https://blog.dougbelshaw.com/bridges-bonfire/">Bonfire Bridges</a> was my first attempt at scratching the itch, but I buil Commonplace when I realised I didn&apos;t have the Moodle constraints any more and could just base it on the accounts people already have. </p><h2 id="ai-literacy-and-the-tools-we-choose">AI, literacy, and the tools we choose</h2><p>The other four non-weeknote posts this month are roughly in the same territory: how we relate to AI tools, what literacy looks like in 2026, and how seriously to take our own arguments about Big Tech.</p><ul><li><a href="https://blog.dougbelshaw.com/supporting-ai-literacies-for-young-adults/"><strong>Supporting AI Literacies for Young Adults Aged 14-19</strong></a> (13 Apr) &#x2013; cross-posted from the WAO blog. The full research report with the BBC&apos;s Responsible Innovation Centre, presenting an AI Literacies framework with six key elements grounded in critical evaluation rather than just functional skills. One of the last major pieces of WAO work to see the light of day.</li><li><a href="https://blog.dougbelshaw.com/literate-communities/"><strong>Literate communities have always looked different to their critics</strong></a> (15 Apr) &#x2013; a response to a <em>Radical with Amol Rajan</em> episode in which James Marriott made a &#x201C;books = literacy = intelligence = democracy&#x201D; argument. The data on falling reading rates points to something real, but when you&apos;ve closed 800 libraries and gutted the infrastructure through which people build reading communities, blaming screens is a conclusion in search of a cause.</li><li><a href="https://blog.dougbelshaw.com/opencode-and-openrouter/"><strong>Claude Code used to be the obvious choice</strong></a> (27 Apr) &#x2013; I downgraded my Claude plan to Pro and shifted day-to-day coding to <a href="https://opencode.ai/?ref=blog.dougbelshaw.com">OpenCode</a> plus <a href="https://openrouter.ai/?ref=blog.dougbelshaw.com">OpenRouter</a>. Once you have language for jurisdiction, continuity, and lock-in risks via TechFreedom, continuing as if your own dependencies are exempt starts to feel a bit potentially-boiled-frog.</li><li><a href="https://blog.dougbelshaw.com/my-tech-disclaimer/"><strong>My tech disclaimer</strong></a> (29 Apr) &#x2013; prompted by an Elena Rossini quote about people who write about technology disclosing the stack they actually use. So I did. A useful exercise even if you don&apos;t end up publishing the result.</li></ul><h2 id="weeknotes">Weeknotes</h2><p>Four weeknotes this month:</p><ul><li><a href="https://blog.dougbelshaw.com/weeknote-14-2026/"><strong>Weeknote 14/2026</strong></a> (5 Apr) &#x2013; planning the TechFreedom workshops with Tom, a half-day at WAO working through closure logistics, and building <a href="https://framagit.org/dynamicskillset/nvAge?ref=blog.dougbelshaw.com" rel="noreferrer">nvAge</a> in the spirit of Notational Velocity.</li><li><a href="https://blog.dougbelshaw.com/weeknote-15-2026/"><strong>Weeknote 15/2026</strong></a> (12 Apr) &#x2013; off work for a week. Holy Island, Northumberland Zoo, watching Grace play against Sunderland Academy, and shipping Commonplace.</li><li><a href="https://blog.dougbelshaw.com/weeknote-16-2026/"><strong>Weeknote 16/2026</strong></a> (19 Apr) &#x2013; back to work, the AI Literacies report going live, and finishing <em>The Castle</em> by Kafka. Tired.</li><li><a href="https://blog.dougbelshaw.com/weeknote-17-2026/"><strong>Weeknote 17/2026</strong></a> (26 Apr) &#x2013; the AIUK community platform pilot evaluation presented to senior leadership, the first TechFreedom session run, getting set up on MIT&apos;s systems for the <a href="https://digitalcredentials.mit.edu/?ref=blog.dougbelshaw.com">DCC</a> work with Kerri, and a solo walk on the Pennine Way to clear my head.</li></ul><hr><p>April was the last full month of We Are Open Co-op. May is going to be different, but I&apos;m still the same person, with the same values, doing similar work.</p><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Weeknote 18/2026]]></title><description><![CDATA[What I've been up to this week.]]></description><link>https://blog.dougbelshaw.com/weeknote-18-2026/</link><guid isPermaLink="false">69f6ff3c5a09050001077486</guid><category><![CDATA[weeknote]]></category><pubDate>Sun, 03 May 2026 09:18:01 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/05/camellia.jpg"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/05/camellia.jpg" alt="Weeknote 18/2026"><p>Well here we are. Laura&apos;s on sabbatical, John&apos;s looking for a job, and <a href="https://weareopen.coop/?ref=blog.dougbelshaw.com" rel="noreferrer">We Are (no longer) Open</a>. It&apos;s been quite the week.</p><p>To be honest, it&apos;s been less outwardly emotional than I was expecting, but a couple of migraines as I headed into the weekend suggested that I&apos;ve probably still got some inner work to do.</p><p>A workshop I attended on Friday run by <a href="https://www.ourmanifesto.co.uk/?ref=blog.dougbelshaw.com">Annalise Lewis</a> entitled <em>Myths We Live By: Metaphor as a Tool for Empowering Change </em>came at just the right time. I knew I was in the a good space when one of the early slides featured a section of a <a href="https://en.wikipedia.org/wiki/John_Martin_(painter)?ref=blog.dougbelshaw.com">John Martin</a> engraving alongside the words &#x201C;metaphors are the language of the subconscious.&#x201D;</p><p>Annalise had us do an activity in which we closed our eyes (I know, I know) and she used <a href="https://en.wikipedia.org/wiki/Clean_language?ref=blog.dougbelshaw.com">Clean Language</a> questions to help guide us through some metaphors. I have to work hard at these moments to suspend disbelief, and managed to do so successfully enough to come up with a really weird hybrid metaphor.</p><p>Understanding that this will be about as interesting to other people as telling someone about a dream from which you&apos;ve just awoken, I will remind you that this is my blog and you are here voluntarily. So here we go...</p><p>First off, for some reason I pictured a <a href="https://en.wikipedia.org/wiki/Griffin?ref=blog.dougbelshaw.com">Griffin</a>, and then I thought &#x201C;no, Doug, that&apos;s just lazy&quot; &#x2013; after which, for some reason, a scene from a David Attenborough documentary entered my mind really vividly. It was the one featuring marine iguanas:</p><figure class="kg-card kg-embed-card"><iframe width="200" height="113" src="https://www.youtube.com/embed/FTS46pVoX5w?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen title="Rare Look at How Marine Iguanas Feed Underwater | 4K UHD | A Perfect Planet | BBC Earth"></iframe></figure><p>And then I realised that they weren&apos;t iguanas that I was contemplating, but <em>chameleons</em>. At this point, I&apos;m not even going to bother connecting the dots for you: if you can&apos;t see the relevance to my post-WAO professional life, then I give up.</p><h2 id="writing-creating">Writing &amp; Creating</h2><p>Here, I published:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/opencode-and-openrouter/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Claude Code used to be the obvious choice</div><div class="kg-bookmark-description">What happened when I applied the TechFreedom risk lenses to my own setup?</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-160.svg" alt="Weeknote 18/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/Screenshot-2026-04-27-at-18.22.54.png" alt="Weeknote 18/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/my-tech-disclaimer/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">My tech disclaimer</div><div class="kg-bookmark-description">I think it&#x2019;s probably a good idea for us all to reflect on how tools shape our lives.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-161.svg" alt="Weeknote 18/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/photo-1574743881234-4496daf0bc31" alt="Weeknote 18/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/the-end-of-an-era/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The end of an era</div><div class="kg-bookmark-description">A decade ago I didn&#x2019;t really know what a worker co-op was. Over the years I&#x2019;ve learned so much about a whole range of things.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-162.svg" alt="Weeknote 18/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/wao-redistributed.png" alt="Weeknote 18/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>I didn&apos;t publish anything over at <em>Thought Shrapnel</em>.</p><h2 id="reading-listening-and-watching">Reading, Listening, and Watching</h2><p>I finished <a href="https://literal.club/dajbelshaw/book/qntm-there-is-no-antimemetics-division-87gq4?ref=blog.dougbelshaw.com"><em>There Is No Antimemetics Division</em></a> by qntm, enjoying it slightly less the second time around. I&apos;m currently weighing up what to read next.</p><p>As with last week, I didn&apos;t listen to any podcasts or watch anything other than football and a single episode of <a href="https://en.wikipedia.org/wiki/Taskmaster_(TV_series)?ref=blog.dougbelshaw.com"><em>Taskmaster</em></a>.</p><h2 id="working">Working</h2><p>It&apos;s a weird feeling to be working in the last week of an organisation you&apos;ve decided to close. I&apos;ve left organisations where I&apos;ve been employed and I&apos;ve shut down projects, but this was different. On the one hand there things to get done, on the other hand, it was all stuff we were choosing to do; we could have just not done it.</p><p>One of the potentially most difficult things to discuss when closing down a business is what happens to the money. I&apos;m pleased to report that the <a href="https://www.sociocracyforall.org/consent-decision-making/?ref=blog.dougbelshaw.com">consent-based process</a> we used led to a satisfactory outcome. Along with logistics we&apos;d already itemised, that&apos;s what Laura, John, and I focused on getting done on Monday during our last co-op day.</p><p>The rest of the week involved meeting with <a href="https://inasp.info/?ref=blog.dougbelshaw.com" rel="noreferrer">INASP</a> about the technical report we&apos;d sprinted towards for their <a href="https://risingscholars.net/?ref=blog.dougbelshaw.com">Rising Scholars</a> website project. They were delighted with our work, and it looks like I&apos;ll be doing a bit more with them via <a href="https://dynamicskillset.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Dynamic Skillset</a>. </p><p>It was a bit cheeky of me to ask Laura during the final week before her sabbatical to start work on the <a href="https://digitalcredentials.mit.edu/?ref=blog.dougbelshaw.com">DCC</a> project around <a href="https://blog.dcconsortium.org/what-is-wallet-attached-storage-439917ba4fa5?ref=blog.dougbelshaw.com">Wallet Attached Storage</a>. But, gracious as ever, she indulged me and created a couple of diagrams which will be extremely helpful.</p><p><a href="https://ottonomy.net/?ref=blog.dougbelshaw.com" rel="noreferrer">Nate</a> made more progress on <a href="https://github.com/dynamicskillset/digital-badges-poc/wiki?ref=blog.dougbelshaw.com">Digital Badges Proof of Concept</a> platform for <a href="https://www.skillsdevelopmentscotland.co.uk/?ref=blog.dougbelshaw.com">Skills Development Scotland</a>. However, we weren&apos;t quite where we needed to be to run the workshop this week, so I postponed it until next Friday. In the event, that turned out to be a good decision for a couple of reasons: (i) I wouldn&apos;t have been in the right frame of mind to run it on the last day of WAO, and (ii) it&apos;s meant that more people can come along next Friday than could have done this week.</p><p>Other than that, helping get the <a href="https://weareopen.coop/?ref=blog.dougbelshaw.com" rel="noreferrer">WAO archive</a> page in order, and continuing iterating the 10 new systems thinking tools I&apos;m building, I worked on a proposal related to Digital Public Goods sustainability with <a href="https://www.linkedin.com/in/alina-mierlus/?ref=blog.dougbelshaw.com">Alina Mierlus</a> after <a href="https://www.linkedin.com/in/desiganchinniah/?ref=blog.dougbelshaw.com">Dees</a> posted it to the MozAlums mailing list. </p><h2 id="personal">Personal</h2><p>I&apos;ve been feeling a lot better physically recently, despite not running as much or intensely meaning that I&apos;ve put on a bit of weight. So, in addition to doing weights at the gym this week, I attempted a 5k at a normal-ish pace. Ruh-roh. Error. My smartwatch told me I needed <em>53 hours</em> of recovery time afterwards and I was absolutely exhausted yesterday, and pretty tired today. It turns out that recovering from <a href="https://my.clevelandclinic.org/health/diseases/overtraining-syndrome?ref=blog.dougbelshaw.com">Stage 3 OTS</a> takes quite a while... </p><p>We travelled the 1h 15m each way to Middlesbrough twice this week to watch games that my daughter, Grace, wasn&apos;t actually involved in. She&apos;s recovering from <a href="https://en.wikipedia.org/wiki/Shin_splints?ref=blog.dougbelshaw.com" rel="noreferrer">shin splints</a>, and the physio advised her not to play. Her grassroots team, playing a year up against Academy opposition, had others out through injury &#x2013; including their (excellent) goalkeeper &#x2013; so ended up losing 5-0 and then 6-0.</p><p>My son, Ben, is considering changing courses from Sport to Geography at <a href="https://www.northumbria.ac.uk/?ref=blog.dougbelshaw.com">Northumbria University</a>, and so went on a field trip with the Geography department this week. He&apos;s got exams the week after next, and then he&apos;s done for the year. It&apos;s been a weird one, due to getting on a course through clearing he hasn&apos;t particularly enjoyed and being ill a couple of times. Still, it&apos;s better to figure these things out and make decisions earlier in life.</p><h2 id="next-week">Next week</h2><p>It&apos;s Bank Holiday weekend, so I&apos;m off on Monday. I don&apos;t particularly want to think about next week yet, to be perfectly honest, but it will involve working on the projects I mentioned earlier. I&apos;m also still exploring options for running more powerful LLMs locally, after my order for a Mac Studio M2 Ultra at a bargain price ended up being cancelled due to &#x201C;overwhelming interest.&#x201D;</p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[The end of an era]]></title><description><![CDATA[A decade ago I didn't really know what a worker co-op was. Over the years I've learned so much about a whole range of things.]]></description><link>https://blog.dougbelshaw.com/the-end-of-an-era/</link><guid isPermaLink="false">69f45b2a5a090500010772f2</guid><category><![CDATA[WAO]]></category><category><![CDATA[cooperatives]]></category><category><![CDATA[collaboration]]></category><pubDate>Fri, 01 May 2026 08:06:46 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/05/wao-redistributed.png"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/05/wao-redistributed.png" alt="The end of an era"><p><a href="https://weareopen.coop/?ref=blog.dougbelshaw.com" rel="noreferrer">We Are Open Co-op</a> closes today: 1st May 2026, <a href="https://en.wikipedia.org/wiki/International_Workers&apos;_Day?ref=blog.dougbelshaw.com">International Workers&apos; Day</a> &#x1F918;</p><p>A decade ago I didn&apos;t really know what a worker co-op was. But when <a href="https://www.linkedin.com/in/bevangelist/?ref=blog.dougbelshaw.com" rel="noreferrer">John</a> suggested it as a structure for he, <a href="https://laurahilliger.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Laura</a>, <a href="https://bryanmmathers.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Bryan</a>, and I to work together, it seemed like a <em>great</em> idea.</p><p>Over the years I&apos;ve learned <em>so</em> much about a whole range of things. There&apos;s those I&apos;ve talked about before like <a href="https://blog.dougbelshaw.com/consent-decision-making/">consent-based decision making</a> and <a href="https://blog.dougbelshaw.com/font-and-nvc/">non-violent communication</a>. But there&apos;s other concepts like solidarity, and having equal ownership of a business you&apos;re building together on shared values.</p><p>It&apos;s also just <em>fun</em> to co-work with people you like on stuff you care about. It&apos;s <em>productive</em> to be in control of your calendar and be able to shape your days and weeks around your preferences and energy levels. And it&apos;s <em>rewarding</em> to achieve things at pace and demonstrate to clients different ways of working.</p><p>I&apos;m going to miss all that. But it&apos;s not like I&apos;m going to forget what I&apos;ve learned. My experiences at WAO built on things I learned at Mozilla, and that, in turn, rounded out the skills I learned as a teacher, senior leader, and researcher in formal education.</p><p>What I&apos;ll miss most is working with Laura on a daily basis. That woman is a force of nature and, when we&apos;re in sync (probably ~90% of the time) the momentum we generate is scary. I&apos;ve never met anyone who is both big picture and details-oriented at the same time. And I&apos;ve never met someone who <em>cares</em> so much about their work.</p><p>I&apos;m sure I&apos;ll have more reflections in due course, but for now, check out the final, collaborative post we published on the WAO blog this morning:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.weareopen.coop/we-are-composting/?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">We Are Composting</div><div class="kg-bookmark-description">Earlier this year we announced that after ten years of creative collaboration, we would be closing We Are Open Co-op on May 1st.
May 1st has arrived.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/WAO-square-cutout-colour_tr_500-1-1.png" alt="The end of an era"><span class="kg-bookmark-author">Blog | We Are Open Co-op</span><span class="kg-bookmark-publisher">WAO</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/data-src-image-c0ac5c15-2ad0-475a-af35-809e0ad15628.png" alt="The end of an era" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>We spent the last few weeks archiving the fruits of 10 years of collaboration. That&apos;s accessible from the website we created to replace our home page. Check out:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://weareopen.coop/?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">We Are Open Co-op: 2016&#x2013;2026</div><div class="kg-bookmark-description">A decade of work in digital credentials, open recognition, and systems thinking</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/wao-logo.png" alt="The end of an era"><span class="kg-bookmark-author">We Are Open Co-op</span><span class="kg-bookmark-publisher">We Are Open Co-op</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/wao-logo.png" alt="The end of an era" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>The momentum that WAO has provided me I will be channelling into projects through <a href="https://dynamicskillset.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Dynamic Skillset</a>. But for now I&apos;m raising a glass to my co-op buddies: cheers! &#x1F943; </p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Sign up for Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[My tech disclaimer]]></title><description><![CDATA[I think it's probably a good idea for us all to reflect on how tools shape our lives.]]></description><link>https://blog.dougbelshaw.com/my-tech-disclaimer/</link><guid isPermaLink="false">69f19cc25a09050001077058</guid><category><![CDATA[Technology]]></category><pubDate>Wed, 29 Apr 2026 07:33:45 GMT</pubDate><media:content medium="image" url="https://images.unsplash.com/photo-1574743881234-4496daf0bc31?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDIyfHx0ZWNoJTIwd2VpcmR8ZW58MHx8fHwxNzc3NDQ3OTU0fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1574743881234-4496daf0bc31?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDIyfHx0ZWNoJTIwd2VpcmR8ZW58MHx8fHwxNzc3NDQ3OTU0fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="My tech disclaimer"><p>A year ago, I <a href="https://thoughtshrapnel.com/2025/04/18/i-just-think-that-people.html?ref=blog.dougbelshaw.com">published this</a> on <em>Thought Shrapnel </em>which quoted <a href="https://blog.elenarossini.com/this-is-what-resistance-to-the-digital-coup-looks-like/?ref=blog.dougbelshaw.com">Elena Rossini</a>:</p><blockquote>I just think that people who write about technology should have a disclaimer about the tech stack they use - in order to see if they&#x2019;re &#x201C;walking the talk.&#x201D; And if people who speak truth to power feel they need to be on VC-backed, centralized, for-profit social networks, sure no problem. But I believe that anyone speaking up against the broligarchy should be active on the Fediverse too - a galaxy of independent, free, open source networks that is not funded by billionaires or crypto bros.</blockquote><p>Independent journalists regularly have an ethics page, or disclose in the pieces they write any financial interests they might have in the topics they cover. </p><p>I think it&apos;s probably a good idea for us all to reflect on how tools shape our lives:</p><blockquote>Tools are made to accomplish our purposes, and in this sense they represent desires and intentions. <strong>We make our tools and our tools make us:</strong> by taking up particular tools we accede to desires and we manifest intentions.<br><br>&#x2013; <a href="https://quoteinvestigator.com/2016/06/26/shape/?ref=blog.dougbelshaw.com">William J. Mitchell</a></blockquote><p>For example, back when I was fully inside the Apple ecosystem, I used to watch the <a href="https://en.wikipedia.org/wiki/Worldwide_Developers_Conference?ref=blog.dougbelshaw.com">WWDC</a> every year to find out about new technologies they were releasing, but also to figure out what I was going to be allowed to do with my devices.</p><p>Our choices matter. For example, I live in the UK and, thanks to an agreement between the government and Apple, <a href="https://support.apple.com/en-gb/122234?ref=blog.dougbelshaw.com">I don&apos;t have the same encryption options</a> as users in other countries, or that I have with my Linux laptop.</p><p>We live in a world of <em>post hoc, ergo propter hoc</em> &#x2013; a Latin phrase which translates as &#x201C;after it, therefore, because of it.&#x201D; We justify our actions retrospectively because of decisions we have made beforehand.</p><p>Anyway, on with the show. Here&apos;s my tech stack at the moment, loosely based on the approach that <a href="https://tomcw.xyz/what-stack-do-i-use/?ref=blog.dougbelshaw.com">Tom</a> used last year. We&apos;re both working on <a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com" rel="noreferrer">TechFreedom</a>, for those interested in thinking more carefully about their organisational use of technology.</p><hr><h2 id="my-current-tech-stack">My current tech stack</h2><h3 id="devices">Devices</h3><p>I&apos;ve got a <a href="https://en.wikipedia.org/wiki/Mac_Studio?ref=blog.dougbelshaw.com">Mac Studio M1 Max</a> on my desktop, paired with a <a href="https://en.wikipedia.org/wiki/Apple_Studio_Display?ref=blog.dougbelshaw.com">Studio Display</a>. My laptop is a <a href="https://en.wikipedia.org/wiki/ThinkPad_X1_series?ref=blog.dougbelshaw.com#X1_Titanium_Yoga_Gen_1">Lenovo X1 Titanium Yoga</a> running <a href="https://fedoraproject.org/atomic-desktops/silverblue/?ref=blog.dougbelshaw.com">Fedora Silverblue</a>. I&apos;ve got a <a href="https://en.wikipedia.org/wiki/Mac_Mini?ref=blog.dougbelshaw.com">Mac Mini M1</a> as well, which I mention below.</p><p>Phone-wise, I have <a href="https://grapheneos.org/?ref=blog.dougbelshaw.com">GrapheneOS</a> installed on a <a href="https://en.wikipedia.org/wiki/Pixel_Fold?ref=blog.dougbelshaw.com">Pixel Fold</a>. After a period of time not wearing it, due to medical advice (I&apos;m recovering from <a href="https://www.physio-pedia.com/Overtraining_Syndrome?ref=blog.dougbelshaw.com">Stage 3 Overtraining Syndrome</a>), I&apos;m back wearing my <a href="https://wiki.garminrumors.com/Venu_3?ref=blog.dougbelshaw.com">Garmin Venu 3</a>.</p><p>My family is very much Google-centric, so we have their <a href="https://en.wikipedia.org/wiki/Google_Nest?ref=blog.dougbelshaw.com">Nest</a> doorbell, various speakers, and a display in the kitchen. The speaker I have in my office, mainly to hear the doorbell, has the microphone muted. I&apos;ve been diversifying this over recent years, <a href="https://blog.dougbelshaw.com/building-an-ipod-for-2023-wip/">building an iPod Classic</a>, buying an <a href="https://en.wikipedia.org/wiki/IPod_Nano?ref=blog.dougbelshaw.com#3rd_generation">iPod Nano</a> (3rd gen), and pairing them with a couple of <a href="https://en.wikipedia.org/wiki/IPod_Hi-Fi?ref=blog.dougbelshaw.com">iPod Hi-Fi</a> speakers.</p><hr><h3 id="email-docs-spreadsheets-etc">Email, docs, spreadsheets, etc.</h3><p>I <a href="https://blog.dougbelshaw.com/google-to-proton/">migrated from Google to Proton</a> at the start of this year. I&apos;m still getting used to it, especially as I&apos;m so used to living within the Google ecosystem, both for WAO (closing this week!) and Dynamic Skillset. Proton is definitely less frictionless, but <a href="https://blog.dougbelshaw.com/productive-friction/">a little bit of friction can be a good thing</a>, actually. It&apos;s caused me to install an instance of <a href="https://etherpad.org/?ref=blog.dougbelshaw.com">Etherpad</a> for quick collaboration. And I <em>love</em> Etherpad.</p><hr><h3 id="web-browser">Web browser</h3><p>I&apos;m using <a href="https://zen-browser.app/?ref=blog.dougbelshaw.com">Zen browser</a>, which is like Arc but based on Firefox. I very occasionally use Chrome to test things out, or if there&apos;s an annoying website which hasn&apos;t tested in multiple browser rendering engines. </p><p>I really like the vertical tabs, tab groups, and tab pinning. You can also show multiple tabs at the same time. It&apos;s great.</p><hr><h3 id="blog">Blog</h3><p>This blog is running on <a href="https://ghost.org/?ref=blog.dougbelshaw.com" rel="noreferrer">Ghost</a> and is hosted on the Mac Mini in my office. As my <a href="https://blog.dougbelshaw.com/private-resilient-blog/">blog post about the move from WordPress</a> after 20 years noted, I used to host it on a <a href="https://njal.la/?ref=blog.dougbelshaw.com">Njalla</a> VPS, but when my son bought a gaming PC and returned my Mac Mini M1, I thought it was the perfect opportunity to test out <a href="https://developers.cloudflare.com/tunnel/?ref=blog.dougbelshaw.com">Cloudflare Tunnel</a>:</p><blockquote>Cloudflare Tunnel connects your infrastructure to Cloudflare through an outbound-only, <a href="https://developers.cloudflare.com/ssl/post-quantum-cryptography/?ref=blog.dougbelshaw.com">post-quantum encrypted</a> connection. Instead of exposing a public IP, you install a lightweight daemon called <code>cloudflared</code> on your server. It creates a persistent tunnel to Cloudflare&apos;s global network, so all traffic to your origins flows through Cloudflare &#x2014; where CDN caching, WAF, Bot Management, and DDoS protection are applied automatically.<br><br>No open inbound ports. No public IPs. No attack surface.</blockquote><p>I&apos;ve looked for a non-US option for this, but nothing has that combination of features. It&apos;s pretty amazing. As my data is literally in front of me in my home office, I&apos;m willing to make that trade-off for now. </p><p>Given I&apos;m on reliable fibre broadband, I&apos;m also hosting all of the <a href="https://dynamicskillset.com/tools/?ref=blog.dougbelshaw.com">tools I&apos;ve been building</a> this way, too. </p><hr><h3 id="analytics"><strong>Analytics</strong></h3><p>I use <a href="https://www.tinybird.co/?ref=blog.dougbelshaw.com">Tinybird</a> on this blog, but have chosen not to use any dedicated analytics at the moment for my tools. I just get aggregate stats via Cloudflare. </p><hr><h3 id="ai"><strong>AI</strong></h3><p>Having used <a href="https://claude.ai/?ref=blog.dougbelshaw.com" rel="noreferrer">Claude</a> pretty heavily on their &apos;Max 5x&apos; plan over the last few months, I&apos;ve downgraded to &apos;Pro&apos; and am <a href="https://blog.dougbelshaw.com/opencode-and-openrouter/">using mainly Opencode with Openrouter</a>. I had hoped to upgrade my Mac Studio M1 to a faster version, but the crazy deal I found was so good that the supplier cancelled my order due to &#x201C;unprecedented demand.&#x201D; </p><p>I know a lot of people are dead against AI, and I get it. There seem to be so many issues &#x2013;  from the environmental (which <a href="https://laurahilliger.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Laura</a> and I have <a href="https://policy.friendsoftheearth.uk/reports/harnessing-ai-environmental-justice?ref=blog.dougbelshaw.com">written about for Friends of the Earth</a>), the insane amount of money being spent on the build-out, and the creeping surveillance economy.</p><p><em>And yet...</em> if you&apos;ve used frontier models, or even something close to them, it feels magical. It&apos;s changed the way I work. My aim is to find a way to do planning via the most able models I have access to, and then do the grunt work with local models. </p><p>I&apos;m not going to lie, I am <em>so</em> tempted to buy a <a href="https://www.nvidia.com/en-gb/products/workstations/dgx-spark/?ref=blog.dougbelshaw.com">NVIDIA DGX Spark</a>. However, while I know that I could rationalise every which way, &#xA3;4k is still a <em>lot</em> of money to be spending on a computer. </p><hr><h3 id="code-repositories">Code repositories</h3><p>GitHub used to be cool and awesome before Microsoft took over. I really do not like Microsoft, and never have done, so recently I moved most of my code repositories to <a href="https://framagit.org/?ref=blog.dougbelshaw.com">Framagit</a>.</p><p>Offered and managed by <a href="https://framasoft.org/en/?ref=blog.dougbelshaw.com">Framasoft</a>, a French non-profit which exists &#x201C;to contribute to a society of social justice where digital technology empowers people, against the backdrop of the imaginations of surveillance capitalism.&#x201D; </p><p>Framagit is an installation of <a href="https://gitlab.com/rluna-gitlab/gitlab-ce?ref=blog.dougbelshaw.com">GitLab Community Edition</a>. I&apos;m familiar with GitLab from my MoodleNet days, and also it includes CI/CD which is useful for building binaries of the apps I&apos;m building.</p><hr><h3 id="meeting-scheduling">Meeting scheduling</h3><p>At the time when I switched, Proton Calendar didn&apos;t have its new <a href="https://proton.me/support/calendar-appointment-scheduling?ref=blog.dougbelshaw.com">booking pages</a> functionality. And even when it launched, it didn&apos;t have the ability to check other calendars.</p><p>So <a href="https://blog.dougbelshaw.com/scheduler-calanywhere/">I built CalAnywhere</a>, which I&apos;ve been happily using for scheduling. It&apos;s based on iCal, so you can use it for <em>any</em> calendar. Right now, for the next few days until WAO closes, I&apos;m straddling Google and Proton ecosystems. But when I&apos;m just using Proton, I might just switch to their booking pages. </p><hr><h3 id="time-tracking">Time tracking</h3><p>My needs are very simple, and I&apos;m used to using <a href="https://toggl.com/?ref=blog.dougbelshaw.com">Toggl Track</a>. If I needed anything more than what they provide on the free plan, I&apos;d probably build my own solution.</p><p>I have considered building this functionality into <a href="https://taskdial.dynamicskillset.com/about/?ref=blog.dougbelshaw.com">TaskDial</a>, a tool that I built and which I use every day. However, I&apos;m wary of feature bloat and, in general, I like the <a href="https://en.wikipedia.org/wiki/Unix_philosophy?ref=blog.dougbelshaw.com">Unix philosophy</a>:</p><blockquote>The Unix philosophy emphasizes building simple, compact, clear, modular, and extensible code that can be easily maintained and repurposed by developers other than its creators. The Unix philosophy favors composability as opposed to monolithic design. </blockquote><hr><h3 id="accountancy-software">Accountancy software</h3><p>My accountant uses <a href="https://xero.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Xero</a> and bundles it as part of her monthly fee. So I use that. I&apos;ve never used anything else, and it does the job for me, so &#xAF;\_(&#x30C4;)_/&#xAF;</p><hr><h3 id="social-media-messaging">Social media &amp; messaging</h3><p>I&apos;m active across <a href="https://social.coop/@dajb?ref=blog.dougbelshaw.com">Mastodon</a>, <a href="https://bsky.app/profile/dougbelshaw.com?ref=blog.dougbelshaw.com">Bluesky</a>, and (sadly) <a href="https://www.linkedin.com/in/dajbelshaw/?ref=blog.dougbelshaw.com">LinkedIn</a>. Some days I just want to blow it all up and either start again, or just... not. You might find my account on Instagram, but I literally just registered it to stop people registering it and impersonating me.</p><p>I don&apos;t use WhatsApp, and communicate with friends and family via <a href="https://signal.org/?ref=blog.dougbelshaw.com" rel="noreferrer">Signal</a>. Our co-op used the free version of <a href="https://slack.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Slack</a> but we&apos;re shutting that down when we close. I&apos;ll remain on a few other Slack channels such as <a href="https://www.agenciesforgood.org/?ref=blog.dougbelshaw.com">Agencies for Good</a> and Freelancers Get Sh*t Done.</p><hr><h3 id="conclusion">Conclusion</h3><p>Being intentional about your tech stack isn&apos;t easy. Most people&apos;s working lives are often governed by other people making tech decisions for them, and their social lives depend on using tools that other people do. </p><p>Thankfully, I&apos;m both in control of the tools I use for my work, and somewhat anti-social. So I&apos;m in the (un?)enviable position that I can experiment with whatever I like and nobody cares &#x1F643;</p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Claude Code used to be the obvious choice]]></title><description><![CDATA[What happened when I applied the TechFreedom risk lenses to my own setup? ]]></description><link>https://blog.dougbelshaw.com/opencode-and-openrouter/</link><guid isPermaLink="false">69ef952c5a09050001076ebc</guid><category><![CDATA[AI]]></category><category><![CDATA[coding]]></category><category><![CDATA[TechFreedom]]></category><pubDate>Mon, 27 Apr 2026 17:45:51 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/04/Screenshot-2026-04-27-at-18.22.54.png"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/04/Screenshot-2026-04-27-at-18.22.54.png" alt="Claude Code used to be the obvious choice"><p>I can&apos;t tell you how much I&apos;ve enjoyed creating <a href="https://substack.move37.ai/p/folk-software?ref=blog.dougbelshaw.com">folk software</a> over the past few months. You can see a bunch of apps over at <a href="https://dynamicskillset.com/tools?ref=blog.dougbelshaw.com" rel="noreferrer">dynamicskillset.com/tools</a></p><p>I created the vast majority of these with Opus 4.6, paying $100/month for the Claude Max 5x plan. It was fast, capable, and had defaults like <code>/handoff</code> and <code>/catchup</code> making it really easy to use. </p><p>While I had already experimented with alternatives (no-one likes vendor lock-in!) I have to say that I&apos;ve been disappointed by Opus 4.7. It feels slower and less capable than 4.6. Enough so that the convenience I was getting from Claude is no longer enough to compensate for my discomfort about depending so heavily on one US platform. </p><p>That&apos;s particularly true given that, through <a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com" rel="noreferrer">TechFreedom</a>, I&apos;ve been helping organisations move away from US-based Big Tech. I started to feel a bit like a potentially-boiled frog. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.dougbelshaw.com/content/images/2026/04/boiled-frog.png" class="kg-image" alt="Claude Code used to be the obvious choice" loading="lazy" width="1259" height="1600" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/04/boiled-frog.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/04/boiled-frog.png 1000w, https://blog.dougbelshaw.com/content/images/2026/04/boiled-frog.png 1259w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Risk profile generated from the &quot;go deeper&quot; part of the </span><a href="https://techfreedom.eu/assess/?ref=blog.dougbelshaw.com"><span style="white-space: pre-wrap;">TechFreedom Risk Assessment</span></a></figcaption></figure><p><a href="https://tomcw.xyz/?ref=blog.dougbelshaw.com" rel="noreferrer">Tom</a> and I came up with these lenses for social purpose organisations thinking about cloud platforms and infrastructure. But, sitting in front of Claude Code most days, it became hard not to apply the same questions to my own tools. It turns out that, once you have language for these risks, continuing as if your own dependencies are exempt starts to feel... weird.</p><h2 id="what-my-setup-looks-like-now">What my setup looks like now</h2><p>I&apos;ve downgraded my Claude plan to the regular &apos;Pro&apos; tier so that I can still use Frontier models with their huge context windows for Product Requirements Documents (PRDs). </p><p>The actual development work is handled via <a href="https://opencode.ai/?ref=blog.dougbelshaw.com">OpenCode</a> plus <a href="https://openrouter.ai/?ref=blog.dougbelshaw.com">OpenRouter</a>, mostly in the terminal. I get access to multiple models via OpenRouter, and can also use OpenCode to run local models. </p><p>Right now, until my new <a href="https://www.techradar.com/reviews/apple-mac-studio-m2-ultra?ref=blog.dougbelshaw.com">Mac Studio M2 Ultra</a> arrives, I&apos;m using models like Qwen 3.6 Plus and Gemma 4 31B for day to day coding work. You can compare which models might work for you using Tom&apos;s excellent new <a href="https://www.findbearing.org/?ref=blog.dougbelshaw.com">Bearing</a> tool. </p><p>I&apos;ve configured OpenCode to behave in ways that are similar to what I liked about Claude &#x2013; including the <code>/handoff</code> and <code>/catchup</code> commands. One plugin I&apos;ve used heavily over the past few months, <a href="https://impeccable.style/?ref=blog.dougbelshaw.com" rel="noreferrer">Impeccable</a>, works using <em>any</em> AI tool, so that was easy to continue using.</p><p>Working in the terminal only, rather than via graphical interfaces, feels a bit like choosing a stripped back text editor instead of a fully loaded word processor. While you lose some of the gloss, in exchange you gain laser focus, and faster performance. It&apos;s great. </p><h2 id="whats-next">What&apos;s next?</h2><p>I&apos;ve had a good response to my <a href="https://sightlines.dynamicskillset.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Sightlines</a> systems thinking tools, so I&apos;ve started work on a series of 10 more advanced tools which organisations will be able to use together over a period of time. These will almost certainly be paid-for. </p><p>I&apos;m well on my way to removing my dependence on US-based Big Tech. Yes, I&apos;m still using some Apple devices. Yes, my house still has Google displays, and my Polestar 2 has the Android Automotive built-in, but I&apos;m being much more intentional about my choices. </p><h2 id="questions-im-now-asking">Questions I&apos;m now asking</h2><p>I&apos;ve written this post not because I want to persuade you to do similar, and not because I&apos;m flexing any tech skills (lol). What I&apos;m trying to do is model the kind of questions I ask about AI tools. </p><p>When a new model or AI assistant appears, I&apos;m not just looking at benchmarks and context window size, but also at whose <em>jurisdiction</em> it sits in, how it treats <em>continuity</em>, what data it collects, how easy it would be to leave, and how volatile its pricing is likely to be.</p><p>You don&apos;t have to pick a single vendor and live inside their world. Open and configurable used to mean terrible UX; I&apos;m delighted to say that&apos;s no longer the case. </p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Weeknote 17/2026]]></title><description><![CDATA[What I've been up to this week.]]></description><link>https://blog.dougbelshaw.com/weeknote-17-2026/</link><guid isPermaLink="false">69ee74e35a09050001076d28</guid><category><![CDATA[weeknote]]></category><pubDate>Sun, 26 Apr 2026 20:50:03 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/04/pennine-way.jpg"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/04/pennine-way.jpg" alt="Weeknote 17/2026"><p>It&apos;s been a busy week, and I&apos;ve tried to relax a bit today &#x2013; hence this weeknote going out so late on a Sunday evening.</p><p>I took the above photo today on a solo trip to one of my favourite places in the world: the northernmost part of the Pennine Way from Kirk Yetholm. It&apos;s right on the England/Scotland border and usually deserted. It&apos;s such a great place for gathering one&apos;s thoughts. </p><h2 id="writing-creating">Writing &amp; Creating</h2><p>Here, I published:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/contours-of-practice/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Turning polygonal badges into contours of practice</div><div class="kg-bookmark-description">Expanding on my post about badges to show skills development with a tool that does just that.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-152.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/contours-overview.gif" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/certainty-theatre/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Choosing partnership over &#x201C;certainty theatre&#x201D;</div><div class="kg-bookmark-description">In warfare, when you know more than your enemy, it&#x2019;s called information asymmetry. The idea is that you want to have a tactical advantage over your adversary so that you can defeat them. I would hope that an agency-client relationship is fundamentally different to this.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-153.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/photo-1730572359111-b3435964b9df" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://blog.dougbelshaw.com/productive-friction/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">How a little &#x201C;productive friction&#x201D; protects human agency</div><div class="kg-bookmark-description">Sometimes the highest good is not an uninterrupted flow from intention to completion. Sometimes the more human outcome &#x2013; the one that promotes agency &#x2013; is the one that introduces a pause that&#x2019;s long enough to notice, judge, reconsider, and perhaps to choose differently.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-154.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Open Thinkering</span><span class="kg-bookmark-publisher">Doug Belshaw</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/photo-1743184437508-f1b3b793922b" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><p>Over at <em>Thought Shrapnel</em>, I published:</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/04/24/the-future-is-offline.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">THE FUTURE IS OFFLINE</div><div class="kg-bookmark-description">Source: maique</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-155.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/future-offline.jpg" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/04/24/having-a-system-built-on.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Having a system built on context puts the power in the people&#x2019;s hands</div><div class="kg-bookmark-description">This post is by a journalist, talking about journalism. But it&#x2019;s not a huge conceptual leap to think about this in terms of education.
The people who are stuck in the AI = chatbot are getting it all wrong. Interacting with an AI is an amazing way of connecting together things you care about in an order that suits you and the way you learn. It&#x2019;s not just about sitting kids in front of a computer, but about finding ways of exploring human knowledge in ways that go beyond the limited experience of the people who happen to be available for guidance.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-156.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/boliviainteligente-s5c-4tmy8fa-unsplash.jpg" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/04/25/renewable-energy-of-days-in.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Renewable energy: 98% of days in Britain are either windy, sunny, or both</div><div class="kg-bookmark-description">I discovered this particular one via LinkedIn, but the original creators of this infographic, Ember Energy, has loads of them on their website &#x2013; mainly focused on the EU.
Source: LinkedIn</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-157.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/1777024269630.jpg" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/04/25/grand-ambitions-vs-reality.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Grand ambitions vs reality</div><div class="kg-bookmark-description">It&#x2019;s not just walking, but solo travel of any sort that does this kind of thing to me. I&#x2019;ve spent too long at home recently.
Source: Are.na</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-158.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/walking-vs-home.webp" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://thoughtshrapnel.com/2026/04/25/the-concentration-of-power-in.html?ref=blog.dougbelshaw.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The concentration of power in AI labs is now one of the defining political questions of the decade</div><div class="kg-bookmark-description">This is an excellent post which talks lucidly about what it means for power to be decentralised in the world of AI. The author, Alex Chalmers, argues that decentralisation is not automatically good; it only works when embedded in a framework that can coordinate local actors, define boundaries, and step in when things go wrong.
Chalmers draws on historical thinkers and different traditions, ultimately arguing that if we care about pluralism and autonomy, we should design bounded decentralisation with explicit constitutional guardrails.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://blog.dougbelshaw.com/content/images/icon/favicon-159.svg" alt="Weeknote 17/2026"><span class="kg-bookmark-author">Thought Shrapnel</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://blog.dougbelshaw.com/content/images/thumbnail/deborahlupton-popchips-1280x678.jpg" alt="Weeknote 17/2026" onerror="this.style.display = &apos;none&apos;"></div></a></figure><h2 id="reading-listening-and-watching">Reading, Listening, and Watching</h2><p>I didn&apos;t particularly enjoy <a href="https://literal.club/dajbelshaw/book/vile-bodies-b7xg0?ref=blog.dougbelshaw.com"><em>Vile Bodies</em></a><em> </em>by Evelyn Waugh, so I gave up half way through the week, and started re-reading the excellent <a href="https://literal.club/dajbelshaw/book/qntm-there-is-no-antimemetics-division-87gq4?ref=blog.dougbelshaw.com"><em>There Is No Antimemetics Division</em></a> by qntm. </p><p>As I was so busy with work, I purposely didn&apos;t listen to any podcasts or watch anything, because I needed the headspace. (I did, obviously, watch football.)</p><h2 id="working">Working</h2><p><em>So</em> much work this week: </p><ul><li>Finishing up the <a href="https://amnesty.org.uk/?ref=blog.dougbelshaw.com" rel="noreferrer">Amnesty International UK</a> community platform pilot by presenting our evaluation report to the senior leadership team. </li><li>Submitting a technical report and video walkthrough of a potential solution to <a href="https://inasp.info/?ref=blog.dougbelshaw.com" rel="noreferrer">INASP</a> for their <a href="https://risingscholars.net/?ref=blog.dougbelshaw.com">Rising Scholars</a> website project. </li><li>Working on the final blog post and meeting with our accountant r.e. <a href="https://blog.weareopen.coop/we-are-closing/?ref=blog.dougbelshaw.com">WAO closing next week</a></li><li>Meeting with participants before the workshop for the <a href="https://github.com/dynamicskillset/digital-badges-poc/wiki?ref=blog.dougbelshaw.com">Digital Badges Proof of Concept</a>. </li><li>Running the first session for the <a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com" rel="noreferrer">TechFreedom</a> pilot cohort with <a href="https://tomcw.xyz/?ref=blog.dougbelshaw.com" rel="noreferrer">Tom Watson</a>.</li><li>Getting set up on the MIT system so that I can start work with <a href="https://www.linkedin.com/in/kerrilemoie/?ref=blog.dougbelshaw.com">Kerri Lemoie</a> about some work I&apos;m going to be doing for the <a href="https://digitalcredentials.mit.edu/?ref=blog.dougbelshaw.com">DCC</a> around <a href="https://blog.dcconsortium.org/what-is-wallet-attached-storage-439917ba4fa5?ref=blog.dougbelshaw.com">Wallet Attached Storage</a>. </li><li>Working on proposals with <a href="https://blog.dcconsortium.org/what-is-wallet-attached-storage-439917ba4fa5?ref=blog.dougbelshaw.com">Abi Handley</a> (Surfers Against Sewage) and Tom (CIVICUS) which took much longer than I thought. </li><li>Meeting up with <a href="https://www.linkedin.com/in/justin-spooner-8134237/?ref=blog.dougbelshaw.com">Justin Spooner</a> for a bit of a chat about AI and all the things.</li><li>Starting work on 10(!) new systems thinking tools which are a bit more advanced than the <a href="https://sightlines.dynamicskillset.com/?ref=blog.dougbelshaw.com">Sightlines</a> tools. I think these ones might be paid-for as a whole suite. </li></ul><h2 id="personal">Personal</h2><p>Just trying to get to the gym and not be at my computer all the time. As I mentioned at the top of this post, I got out for a walk today, but I have been very much cooped up in my office.</p><p>Yesterday, I painted the door of my office &#x2013; something I&apos;ve been meaning to do for the (almost) full year since it&apos;s been built. It&apos;s looking pretty good.</p><h2 id="next-week">Next week</h2><p>It&apos;s going to be a busy and emotional one, work-wise. The last day of <a href="https://weareopen.coop/?ref=blog.dougbelshaw.com" rel="noreferrer">WAO</a> is Thursday, and then Laura goes on sabbatical for an unspecified amount of time. I will very much miss working with her on a day-to-day basis. It&apos;s the end of an era.</p><p>I&apos;m tired and I need to go to bed. So that&apos;s what I&apos;m going to do.  &#x1F971;</p><hr><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[How a little “productive friction” protects human agency]]></title><description><![CDATA[Sometimes the highest good is not an uninterrupted flow from intention to completion. Sometimes the more human outcome – the one that promotes agency – is the one that introduces a pause that's long enough to notice, judge, reconsider, and perhaps to choose differently.]]></description><link>https://blog.dougbelshaw.com/productive-friction/</link><guid isPermaLink="false">69e9caaaf4b64e0001616274</guid><category><![CDATA[digital literacies]]></category><category><![CDATA[UX]]></category><category><![CDATA[reflection]]></category><pubDate>Fri, 24 Apr 2026 06:38:53 GMT</pubDate><media:content medium="image" url="https://images.unsplash.com/photo-1743184437508-f1b3b793922b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNjcm9sbGluZ3xlbnwwfHx8fDE3NzcwMTI2MTZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1743184437508-f1b3b793922b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDh8fHNjcm9sbGluZ3xlbnwwfHx8fDE3NzcwMTI2MTZ8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="How a little &#x201C;productive friction&#x201D; protects human agency"><p>Earlier this week, <a href="https://tomcw.xyz/?ref=blog.dougbelshaw.com" rel="noreferrer">Tom</a> and I ran the first session of the <a href="https://techfreedom.eu/?ref=blog.dougbelshaw.com" rel="noreferrer">TechFreedom</a> pilot cohort. Sometimes when you run these things, it&apos;s the things you <em>don&apos;t</em> plan that have the biggest impact. </p><p>At the end of the session, when we were reflecting on what we&apos;d learned, participants focused on things that Tom and I had said <em>in passing</em> between activities &#x2013; and it&apos;s one of these lines that I want to focus on in this post. </p><p>What did I say? That the &#x201C;frictionless&#x201D; experiences promised by Big Tech companies are sometimes at odds with what we need. Sometimes we <em>need</em> a bit of friction to give us time to reflect and consider things.</p><h2 id="%E2%80%9Csmooth%E2%80%9D-can-become-numbing">&#x201C;Smooth&#x201D; can become numbing</h2><p>Back when I worked at Mozilla, my work on <a href="https://www.mozillafoundation.org/en/initiatives/web-literacy/?ref=blog.dougbelshaw.com">web literacy</a> underpinned the foundation&apos;s work on Webmaker. As <a href="https://brocku.ca/social-sciences/cpcf/people-in-the-department/karen-louise-smith/?ref=blog.dougbelshaw.com">Karen</a> and I wrote in a <a href="https://wiki.mozilla.org/Webmaker/Whitepaper?ref=blog.dougbelshaw.com">Webmaker whitepaper</a>, polished experiences often leave people as passive users rather than active participants. </p><blockquote>Another force attacking the Open Web is that of elegant consumption. Well-designed interfaces that delight and surprise us are to be encouraged, but when they are locked down, when there is no way to &#x2018;view source&#x2019;, then we become trapped as mere consumers of other people&#x2019;s content. This has repercussions not only for accessibility and localization, but for our very freedom on the web.</blockquote><p>The phrase &#x201C;elegant consumption&#x201D; &#x2013; which we <a href="https://blog.dougbelshaw.com/beyond-elegant-consumption/">borrowed from Mitchell Baker</a> &#x2013; has stayed with me over the years as a useful name for a danger we face in digital culture. </p><p>Yes, delightful interfaces can help reduce confusion, ensure that interfaces allow us to do what we need to, and remove hassle. But the problem comes when systems as so <em>smooth</em> and controlled that we can&apos;t see <em>under the hood</em>. We don&apos;t get to understand how they work, and have no agency to alter them. It&apos;s easy, but it&apos;s also numbing and engenders passivity.</p><h2 id="is-it-friction-or-is-it-reflection">Is it friction? Or is it reflection?</h2><p>I&apos;m not the only person who thinks like this; designers have been grappling with this for <em>years</em>. For example, Chelsea Thrupp talks about <a href="https://uxdesign.cc/why-friction-is-not-the-enemy-of-good-ux-4dbdb042230b?ref=blog.dougbelshaw.com" rel="nofollow noopener">why friction is not the enemy of good UX</a>, giving the example of forcing users to perform extra steps when deleting prototypes or projects.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://blog.dougbelshaw.com/content/images/2026/04/1_a6rNStZocf7uR0MR9MhO-w.webp" class="kg-image" alt="How a little &#x201C;productive friction&#x201D; protects human agency" loading="lazy" width="1461" height="537" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/04/1_a6rNStZocf7uR0MR9MhO-w.webp 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/04/1_a6rNStZocf7uR0MR9MhO-w.webp 1000w, https://blog.dougbelshaw.com/content/images/2026/04/1_a6rNStZocf7uR0MR9MhO-w.webp 1461w" sizes="(min-width: 1200px) 1200px"><figcaption><span style="white-space: pre-wrap;">Examples from Chelsea Thrupp of productive friction in a couple of different apps</span></figcaption></figure><p>Stopping and <em>thinking</em> about what you&apos;re doing is fundamental to the human experience. It&apos;s the whole point of Tom and I using a cohort-based approach to the TechFreedom programme. But it&apos;s also the opposite of what Big Tech wants.</p><p>In an article entitled <a href="https://builtin.com/articles/friction-design?ref=blog.dougbelshaw.com">Frictionless UX Isn&#x2019;t Always Better</a>, Jeff Link cites some authoritative voices on the subject:</p><blockquote>&#x201C;I think about friction as pacing,&#x201D; said Antonio Garc&#xED;a, head of design at Table XI, a Chicago-based product innovation firm. &#x201C;And where it&#x2019;s appropriate to be intentional and deliberate in how someone moves through a digital experience.&#x201D;<br><br>&#x201C;Is it friction? Or is it reflection?&#x201D; asked Rosa Arriaga, an associate professor at&#xA0;Georgia Institute of Technology&#x2019;s School of Interactive Computing, who has applied psychological theories to examine how mobile technology can improve asthma and diabetes management.<br><br>&#x201C;Being reflective and reflecting on a given process necessarily leads to a better understanding,&#x201D; she continued. &#x201C;If we think about cognitive behavior therapy, the gold standard of mental health, there is an aspect of reflecting on what, at a very basic level, is stressing you out. And that, necessarily, means that you have to stop and think</blockquote><p>That question from Rosa Arriaga feels like the right one: <em>Is it friction? Or is it reflection?&#x201D;</em></p><p>If you want to go further down that rabbit hole, Michael Buckley&#x2019;s piece on <a href="https://uxdesign.cc/the-cognitive-cost-of-convenience-e97083ed09b5?ref=blog.dougbelshaw.com" rel="nofollow noopener">the cognitive cost of convenience</a> makes a similar case in UX terms, arguing that the pursuit of simplicity and friction reduction erodes understanding and autonomy.</p><h2 id="making-a-case-for-%E2%80%9Cproductive-friction%E2%80%9D">Making a case for &#x201C;productive friction&#x201D;</h2><p>Just as with my <a href="https://ambiguiti.es/?ref=blog.dougbelshaw.com" rel="noreferrer">work on ambiguity</a>, I&apos;ve found there are different <em>kinds</em> of friction. The best kind of friction is &#x201C;productive&#x201D;. That is to say, it <em>increases</em> human agency rather than diminishing it.  </p><p>To be clear, I&apos;m not arguing for bad design, clunky systems, or making life harder just for the sake of it. I&apos;m juts saying that there are certain kinds of ease which can leave us uncritical, and other kinds of effort which helps us become more capable.  </p><p>There&apos;s some research behind this as well. A 2025 study from the University of Twente on <a href="http://essay.utwente.nl/106866/?ref=blog.dougbelshaw.com" rel="nofollow noopener">the impact of friction on customers</a> compared low, moderate, and high-friction checkout flows. Low friction was described as &#x201C;smooth but shallow,&#x201D; high friction led to frustration and emotional decline, and <strong>moderate friction</strong> produced the most meaningful cognitive engagement and reflection. </p><p>&#x201C;Productive friction&#x201D; isn&apos;t my phrase. I came across it recently in an <a href="https://genio.co/blog/pedagogical-debt-ai-best-educators-friction-architects?ref=blog.dougbelshaw.com">article</a> about educators in the age of AI as <em>friction architects:</em></p><blockquote>Productive friction [...] can also be defined as the desirable difficulties; the mental hurdles where actual learning occurs.<br><br>- Synthetical struggle: The effort required to connect two opposing arguments found within a transcript.<br><br>- Active interrogation: Critiquing an AI-generated summary to identify nuances or hallucinations it might have missed<br><br>- Retrieval practice: The difficult, yet essential, work of recalling a concept from memory rather than relying on an instant AI prompt.<br><br>Unproductive friction drains a student&#x2019;s cognitive RAM, leading to burnout and disengagement. Productive friction is where the neural pathways of expertise are built. <br><br>[...]<br><br>A friction architect doesn&#x2019;t reject AI; they use it as a precision tool to clear the unproductive weeds so the student has the energy to tackle the productive heavy lifting.<br><br>Studies evaluating the impact of fully offloading tasks show significant negative consequences, with learning outcomes observed to be reduced by 22%.<br><br>Therefore, instead of asking, &quot;How do I stop my students from using AI?&quot; the friction architect asks: &quot;how can I use AI to offload the unproductive friction so I can demand more rigorous thinking?&quot;</blockquote><p>This links to something I&apos;ve been <a href="https://thoughtshrapnel.com/2026/04/18/the-ushaped-curve-of-cognitive.html?ref=blog.dougbelshaw.com">talking about recently</a> over on <em>Thought Shrapnel</em>. The chart below is a reinterpretation of one that Philippa Hardman discussed as showing how AI can be used well to increase learner capacities. </p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://blog.dougbelshaw.com/content/images/2026/04/cognitive-offloading-paradox.png" class="kg-image" alt="How a little &#x201C;productive friction&#x201D; protects human agency" loading="lazy" width="1440" height="997" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/04/cognitive-offloading-paradox.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/04/cognitive-offloading-paradox.png 1000w, https://blog.dougbelshaw.com/content/images/2026/04/cognitive-offloading-paradox.png 1440w" sizes="(min-width: 1200px) 1200px"></figure><p>So there is a sweet spot. Too much friction and people give up, but too <em>little</em> and they drift. Somewhere inbetween is a productive space where we remain awake and alive to what we&apos;re actually <em>doing</em>.</p><h2 id="literacy-and-agency">Literacy and agency</h2><p>If digital literacy, web literacy, or critical AI literacy mean <em>anything</em>, then it&apos;s that use is not fluency. The point is not to &#x201C;operate tools more efficiently&#x201D; but to notice structures, question defaults, and understand the incentives which prompt certain behaviours. We don&apos;t encourage and enable these kinds of capacities by perfectly <em>smooth</em> experiences.</p><p>Once you&apos;ve read this post, you&apos;ll start seeing elegant consumption everywhere: social platforms removing friction from sharing, liking, and scrolling (because speed serves their bottom line); one-click purchasing removing friction from buying (because conversion serves the business model); consent theatre removing friction by reducing the moments in which a person might stop and ask what is <em>actually going on</em>.</p><p>As one of our participants noted at the end of the TechFreedom session, they&apos;ve unquestioningly adopted the language of <em>marketers</em>. The need for a &#x201C;frictionless experience&#x201D; isn&apos;t language they would naturally use, but instead a phrase that they have been taught. </p><p>Sometimes the highest good is not an uninterrupted flow from intention to completion. Sometimes the more <em>human</em> outcome &#x2013; the one that promotes agency &#x2013; is the one that introduces a pause that&apos;s long enough to notice, judge, reconsider, and perhaps to <em>choose differently.</em></p><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Choosing partnership over "certainty theatre"]]></title><description><![CDATA[In warfare, when you know more than your enemy, it's called information asymmetry. The idea is that you want to have a tactical advantage over your adversary so that you can defeat them. I would hope that an agency-client relationship is fundamentally different to this.]]></description><link>https://blog.dougbelshaw.com/certainty-theatre/</link><guid isPermaLink="false">69e710c13b537900015a1207</guid><category><![CDATA[Consultancy]]></category><category><![CDATA[Clients]]></category><category><![CDATA[relationships]]></category><category><![CDATA[systems thinking]]></category><category><![CDATA[ambiguity]]></category><pubDate>Wed, 22 Apr 2026 07:05:31 GMT</pubDate><media:content medium="image" url="https://images.unsplash.com/photo-1730572359111-b3435964b9df?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI2MXx8Y2VydGFpbnR5JTIwdGhlYXRyZXxlbnwwfHx8fDE3NzY4MzY1NTR8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1730572359111-b3435964b9df?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDI2MXx8Y2VydGFpbnR5JTIwdGhlYXRyZXxlbnwwfHx8fDE3NzY4MzY1NTR8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000" alt="Choosing partnership over &quot;certainty theatre&quot;"><p>In warfare, when you know more than your enemy, it&apos;s called <em>information asymmetry</em>. The idea is that you want to have a tactical advantage over your adversary so that you can defeat them. I would hope that an agency-client relationship is fundamentally different to this.</p><p>Why, then, don&apos;t we <strong>admit</strong> when we <em>don&apos;t know things?</em></p><p>Whether it&apos;s the client who uses AI to create a confident-sounding brief (but doesn&apos;t fully understand all of the terms used in it), or the consultant/agency that promises everything will run smoothly according to their Gantt chart, I think we need to be a bit more honest with one another. </p><p>&#x201C;Certainty theatre&#x201D; is my way of giving a name to the pretence and performance that everyone knows exactly what&apos;s going on, is aware of everything that needs doing, and so let&apos;s just stop <em>wasting time</em> and get on with it. </p><p>The desire to avoid wasting money, protect reputations, and keep bosses and funders happy may be understandable, but it leads to over-confident briefs, shiny slide decks, and consultants/agencies promising that they fully understand what&apos;s required based on a couple of calls.</p><h2 id="performing-certainty">Performing certainty</h2><p>I had a great call with a potential client recently, where we had an honest conversation about what&apos;s required, resources available, and staff attitudes. It&apos;s the reason I&apos;m writing this post, as it was a breath of fresh air. </p><p>Instead of both sides <em>overselling</em> their experience and enthusiasm, there was a friendly but frank conversation about the state of their infrastructure, governance, and staff interest. That meant that I could talk about the importance of discovering what is required, to be under no pressure to over-promise, and to discuss risks upfront.</p><p>In my experience, when projects go badly, it&apos;s not usually because one side is lazy, incompetent, or greedy. It&apos;s usually because of a breakdown in communication &#x2013;  and that can start right at the beginning with the brief and the responses to it.   </p><h2 id="big-brands-big-disappointment">Big brands = big disappointment?</h2><p>There is an old phrase in tech that &#x201C;no one ever got fired for buying IBM&#x201D;. While this might not be true any more about that particular company, there remains the reassurance that a big name consultancy is a <em>safe option</em>.</p><p>Is it, though? Large consultancies have frameworks and cookie-cutter approaches that treat engagements as being largely similar. They&apos;re less likely to co-work with clients, and more likely to put them <em>through a process. </em>The eye-watering budget clients close their eyes and agree to is buying the time they spend creating the shiny slide decks and case studies with recognisable logos. They&apos;re literally paying for, and encouraging, the certainty theatre.</p><h2 id="lets-talk-about-ambiguity">Let&apos;s talk about ambiguity</h2><p>Ambiguity gets a bad rap. As I&apos;ve <a href="https://web.archive.org/web/20260211223240/https://blog.weareopen.coop/on-the-strategic-uses-of-ambiguity/" rel="noreferrer">discussed before</a>, there are strategic ways to use it and there are <em>productive</em> forms of ambiguity. As Yusuf Aytas <a href="https://yusufaytas.com/the-work-runs-on-different-maps?ref=blog.dougbelshaw.com">points out</a>, there are different &apos;maps&apos; in play within organisations:</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.dougbelshaw.com/content/images/2026/04/the-five-maps-behind-execution.jpg" class="kg-image" alt="Choosing partnership over &quot;certainty theatre&quot;" loading="lazy" width="1400" height="870" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/04/the-five-maps-behind-execution.jpg 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/04/the-five-maps-behind-execution.jpg 1000w, https://blog.dougbelshaw.com/content/images/2026/04/the-five-maps-behind-execution.jpg 1400w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Yusuf Aytas&apos; 5 maps behind execution</span></figcaption></figure><p>So an organisation simply putting out a brief and saying that they need a &#x201C;digital transformation&#x201D; consultant can mean <em>very</em> different things depending on the context. Where does the expertise actually sit within the organisation? How are decisions made? Who&apos;s remembering past scars? Who are the &#x201C;gophers&#x201D; getting things done and connecting teams?</p><p>A brief can look super-clear on one map, and be massively out of sync with others. This is why I talk about <em>sitting in ambiguity</em> for a while, rather than rushing to pretend that everything is aligned. </p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://blog.dougbelshaw.com/content/images/2026/04/Continuum-1200x730.png" class="kg-image" alt="Choosing partnership over &quot;certainty theatre&quot;" loading="lazy" width="1200" height="730" srcset="https://blog.dougbelshaw.com/content/images/size/w600/2026/04/Continuum-1200x730.png 600w, https://blog.dougbelshaw.com/content/images/size/w1000/2026/04/Continuum-1200x730.png 1000w, https://blog.dougbelshaw.com/content/images/2026/04/Continuum-1200x730.png 1200w" sizes="(min-width: 720px) 720px"><figcaption><span style="white-space: pre-wrap;">Continuum of ambiguity</span></figcaption></figure><p>In the above diagram, something being <em>vague</em> would be off to the left. Dead metaphors are the overly-specific, cookie-cutter frameworks that big consultancy firms implement. The real work happens in the middle, particularly around <em>productive ambiguity.</em> </p><p>Productive ambiguity says things like: &#x201C;We know we need to reach people who are currently excluded from our services, and we suspect digital could help, but we are not sure how yet.&#x201D; It provides a way to start providing the boundaries, identifying the stakeholders, and noticing the feedback loops that are the start of a <a href="https://sightlines.dynamicskillset.com/?ref=blog.dougbelshaw.com">systems thinking approach</a> to making positive change. </p><h2 id="partnership-over-performance">Partnership over performance</h2><p>When I work with organisations, I explain from the outset that the relationship is a partnership and collaboration. That often means replying to detailed briefs with a suggestion that we do some discovery work together before deciding the shape of the rest of the project. </p><p>It doesn&apos;t make much sense to write a plan for one, two, or three years&apos; worth of work from a distance, based just on what the organisation has told me. Along with whoever I&apos;m working with, we need to understand the <em>context</em>. We have to map stakeholders, perform user research interviews, surface the constraints, and then figure out and co-create realistic options. </p><p>Co-working is absolutely central to this. Sitting together, usually virtually, to go through findings and feedbacks, while sometimes &#x201C;messy&#x201D;, changes the dynamic. It&apos;s difficult to perform certainty when we are literally all looking at the ambiguity together. I find that people have quiet realisations that they didn&apos;t quite understand or realise as much as they thought they did. That&apos;s not to say they were bluffing, but that their mental model was perhaps a little outdate or misaligned. </p><p>This is true from both sides. The agency/consultant needs to be able to admit that they&apos;re not entirely sure what the best next step might be; that there might be several options, and each has risks. That&apos;s why a period of discovery is so important. Instead of jumping straight in and checking off tasks, it&apos;s worth taking a step back and ensuring we&apos;re using the right shared maps.</p><h2 id="how-to-avoid-certainty-theatre">How to avoid certainty theatre</h2><p>I wrote this post partly to give a name to something I see regularly, but also to give some advice to people inside organisations who might want to try and avoid it. The easiest thing to do is to start asking different questions of yourself, your colleagues, and potential partners.</p><h3 id="questions-to-ask-internally">Questions to ask internally</h3><ul><li>What are we <em>really</em> trying to change here?  </li><li>Where are we unsure, and how comfortable are we with that?  </li><li>What are we currently pretending is <em>certain</em>, just to make funders, trustees, or colleagues feel better?  </li><li>What time and attention can we <em>realistically</em> offer to co-working, testing, and learning over the next few months?</li><li>Which &#x201C;maps&#x201D; does this work run on here? <em>(e.g. who really holds the expertise, who really makes decisions, and what past project scars are we carrying into this?)</em>  
</li></ul><h3 id="questions-to-ask-agenciesconsultants">Questions to ask agencies/consultants</h3><ul><li>How would you structure an initial discovery phase if we agreed <em>not</em> to fix a two-year plan upfront?  </li><li>Can you tell us about a time when you told a client that you were unsure? What did you do next?  </li><li>What assumptions are you making about our staff capacity and internal skills? How would you test/audit those?  </li><li>How would your approach change if our context turns out to be messier than the brief suggests?  </li><li>What would you <em>not</em> promise to do at this stage, and why?  </li></ul><p>The purpose of these questions is not to eliminate uncertainty or banish ambiguity. That&apos;s not the point. Instead, the goal is to move from &#x201C;certainty theatre&#x201D; to something closer to the kind of <em>rigour</em> you get from putting relationships first, from getting both clarity and confidence through partnership.</p><p>If this sounds like the kind of approach you&apos;re interested in, <a href="https://dynamicskillset.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Dynamic Skillset</a> is open for business. And I&apos;m just as happy helping you figure out how to do the meta-work of getting partnerships and collaborations right as I am doing the project work itself.</p><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item><item><title><![CDATA[Turning polygonal badges into contours of practice]]></title><description><![CDATA[Expanding on my post about badges to show skills development with a tool that does just that.]]></description><link>https://blog.dougbelshaw.com/contours-of-practice/</link><guid isPermaLink="false">69e5e18f3b537900015a10e6</guid><category><![CDATA[Open Badges]]></category><category><![CDATA[Open Recognition]]></category><category><![CDATA[skills]]></category><pubDate>Mon, 20 Apr 2026 08:33:18 GMT</pubDate><media:content medium="image" url="https://blog.dougbelshaw.com/content/images/2026/04/contours-overview.gif"/><content:encoded><![CDATA[<img src="https://blog.dougbelshaw.com/content/images/2026/04/contours-overview.gif" alt="Turning polygonal badges into contours of practice"><p>A few weeks ago, I <a href="https://blog.dougbelshaw.com/polygonal-badges/">shared a post</a> in which I suggested that badges-as-radar-plots could change shape as someone&apos;s skills develop. A bit like a mini e-portfolio, rather than a single snapshot image. </p><p>That post got a lot of interest, so I&apos;ve been experimenting with a tool, which I initially based on <a href="https://blog.dougbelshaw.com/badge-studio-is-back/">Badge Studio</a>, to take things a step further. </p><p>The result is <a href="https://contours.dynamicskillset.com/?ref=blog.dougbelshaw.com" rel="noreferrer">Contours</a>, a usable work in progress that provides an easy way to turn data into a layered, topographic-style view of a learner&#x2019;s skills progression over time. The example uses the <a href="https://joint-research-centre.ec.europa.eu/projects-and-activities/education-and-training/digital-transformation-education/digital-competence-framework-digcomp_en?ref=blog.dougbelshaw.com">DigComp 3.0 framework</a> but you can define the axes and values yourself. The tool draws contour lines that, as you can see in the gif at the top of the post, can show things like an initial, midpoint, and and endpoint assessment on the same badge image.</p><p>Although the Open Badges v3.0 standard doesn&apos;t <em>require</em> an image, I still think it&apos;s usually a good idea to include one. And the good thing about this version of the standard is that the evidence of progression is baked into the underlying metadata, not just into the graphic itself. </p><p>As you can see from the version number (v0.12) this is very much an early experiment rather than a polished product. So it&apos;s a good playground for people exploring different ways of showing progression to try something different.</p><p>You can try Contours at <a href="https://contours.dynamicskillset.com/?ref=blog.dougbelshaw.com">contours.dynamicskillset.com</a> and, as it&apos;s Open Source, you can install or adapt it yourself with the code living at <a href="https://framagit.org/dynamicskillset/contours?ref=blog.dougbelshaw.com" rel="noreferrer">framagit.org/dynamicskillset/contours</a>.</p><p>If you <em>do</em> give Contours a go, I&apos;d love to hear how you found it. What kinds of use cases can you imagine it being useful for? Which direction would you be interested in taking it next?</p><div class="kg-card kg-signup-card kg-width-wide " data-lexical-signup-form style="background-color: #F0F0F0; display: none;">
            
            <div class="kg-signup-card-content">
                
                <div class="kg-signup-card-text ">
                    <h2 class="kg-signup-card-heading" style="color: #000000;"><span style="white-space: pre-wrap;">Open Thinkering</span></h2>
                    <p class="kg-signup-card-subheading" style="color: #000000;"><span style="white-space: pre-wrap;">Notes on how we live, learn, and work with technology</span></p>
                    
        <form class="kg-signup-card-form" data-members-form="signup">
            
            <div class="kg-signup-card-fields">
                <input class="kg-signup-card-input" id="email" data-members-email type="email" required="true" placeholder="Your email">
                <button class="kg-signup-card-button kg-style-accent" style="color: #FFFFFF;" type="submit">
                    <span class="kg-signup-card-button-default">Subscribe</span>
                    <span class="kg-signup-card-button-loading"><svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewbox="0 0 24 24">
        <g stroke-linecap="round" stroke-width="2" fill="currentColor" stroke="none" stroke-linejoin="round" class="nc-icon-wrapper">
            <g class="nc-loop-dots-4-24-icon-o">
                <circle cx="4" cy="12" r="3"/>
                <circle cx="12" cy="12" r="3"/>
                <circle cx="20" cy="12" r="3"/>
            </g>
            <style data-cap="butt">
                .nc-loop-dots-4-24-icon-o{--animation-duration:0.8s}
                .nc-loop-dots-4-24-icon-o *{opacity:.4;transform:scale(.75);animation:nc-loop-dots-4-anim var(--animation-duration) infinite}
                .nc-loop-dots-4-24-icon-o :nth-child(1){transform-origin:4px 12px;animation-delay:-.3s;animation-delay:calc(var(--animation-duration)/-2.666)}
                .nc-loop-dots-4-24-icon-o :nth-child(2){transform-origin:12px 12px;animation-delay:-.15s;animation-delay:calc(var(--animation-duration)/-5.333)}
                .nc-loop-dots-4-24-icon-o :nth-child(3){transform-origin:20px 12px}
                @keyframes nc-loop-dots-4-anim{0%,100%{opacity:.4;transform:scale(.75)}50%{opacity:1;transform:scale(1)}}
            </style>
        </g>
    </svg></span>
                </button>
            </div>
            <div class="kg-signup-card-success" style="color: #000000;">
                Email sent! Check your inbox to complete your signup.
            </div>
            <div class="kg-signup-card-error" style="color: #000000;" data-members-error></div>
        </form>
        
                    <p class="kg-signup-card-disclaimer" style="color: #000000;"><span style="white-space: pre-wrap;">No spam. Unsubscribe anytime.</span></p>
                </div>
            </div>
        </div>]]></content:encoded><dc:creator>Doug Belshaw</dc:creator></item></channel></rss>