<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/home/static/styles/pretty-feed-v3.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Interconnected</title>
    <link>https://interconnected.org/home</link>
    <description>A blog by Matt Webb. My notebook and space for thinking out loud since February 2000.</description>
    <copyright>Copyright © 2026 Matt Webb</copyright>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <language>en</language>
    <lastBuildDate>Thu, 21 May 2026 13:24:29 +0000</lastBuildDate>
    <pubDate>Wed, 20 May 2026 14:14:00 +0000</pubDate>
    <item>
      <title>Resident: vibe coding firmware (our new sandbox library for ESP32 devices)</title>
      <link>https://interconnected.org/home/2026/05/20/resident</link>
      <description><![CDATA[<div>
<p>We’re open sourcing Resident, our library for running AI-authored code on microcontrollers – with no compile step and no firmware flashing.</p>
<p>It’s our twist on vibe coding firmware, built for instantly loading new device functionality coded by end users. It’s aimed at device developers, like us. We use Resident in all our work.</p>
<p><em>(We = Inanimate.)</em></p>
<p><a href="https://resident.inanimate.tech">Resident</a> gives you a code sandbox on ESP32 devices and a driver API to provide hardware control and events. So an end user can push an app over Wi-Fi that instantly turns their clock into an interactive pill timer (for example) but the app can’t run probes on the home Wi-Fi network.</p>
<p>It comes bundled with a set of Claude skills. I told Claude about the capabilities of a compatible dev kit and asked it to push a simple app. Here it is:</p>
<p><img alt="" src="https://interconnected.org/more/2026/05/hello-resident.jpg" /></p>
<p>At Inanimate, we believe that on-device sandboxes are an essential low-level primitive for AI agents in the real world.</p>
<p>The announcement is <a href="https://news.inanimate.tech/p/lab-notes-drum-loops-prototyped-as-oranges">over on Lab Notes</a> but I want to take a moment to connect this to some previous themes…</p>
<hr />
<p>Look, I want to bring software into my room.</p>
<p>Like: if I’m working with Claude Code and I step away from my keyboard, it should be able to give me updates on what it’s working on by taking over my desk clock, and ping its permission requests to the gumstick device I have in my pocket for me to accept/decline while I’m making tea. Untether me from my desk! <em>(btw I built this, it was awesome.)</em></p>
<p>Or - more prosaically - why can’t I yell at my stove as I’m leaving the house in the morning <em>oh I forgot I’m roasting a chicken that needs to be ready for 7pm</em> and have it look up timings and push me a notification when it’s pre-heating, and show a custom basting timer app on its 14-seg LED display.</p>
<p><em>"Why can’t I point at a lamp and say ‘on’ and the light come on?"</em> – <a href="https://interconnected.org/home/2020/05/26/voice">I was asking in 2020</a>.</p>
<p>So half of the solution here is AI: LLMs are super good at translating intent into action. I use regular language and the computer will <a href="https://interconnected.org/home/2025/08/29/dwim">Do What I Mean</a> (2025).</p>
<p>But the other half is a problem: how does this actually work? Where does the software run?</p>
<hr />
<p>Every device needs to be able to run user code, that’s the answer.</p>
<p>I’ve been bouncing off this since 2023 <a href="https://interconnected.org/home/2023/04/26/lares">when I put an LLM in charge of a smart home</a> (using tech that we now call agents, but then was my implementation of the ReAct pattern from a paper out of Princeton and Google Research).</p>
<p>In a nutshell, let’s say you press a button on your desk clock and your AI agent has to decide in the moment what to do with that. It won’t work, it’s too slow. Cognitively, an interface has to respond inside 150ms or it is no longer instant – but the AI is a network hop away.</p>
<p>Ok so let’s remove the network hop. Let’s pretend we have edge AI: a GPT-4-equiv AI as a component in every physical thing; ubiquitous intelligence is coming and <em>"a Feynmann-level light switch could guess your intentions pretty well,"</em> <a href="https://interconnected.org/home/2023/10/06/ubigpt">that was was my guess in 2023</a>.</p>
<p>It’s not an outrageous extrapolation! <a href="https://taalas.com/products/">Taalas</a> is baking LLMs into silicon and delivers <em>"17k tokens per second per user on Llama 3.1 8B"</em> (<a href="https://chatjimmy.ai">try it here</a>, e.g. 4,000 words on Hamlet as a space opera, it’s wild it’s so instant). So GPT-4-equiv is a matter of time.</p>
<p><em>Even</em> with that speed, it turns that inference is not enough. To <em>Do What I Mean,</em> you still need to import user context for personalisation and grounding. But memory, Gmail, Wikipedia and the rest are still mostly in the cloud. That network hop again.</p>
<p>So AI can’t be inside the event loop, not if you want really great on-device interactions.</p>
<p>Instead – let the AI write device code. That’s the approach we’ve found.</p>
<p>Take that toy example of a roast chicken basting timer on the display of my stove. My AI agent should be able to dynamically write code for that interactive app, and have that app code executed on the stove itself.</p>
<p>I’m not saying that the AI needs to vibe-code firmware.</p>
<p>Firmware is the code that runs on device microcontrollers: you author it and compile it and you flash it and from that point on, it never changes. AI agents <em>can</em> vibe firmware (very happily). But I’m not sure I want to load code onto my stove that has boundless control over the heating element and the network stack and whatever other low-level capabilities are managed by the firmware itself. We’ve already had <a href="https://www.bbc.co.uk/news/technology-25780908">smart fridges sending spam email</a> (BBC News, 2014), no more thanks.</p>
<hr />
<p>Instead of firmware, the AI can run code in <em>sandboxes.</em></p>
<p>Cloudflare made the case for sandboxes in March this year <a href="https://blog.cloudflare.com/dynamic-workers/">when they introduced dynamic workers</a>:</p>
<blockquote>
<p>Last September we introduced Code Mode, the idea that <u>agents should perform tasks not by making tool calls, but instead by writing code</u> …</p>
<p>You can’t just <code>eval()</code> AI-generated code directly in your app: a malicious user could trivially prompt the AI to inject vulnerabilities.</p>
<p><u>You need a sandbox: a place to execute code that is isolated from your application and from the rest of the world, except for the specific capabilities the code is meant to access.</u></p>
<p>Sandboxing is a hot topic in the AI industry …</p>
</blockquote>
<p>We asked ourselves:</p>
<p><strong>What if, when we allow an AI agent to spread its arms and stretch its legs in a room, it could inhabit devices by writing code that runs in an on-device sandbox, a sandbox that gives access to buttons and screens but not the network stack, and the app code could load and run instantly?</strong></p>
<p>That’s Resident. It provides a code sandbox for ESP32 devices, and a toolchain for AI agents to write apps that target that sandbox.</p>
<p>At Inanimate, we use Resident for all our product prototyping.</p>
<p>And it will be at the heart of our future products.</p>
<p>Look, it may seem wildly disproportionate to write code to turn on a lamp.</p>
<p>But what are computers for? They do the hard work to make it easy for us. So this approach scales well from basic on/off control to… well, it turns out that, now we have this sandbox, we can compose all kinds of useful experiences that take over an entire room – and also weird and wonderful interactive ones that still work when you pull the network cable.</p>
<p>(An app arrives over the network but then the network is no longer required. Resident is built on our messaging library <a href="https://github.com/inanimate-tech/courier">Courier</a> which includes UDP multicast for local inter-device messaging even when internet connectivity drops.)</p>
<hr />
<p>We’re opening Resident today as an alpha (v0.5.0) and open sourcing it under the highly permissive MIT license. Just include our copyright notice with any modifications.</p>
<p>Technically, we’re adding a Lua runtime to your ESP32 device. (Lua is a language designed to be embedded.) </p>
<p>We love Espressif’s ESP32 microcontroller family because it has a unique span in the ecosystem: it is used by individual makers, new hardware startups, and in production at real scale. It has built-in Wi-Fi and supports its native framework esp-idf and Arduino too, which is great for quick prototyping.</p>
<p>Resident gives you an API to add extensions to that Lua runtime: hardware drivers. Those managed capabilities are what makes it a sandbox. So the apps in the sandbox can respond to events that your button driver injects, and they can write to the display via a module added by your display driver.</p>
<p>The apps can be hot loaded at runtime. The way we have it wired up, you push app code down a websocket to the device and it run immediately in the sandbox.</p>
<p>Adding Resident is straightforward during development: bring up your new device as normal, then point your coding agent at <code>docs/start-building.md</code>. It’ll walk you through adding the sandbox and writing the drivers.</p>
<p>Resident comes bundled with:</p>
<ul>
<li>Connectivity: websockets, JSON messaging, and easy Wi-Fi config</li>
<li>A default back-end server at <code>resident.inanimate.tech</code> so you can easily push new apps and events – use the example code to build out your own back-end when you’re ready</li>
<li>A collection of Claude skills to create, validate and push new apps to your devices (and even write device documentation)</li>
<li>Example projects.</li>
</ul>
<hr />
<p>Want to try Resident now?</p>
<p>Ahead of developing your new device, pick up an <a href="https://docs.m5stack.com/en/core/StickS3">M5StickS3</a>. These are made by M5, I talked about them <a href="https://interconnected.org/home/2026/04/21/courier">when we announced Courier</a>.</p>
<p>The M5Stick is a dev kit that has an ESP32 with a screen, battery, couple of buttons, buzzer and IMU. You can bring it up using Arduino pretty simply. Then add Resident and start writing apps. <a href="https://github.com/inanimate-tech/resident/tree/main/examples/m5stick-demo">We have an example project</a>.</p>
<p>Want to get going even faster?</p>
<p>You don’t even need hardware…</p>
<p>The <a href="https://resident.inanimate.tech/#try-it-now">Try it now</a> section of the Resident homepage has a M5Stick simulator, running the Resident sandbox in-browser.</p>
<p>Drag and drop an app onto the simulator to see it run.</p>
<p>Or even: install the Claude skills, tap the button on the webpage to make the simulator live, and create apps from your local Claude Code session. The in-browser simulator will update live and run your app.</p>
<p><img alt="" src="https://interconnected.org/more/2026/05/resident-simulator.gif" /></p>
<p>Hey, deep cut reference alert:</p>
<p>Back in 2021 I went on a dive into <em>files:</em> <a href="https://interconnected.org/home/2021/02/01/golems">Golems, smart objects, and the file metaphor</a>.</p>
<p>What would it mean to drag and drop a file onto a lightbulb? I asked. <em>"Do I literally mean that the lightbulb needs a little slot like the golem’s mouth, into which you insert your instructions stamped on microfiche?"</em></p>
<p>This is my answer haha</p>
<hr />
<p>Resident is what we’ve been using to prototype products and use cases at Inanimate.</p>
<p>We believe that one day all products will work this way.</p>
<p>For more info, the GitHub, and to try it now: <a href="https://resident.inanimate.tech">Resident</a>.</p>
<p>For updates: <a href="https://news.inanimate.tech">subscribe to Lab Notes</a>.</p>

  <hr />


	<p><small>More posts tagged:
	
	<a href="https://interconnected.org/home/tagged/inanimate">inanimate</a>
	(6).
	
	</small></p>


</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/05/20/resident</guid>
      <pubDate>Wed, 20 May 2026 14:14:00 +0000</pubDate>
    </item>
    <item>
      <title>Filtered for bad addresses and good emotions</title>
      <link>https://interconnected.org/home/2026/05/15/filtered</link>
      <description><![CDATA[<div>
<h3>1.</h3>
<p>I love this terrible fake address generator:</p>
<blockquote>
<p>We have spent 3 years collecting data from every country to generate this enormous database.</p>
</blockquote>
<p>…it promises.</p>
<p>These are not English addresses:</p>
<p><em>"2 Scott Common Jenniferstad S60 2PT"</em></p>
<p><em>"4 Matilda Via North Emilychester M20 1BT"</em></p>
<p><em>"Flat 48v Harrison Motorway Lake Gary EH4 5LQ"</em></p>
<p>Good story: <a href="https://johnfinnemore.blogspot.com/2025/10/inside-number-0.html">Inside Number 0</a>, John Finnemore.</p>
<h3>2.</h3>
<p><a href="https://chestofbooks.com/fairy-tale/Kentucky-Superstitions/index.html">Kentucky Superstitions</a> (1920) by Daniel Lindsey Thomas and Lucy Blayney Thomas:</p>
<p>Some household and domestic life superstitions, from <a href="https://chestofbooks.com/fairy-tale/Kentucky-Superstitions/Household-And-Domestic-Life-Superstitions-Part-4.html">part 4</a>:</p>
<ul>
<li><em>"An accidental dropping of a knife brings a woman caller."</em></li>
</ul>
<p>(My nan would always say it would be a man caller, to the point that if I drop a knife I reflexively say <em>“man coming”</em> to this day.)</p>
<ul>
<li><em>"If you spill salt on the table, you will get a scolding before Friday."</em></li>
<li><em>"If you burn salt on the stove or in the grate, you will have to pick each grain out of fire in hell."</em></li>
</ul>
<p>Salt matters eh.</p>
<p><a href="https://chestofbooks.com/fairy-tale/Kentucky-Superstitions/Household-And-Domestic-Life-Superstitions-Part-3.html">Part 3</a>:</p>
<p>Some of these I recognise…</p>
<ul>
<li><em>"If you raise an umbrella in the house, you will have bad luck."</em></li>
</ul>
<p>Some are new to me:</p>
<ul>
<li><em>"If you whistle in bed, you will cry before you retire again."</em></li>
</ul>
<p>Some are quite good, so have a read. (Some are horrifically racist.)</p>
<h3>3.</h3>
<p>A psychology paper from 2019 categorises 28 enjoyable emotions:</p>
<blockquote>
<p>The families of discrete enjoyable emotions, many proposed for the first time, are as follows: (1) Self-praising emotions (authentic pride, fiero, naches, feeling respected), (2) other-praising emotions (admiration, elevation, gratitude, inspiration), (3) past-oriented emotions (forgiveness, nostalgia, relief), (4) future-oriented emotions (anticipatory enthusiasm, courage, determination, hope), (5) hazardous emotions (lust, schadenfreude, hubristic pride), (6) affectionate emotions (love, attachment love, tenderness, positive empathy), (7) arousal-defined emotions (euphoria, serenity), (8) violation-elicited emotions (amusement, awe, curiosity, positive surprise).</p>
</blockquote>
<p>Graham, L. E., Thomson, A. L., Nakamura, J., Brandt, I. A., &amp; Siegel, J. T. (2019). <a href="https://www.tandfonline.com/doi/full/10.1080/17439760.2017.1402074">Finding a family: A categorization of enjoyable emotions.</a> <em>The Journal of Positive Psychology, 14</em>(2), 206-229.</p>
<p>I made a note of this at the time because <a href="https://x.com/tomstafford/status/935239627283288064">Tom Stafford tweeted</a>:</p>
<p><em>"Want to be a scientist? It helps if your personality loads heavily on the ‘violation-elicited’ and ‘future-orientated’ emotions"</em></p>
<p>(I am feeling seen rn)</p>
<p>Forget all the political compasses and Myer-Briggs stuff. I want to know which of these 8 emotional families I chase more than other people.</p>
<h3>4.</h3>
<p><a href="https://makezine.com/projects/yellow-drum-machine/">Yellow Drum Machine</a> <em>(Make: magazine)</em> is a cute robot that drives around your house and plays the drums on whatever it bumps into.</p>
<p>Give yourself a treat and watch the video.</p>

  <hr />


	<p><small>More posts tagged:
	
	<a href="https://interconnected.org/home/tagged/filtered-for">filtered-for</a>
	(123).
	
	</small></p>


</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/05/15/filtered</guid>
      <pubDate>Fri, 15 May 2026 19:10:00 +0000</pubDate>
    </item>
    <item>
      <title>I want my MTV</title>
      <link>https://interconnected.org/home/2026/05/08/mtv</link>
      <description><![CDATA[<div>
<p>You know when I’m home on my own I don’t watch much TV like actual TV, but I do watch music videos on YouTube on the TV.</p>
<p>Sometimes new music but often ones I know really well. Music videos are such a vibe.</p>
<p>And it’s social too? I’ve spent many evenings with friends that just turn into swapping music vids on the big screen.</p>
<hr />
<p>I seem to listen to music only while doing something else, e.g.:</p>
<ul>
<li>while watching music videos, as above</li>
<li>while running</li>
<li>while playing Grand Theft Auto and actually that was the majority component of my enjoyment of GTA5 back in the day: beating someone up and nicking their car, tuning the radio station to something good, then chilling driving the hills of Los Santos listening to the tunes (GTA5 has excellent playlists) watching the sunsets (GTA5 has excellent sunsets).</li>
</ul>
<p>Incidentally GTA6 is coming out in November and apparently it cost $1 billion to make.</p>
<p>Gonna play the heck out of it not just for the music but because of its status as a cultural artefact: the final big game built before LLMs.</p>
<p>No-one will ever invest that much in a game again, no software will ever encode this quantity of hands-on human labour again. The last of the great pyramids.</p>
<p>You think any studio will ever again spend years recording human-authored dialogue from human voice actors for NPCs in story branches that the player may encounter? No way. As much as I am looking forward to playing the first AAA title that does something unique and infinite with AI, we are at the end of an era.</p>
<hr />
<p>Anyway so music videos.</p>
<p>I’m an Apple Music subscriber. They know what I like and also the old tracks I go back to.</p>
<p>Apple TV should have a special channel that connects to my Apple Music and streams music videos for this week’s Essentials or New Music playlists.</p>
<p>A mix of whatever’s new and sometimes <a href="https://www.youtube.com/watch?v=W8r-tXRLazs">Video Killed the Radio Star</a> too.</p>
<p>YouTube could do this in a second, they have all the content. Just a big button that explicitly constrains the auto-play to music only, that would do it.</p>
<p>But they are weirdly against building around specific use cases: I would love them to do something around ambient live streams (<a href="https://interconnected.org/home/2023/05/26/windows">as previously requested</a>) and it feels like a missed opportunity.</p>
<p>So this is a freebie for Apple instead. Call it music television or MTV for short, I think it could catch on.</p>



</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/05/08/mtv</guid>
      <pubDate>Fri, 08 May 2026 02:51:00 +0000</pubDate>
    </item>
    <item>
      <title>We need RSS for sharing abundant vibe-coded apps</title>
      <link>https://interconnected.org/home/2026/04/29/syndicating-vibes</link>
      <description><![CDATA[<div>
<p>Now we have abundant apps, we’ve hit a ceiling in good ways to track and share them.</p>
<p>For example, <a href="https://tools.simonwillison.net">Simon Willison’s personal tools</a>: <em>"Miscellaneous HTML+JavaScript tools built mostly with the help of LLMs."</em></p>
<p>Willison lists 80+ useful tools and the search box can see 205. That’s a lot!</p>
<p>He has hyper-specific tools like one to track daylight savings changes in California, personal software to help build his newsletter from his blog, and a tool to edit using Strunk &amp; White’s principle to <a href="https://tools.simonwillison.net/omit-needless-words">omit needless words</a>. (What’s especially neat is Willison shares the <a href="https://tools.simonwillison.net/colophon#omit-needless-words.html">prompts and chat history behind each tool</a>.)</p>
<p>I keep a note when I see people sharing abundant apps.</p>
<ul>
<li><a href="https://blog.gingerbeardman.com/2026/04/17/today-i-shipped-twenty-apps-and-a-screensaver/">Matt Sephton shipped 20 macOS apps in a day</a>. Everything from a sound effects generator to perspective correction to a language translator with a beautiful interaction: hit cmd-C to copy twice to auto-translate any text. </li>
<li><a href="https://tools.jamesking.io">tools.jamesking.io</a> – designer James King shares personal web-based tools such as his bookmarked fonts and a custom editor to product his podcast.</li>
<li><a href="https://brittcrawford.com/projects/">Britt Crawford’s Home Cooked Software</a> – including an app to turn any web page into a podcast episode and omg I love Log Weight: <em>"Shout at your phone while you’re on the scale and log your weight in Apple Health."</em></li>
</ul>
<p>And then there are…</p>
<ul>
<li>The untracked apps that fly by on X and blogs. Among these I’ll count my own collaborative Markdown editor <a href="https://mist.inanimate.tech">mist</a> and even <em>Galactic Compass</em> which <a href="https://interconnected.org/home/2024/02/15/galactic-compass">I wouldn’t have written without ChatGPT</a>. Where are these listed? Nowhere.</li>
<li>The personal toolkits of Claude skills and workflows that many of us are building up. <a href="https://x.com/mappletons/status/2048789569189957840">How do we manage our agent SKILL.md files? Is it just chaos?</a> asks Maggie Appleton on X. There’s a corporate side to this too: I’d love to know when <a href="https://github.com/cloudflare/skills">Cloudflare adds more skills to their plugin</a> or when <a href="https://interconnected.org/home/2026/04/18/headless">headless CLI tools</a> grow more features.</li>
<li>The streams of apps vibed on platforms like Lovable and Replit – or on the more personal, situated end of the spectrum: <a href="https://nothing.community/d/52739-essential-apps-enters-beta">Essential Apps by Nothing</a> for their Android phones, or <a href="https://www.raycast.com/blog/introducing-glaze">Raycast Glaze</a> for macOS, or <a href="https://dreamer.com">Dreamer</a> where you can see some examples of web-based agentic apps but can’t build your own because they were live for a month before being snaffled up by Meta.</li>
</ul>
<p>This is not even counting the almost-ephemeral prompts to CLI tools like <a href="https://llm.datasette.io/en/stable/">llm</a> that live only in my terminal history.</p>
<p>So many apps!</p>
<hr />
<p>Not all of these apps are vibe-coded. I don’t think the distinction matters. We’re at a new time of abundance, creativity and personal software and I want ways to keep up with the latest.</p>
<hr />
<p>BUT.</p>
<p>How do I keep a list of the apps I use regularly so I can come back to them?</p>
<p>How do I discover new apps? Let’s say I like a tool by Simon, how do I follow him to see what he comes up with next?</p>
<p>What if Simon improves a tool? How would I know? (And conversely, what if someone makes a malicious update?)</p>
<p>How do I share my recommendations? And make them relevant to the platforms you use – iOS if you’re on iOS, ESP32 if you’re on that and so on.</p>
<p>This was one of my two questions about micro-apps before: <a href="https://interconnected.org/home/2024/08/09/no-apps-no-masters">No apps no masters</a> (2024):</p>
<blockquote>
<p>If the future is ephemeral AI-created micro apps, then what’s on my home screen?</p>
</blockquote>
<hr />
<p>Could we have RSS for vibe-coded apps?</p>
<p>I would love an RSS web feed for all those various tools and apps pages, each item with an “Install” button. (But install to where?)</p>
<p>The lesson here is that when vibe-coding accelerates app development, apps become more personal, more situated, and more frequent. Shipping a tool or a micro-app is less like launching a website and more like posting on a blog.</p>
<p>Posting on a blog is what RSS was made for. You use RSS to subscribe to blogs to keep up with the latest content. (<a href="https://aboutfeeds.com">What is RSS?</a>)</p>
<p>When I say that maybe we should have RSS for all these apps, what I really mean is the whole ecosystem that flourished back when blogs were young…</p>
<ul>
<li>Websites for identity – I want more from this person or this project!</li>
<li>RSS to subscribe – get the latest</li>
<li>Newsreaders – to aggregate all my sources</li>
<li>Social sharing – sites like <strong>del.icio.us</strong> (if you remember that) to share the best of your discoveries and discover more recommendations, a purer ProductHunt</li>
<li>Search – via Google and Technorati</li>
</ul>
<p>And tags and all the rest…</p>
<p>The beauty of RSS is that it was used as a simple interop layer: yes there was RSS for blogs. But also there are reverse chronological feeds on all kinds of sites: the New York Times, photo sharing on Flickr, your latest Github stars. And all of those would expose RSS feeds too, so you could subscribe a little like choosing what notifications you allow onto your home screen.</p>
<p>Now the challenge of sharing micro-apps does not exactly map to RSS and web feeds. It’s less about time for one, and apps develop over time, and platforms really matter. But it’s close enough for jazz.</p>
<hr />
<p>In the spirit of <a href="https://interconnected.org/home/2023/05/19/protocols">protocol fiction</a> it would be fun (or at least illuminating) to sketch out an RSS-like format that would be trivially adopted by everyone from Simon Willison’s tools page to my personal Claude plugin (which is a hodge-podge toolbox where I collect useful skills) to the templates at Lovable.</p>
<p>If you do this:</p>
<ul>
<li>Please don’t create a registry that people have to submit their micro-apps to. A file in plain text on their server will do.</li>
<li>Make it work for all the examples I pointed at above.</li>
<li>Don’t insist on open source or prompt sharing or 100% vibe coded; allow it to work for macOS binaries with a link to the Mac App Store, web-based tools that can be run instantly, and proprietary vibe coded widgets that only work in certain platforms. Scale all the way down to people just sharing prompts.</li>
<li>Imagine you are plumbing a future vibrant ecosystem of services for discovery, managing, recommendations, and all the rest. Make it distributed.</li>
<li>Think about what’s <em>different</em> from RSS for blog posts: do we need identity and versions and the ability for people to fork and modify apps?</li>
</ul>
<p>Above all read Dave Winer’s <a href="http://scripting.com/2017/05/09/rulesForStandardsmakers.html">Rules for standards-makers</a> – the distillation of how to invent and popularise a protocol for interop from the person who created both RSS and podcasting.</p>
<p>Let me know if you make this. I’d like to use it.</p>

  <hr />



  <p><small>Auto-detected kinda similar posts:</small></p>
  <ul>
  
  <li><small><a href="https://interconnected.org/home/2020/06/18/personal_software">Personal software vs factory-produced software</a>
  (18 Jun 2020)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2020/11/20/social_os">Multiplayer docs, webcam fashion, noisy icons: three ideas</a>
  (20 Nov 2020)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2020/07/29/improving_rss">How would I improve RSS? Three ideas</a>
  (29 Jul 2020)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2022/11/22/crabs">The gift of virtual crabs is a signpost to the future of tradable app features</a>
  (22 Nov 2022)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2024/10/28/colophon">Colophon</a>
  (28 Oct 2024)</small></li>
  
  </ul>

</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/04/29/syndicating-vibes</guid>
      <pubDate>Wed, 29 Apr 2026 17:58:00 +0000</pubDate>
    </item>
    <item>
      <title>The Wind in the Willows and reading out loud</title>
      <link>https://interconnected.org/home/2026/04/24/willows</link>
      <description><![CDATA[<div>
<p><a href="https://en.wikipedia.org/wiki/The_Wind_in_the_Willows">The Wind in the Willows</a> right? Kenneth Grahame, 1908.</p>
<p>We all know the children’s story inside-out. Mole and Ratty and gruff Badger and conceited Mr Toad with his motorcars and all their adventures.</p>
<p>I picked up the book as an adult - I can’t remember why - and it wasn’t what I expected.</p>
<p>This week I have been reading it again and it is again astonishing.</p>
<p>I mean… let me share some of the prose with you.</p>
<p>This is when Mole encounters the river for the first time.</p>
<blockquote>
<p>Green turf sloped down to either edge, brown snaky tree-roots gleamed below the surface of the quiet water, while ahead of them the silvery shoulder and foamy tumble of a weir, arm-in-arm with a restless dripping mill-wheel, that held up in its turn a grey-gabled mill-house, filled the air with a soothing murmur of sound, dull and smothery, yet with little clear voices speaking up cheerfully out of it at intervals. It was so very beautiful that the Mole could only hold up both forepaws and gasp, “O my! O my! O my!”</p>
</blockquote>
<p>There’s a chapter where they’re looking back on the summer just gone, and a description of the plant-life soars:</p>
<blockquote>
<p>The pageant of the river bank had marched steadily along, unfolding itself in scene-pictures that succeeded each other in stately procession. Purple loosestrife arrived early, shaking luxuriant tangled locks along the edge of the mirror whence its own face laughed back at it. Willow-herb, tender and wistful, like a pink sunset cloud, was not slow to follow. Comfrey, the purple hand-in-hand with the white, crept forth to take its place in the line; and at last one morning the diffident and delaying dog-rose stepped delicately on the stage, and one knew, as if string-music had announced it in stately chords that strayed into a gavotte, that June at last was here. One member of the company was still awaited; the shepherd-boy for the nymphs to woo, the knight for whom the ladies waited at the window, the prince that was to kiss the sleeping summer back to life and love. But when meadow-sweet, debonair and odorous in amber jerkin, moved graciously to his place in the group, then the play was ready to begin.</p>
</blockquote>
<p>They go out in the boat at night looking for a lost young otter. (A whole other story but they encounter the divine spirit Pan who intercedes with a miracle and then wipes their memories lest they suffer the rest of their lives in the shadow of that awe.)</p>
<p>A description of moonlight:</p>
<blockquote>
<p>The line of the horizon was clear and hard against the sky, and in one particular quarter it showed black against a silvery climbing phosphorescence that grew and grew. At last, over the rim of the waiting earth the moon lifted with slow majesty till it swung clear of the horizon and rode off, free of moorings; and once more they began to see surfaces-meadows wide-spread, and quiet gardens, and the river itself from bank to bank, all softly disclosed, all washed clean of mystery and terror, all radiant again as by day, but with a difference that was tremendous. Their old haunts greeted them again in other raiment, as if they had slipped away and put on this pure new apparel and come quietly back, smiling as they shyly waited to see if they would be recognised again under it.</p>
</blockquote>
<p>It’s just… it’s…</p>
<p>O my! O my! O my!</p>
<hr />
<p>I asked ChatGPT to calculate some readability stats for me: the average sentence length is 18.5 words.</p>
<p><a href="https://languagelog.ldc.upenn.edu/myl/LibermanSHEL12.pdf">Sentence length in literature has been falling over the years</a> (LanguageLog).</p>
<p>But it’s not the lengthy sentences that makes this prose work for me. It’s the rhythm.</p>
<p>And I don’t really get that from reading it dead on the page. It’s because I’ve been reading <em>The Wind in the Willows</em> out loud.</p>
<hr />
<p>Some years back I read Ursula Le Guin’s book about writing, <a href="https://www.amazon.co.uk/Steering-Craft-Twenty-First-Century-Guide-Sailing/dp/0544611616">Steering the Craft</a>.</p>
<p>The first chapter is all about the sound of your words:</p>
<p><em>"The basic elements of language are physical: the noise words make and the rhythm of their relationships."</em></p>
<p>She recommends reading out loud.</p>
<p>So I started reading out loud.</p>
<p>I would take a page of prose from a novel that I really loved, and I would read it out loud, and out loud again, and again, and again, and again, until I could make it sound as wonderful as I <em>felt</em> it was when I was reading in my head.</p>
<p>It’s so hard to do. And you learn so much about words and meaning with this practice.</p>
<hr />
<p>So I doubt you’re reading this post out loud.</p>
<p>But that passage about moonlight above…</p>
<p>For me, it doesn’t work in my head. It’s okay. But when I read it out loud - to my kid, which is my excuse right now - to make it make sense to her ears and for the words to carry her, I have to read it in a certain way, and when I do Kenneth Grahame’s words loft me into the sky, swinging clear of the horizon and right up there, free of moorings, just like his moon.</p>
<p>And when I read his words about the foliage on the riverbank, out loud, I’m right there too.</p>
<p>Do me a favour. Read that moonlight paragraph out loud. Even if under your breath, but pause right now, take a moment and do that, read it out loud.</p>
<p>Then read all of <em>The Wind in the Willows</em> because <a href="https://www.gutenberg.org/ebooks/289">it’s free on Project Gutenberg</a> in Kindle format and everything, and if you have an excuse to read it to someone else then do that, it is transporting and majestic and gentle all at once, and it is a joy to have his words in your mouth and in the air and in your ears.</p>

  <hr />



  <p><small>Auto-detected kinda similar posts:</small></p>
  <ul>
  
  <li><small><a href="https://interconnected.org/home/2024/08/16/bombadil">When kids books low-key break the system of the world</a>
  (16 Aug 2024)</small></li>
  
  </ul>

</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/04/24/willows</guid>
      <pubDate>Fri, 24 Apr 2026 17:56:00 +0000</pubDate>
    </item>
    <item>
      <title>Courier: real-time messaging for ESP32 with batteries included (new library)</title>
      <link>https://interconnected.org/home/2026/04/21/courier</link>
      <description><![CDATA[<div>
<p>I hack on hardware a whole bunch, at <a href="https://inanimate.tech">Inanimate</a> and at home.</p>
<p>AI is in the cloud. Interaction is in my room and in my hands. The job always begins by wiring together those two ends.</p>
<p>So the second thing I do, every single time, is bring up real-time messaging using JSON over websockets so I can connect my new device to a server, and have it emit events and listen for commands.</p>
<p><em>(The first thing I do is bring up the hardware and get basic <a href="https://en.wikipedia.org/wiki/Blinkenlights">blinkenlights</a>.)</em></p>
<p>I want my on-device websockets client to have a super easy interface: give me an <code>onMessage</code> handler to deal with incoming messages.</p>
<p>I need built-in wi-fi config (so I can carry my prototype around to different places). And I don’t want to have to choose which libraries I’m going to use each time, I want good defaults.</p>
<p>That’s what Courier does, in just a handful of lines.</p>
<p><em>Honestly this isn’t rocket science. It’s no biggie. But it’s decisions I make and boilerplate I have to write for every new project, and I don’t want to vibe code and test this bit every time… I just want it to work. So I find Courier useful personally. And in the spirit of sharing, I hope it’s useful for you too.</em></p>
<p><strong>Find the code and README here: <a href="https://github.com/inanimate-tech/courier">Courier on GitHub</a></strong></p>
<p><img alt="" src="https://interconnected.org/more/2026/04/courier.jpg" /></p>
<h3>Quick start</h3>
<p>Courier does a small and necessary job (messaging) in the most straightforward way possible.</p>
<p>Let’s say you’re using Arduino on ESP32. <em>I’ll say more about ESP32 in a minute.</em></p>
<p>Add Courier to your project (we recommend managing your project with <a href="https://platformio.org">PlatformIO</a>):</p>
<p><code>lib_deps = https://github.com/inanimate-tech/courier.git</code></p>
<p>Then here’s all the C++ code you need:</p>
<pre><code class="">#include &lt;Courier.h&gt;

CourierConfig makeConfig() {
  CourierConfig cfg;
  cfg.host = &quot;api.example.com&quot;;
  cfg.port = 443;
  cfg.path = &quot;/ws&quot;;
  return cfg;
}

Courier courier(makeConfig());

void setup() {
  courier.onConnected([]() { courier.send(R&quot;({&quot;type&quot;:&quot;hello&quot;})&quot;); });
  courier.onMessage([](const char* type, JsonDocument&amp; doc) {
    Serial.printf(&quot;Got: %s\n&quot;, type);
  });
  courier.setup();
}

void loop() { courier.loop(); }
</code></pre>

<p>Now your server can send real-time messages in JSON to your device, and your device can handle them. (It pulls out the <code>type</code> automatically for easy routing.)</p>
<p><em>That’s it!</em></p>
<p>You don’t need to hardcode wi-fi details in your code. Courier bundles <a href="https://github.com/tzapu/WiFiManager">WiFiManager</a> for portable connectivity: if a network can’t be found, this library pops up its own access point and open a captive portal.</p>
<p>Also you get for free: sane auto-healing of both the socket and wi-fi, NTP time sync so the internal clock doesn’t drift and break your secure connection (which happens after about 72 hours), and an easy upgrade path to MQTT.</p>
<h3>Try Courier with an M5Stick</h3>
<p><a href="https://en.wikipedia.org/wiki/ESP32">ESP32</a> is a family of microcontrollers that has a special place in the hardware ecosystem: thanks to its low cost, built-in wi-fi and Bluetooth, and ease of development,</p>
<ul>
<li>it is the platform of choice for new hardware startups</li>
<li>and it is great in mass-market production.</li>
</ul>
<p>It even has an Arduino compatibility framework, so you can start with that and then iterate as you go. It’s pretty unique to go from bench to production like that.</p>
<p>So we love ESP32 at Inanimate.</p>
<p>A big player in the ESP32 ecosystem is <a href="https://m5stack.com">M5</a>: they’re China-based and have about 400 SKUs that wrap ESP32 microcontrollers in all kinds of enclosures with all kinds of peripherals and sensors. I had a blast getting a personal tour of M5 <a href="https://www.weltmuseumwien.at/en/exhibitions/superflux">when I visited Shenzhen last year</a> – they use their own sensors in an industrial IoT network to run and monitor their assembly line.</p>
<p>Now you may have seen an M5Stick or two on the socials. They’re super popular at least in my circle, people love hacking on them.</p>
<p>Pick up an <a href="https://www.amazon.co.uk/M5Stack-Official-M5StickC-PLUS2-Development-Yellow/dp/B0D6LCQ19Z">M5Stick-C Plus2</a> on Amazon for less than 30 bucks! It’s an ESP32 with a screen, buttons, buzzer, gyro, battery and mic in a tiny bright yellow package.</p>
<p>Get yourself one or two, <a href="https://docs.m5stack.com/en/core/M5StickC%20PLUS2">bring it up by following the docs</a> and then install Courier…</p>
<p>…or <a href="https://github.com/inanimate-tech/courier/tree/main/examples/m5stick-demo">use our example code</a>. Our example also supports the newer <a href="https://shop.m5stack.com/products/m5sticks3-esp32s3-mini-iot-dev-kit">M5StickS3</a> which is grey and has a more powerful chip.</p>
<p>This is what I made with real-time messaging plus my backend websocket server:</p>
<video controls="" autoPlay="" muted="" loop="" class="measure-wide" src="https://interconnected.org/more/2026/04/courier-interconnected.mp4"></video>

<p>My lil traffic guy tells me the top pages on my blog in real-time <code>^_^ v</code></p>
<p>I have live cursors on every page of my blog (<a href="https://interconnected.org/home/2024/09/05/cursor-party">write-up and open source code</a>) so that same system sends JSON messages via websockets to the M5Stick on my desk.</p>
<p>If a post gets big then I have my stick on my desk so I see immediately, then I pop over to the page and say hi to everyone with the cursor chat.</p>
<p>More visitors = more flowers!</p>
<p>Plus: shake-for-QR code, so I can quickly follow the link back to the top post.</p>
<p>It’s amazing when hardware starts to feel alive.</p>
<p>Do show me if you make anything too.</p>
<h3>Try Courier now</h3>
<p>To use Courier right now, first bring up your M5Stick or other ESP32 hardware so you know it works ok, and then go to the <a href="https://github.com/inanimate-tech/courier">Courier repo on GitHub</a> where you can find installation instructions, API docs and examples.</p>
<p>It’s under active development: this is what we use for prototyping at Inanimate. Hey, <a href="https://news.inanimate.tech">subscribe to our Lab Notes newsletter</a>!</p>
<p>Courier is distributed under an MIT license.</p>

  <hr />


	<p><small>More posts tagged:
	
	<a href="https://interconnected.org/home/tagged/inanimate">inanimate</a>
	(6).
	
	</small></p>


</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/04/21/courier</guid>
      <pubDate>Tue, 21 Apr 2026 15:25:00 +0000</pubDate>
    </item>
    <item>
      <title>Headless everything for personal AI</title>
      <link>https://interconnected.org/home/2026/04/18/headless</link>
      <description><![CDATA[<div>
<p>It’s pretty clear that apps and services are all going to have to go <em>headless:</em> that is, they will have to provide access and tools for personal AI agents without any of the visual UI that us humans use today.</p>
<p>By services I mean things like: getting a new passport; finding and booking a hotel or a flight; managing your bank account; shopping for t-shirts with a minimum cotton weight from brands similar to ones that you’ve bought from before.</p>
<p>Why? Because using personal AIs is a better experience for users than using services directly (honestly); and headless services are quicker and more dependable for the personal AIs than having them click round a GUI with a bot-controlled mouse.</p>
<p>Where this leaves design for the services… well, I have some thoughts on that.</p>
<hr />
<p>Headless services? They’re happening already.</p>
<p>Already there is <a href="https://interconnected.org/home/2025/02/11/mcp">MCP, as previously discussed</a> (2025), a kind of web API specifically for AI. For instance, best-in-class call transcriber app Granola <a href="https://www.granola.ai/blog/granola-mcp">recently released their MCP</a> and now you can ask your Claude to pull out the meeting actions and go trawling in your personal docs to find answers to all the question. A good integration.</p>
<p>But command-line tools are growing in popularity, although they used to be just for developers. So you can now create a spreadsheet by typing in your terminal:</p>
<p><code>gws sheets spreadsheets create --json '{"properties": {"title": "Q1 Budget"}}'</code></p>
<p>Here are some recently launched CLI tools:</p>
<ul>
<li><a href="https://github.com/googleworkspace/cli">gws</a>: Google Workspace CLI, <em>"Drive, Gmail, Calendar, and every Workspace API. Zero boilerplate. Structured JSON output. 40+ agent skills included."</em></li>
<li><a href="https://obsidian.md/cli">Obsidian CLI</a> to do anything you can do with the (very popular) note-taking app - like keep daily notes, track and cross off tasks, search - from the CLI</li>
<li><a href="https://developer.salesforce.com/tools/salesforcecli">Salesforce CLI</a> and, look, I don’t really understand what the Salesforce business operating system does, but the fact it has a CLI too is significant.</li>
</ul>
<p>And here is <a href="https://github.com/HKUDS/CLI-Anything">CLI-Anything</a> (31k stars on GitHub) which <em>"auto-generates CLIs for ANY codebase."</em></p>
<p>Why CLIs?</p>
<p>It turns out that the best place for personal AIs to run is on a computer. Maybe a virtual computer in the cloud, but ideally your computer. That way they can see the docs that you can see, and use the tools that you can use, and so what they want is not APIs (which connect webservers) but little apps they can use directly. CLI tools are the perfect little apps.</p>
<hr />
<p>CLIs are composable so they are a better fit for what users actually do.</p>
<p>By composable I mean you can: query your notes then jump to a spreadsheet then research the web then jump back to the spreadsheet then text the user a clarifying question then double-check your notes, all by bouncing between CLIs in the same session.</p>
<p>A while back app design got obsessed with “user journeys.” Like the journey of a user finding a hotel then booking a hotel then staying in it and leaving a review.</p>
<p>But users don’t live in “journeys.” They multitask; they talk to people and come back to things; they’re idiosyncratic Try grabbing the search results from the Airbnb app and popping them in a message to chat on the family WhatsApp, then coming back to it two days later. It’s a pain and you have to use screenshots because apps and their user journeys are not composable.</p>
<p>CLIs are composable because they came originally from Unix and that is the <a href="https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/c1089.htm">Unix tools philosophy</a>: <em>"tools were designed so that they could operate together."</em> </p>
<p>Personal AIs like Openclaw or [Poke](<a href="https://poke.com/">https://poke.com</a> do what users want and don’t follow “designed” user journeys, and as a result the composed experience is more personal and way better. CLIs are a great underlying technology for that.</p>
<hr />
<p>CLIs are smaller than regular apps and so they are easier to secure.</p>
<p>The alternative to providing special tools for AIs is that the AIs use the same browser-based apps that we do, and that’s a terrifying prospect.</p>
<p>For one, AIs are really good at finding security holes. The new Mythos model from Anthropic is so good at discovering security flaws that it has been held back from the public and <a href="https://www.bbc.co.uk/news/articles/c2ev24yx4rmo">governments are convening emergency meetings of the biggest banks</a>.</p>
<p>And including a UI increasing complexity and makes security holes more likely.</p>
<p>Here’s a recent shocking example. Companies House is the national register of all companies, directors, and accounts for England and Wales. Users could view <em>and edit</em> any other user’s account:</p>
<blockquote cite="https://www.theregister.com/2026/03/16/companies_house_breach/" class="quoteback" data-author="The Register" data-title="Flaw in UK's corporate registry let directors rummage through rival records">
<p>a logged-in company director could exploit the flaw by starting from their own dashboard and then trying to log into another company’s account.</p>
<p>Once they reach the 2FA block, which they would not be able to pass, <u>all that was required was to click the browser’s back button a few times</u>. Typically, the user would be taken back to their own dashboard, but the bug instead returned them to the company they had tried to log into but couldn’t.</p>
<footer>– The Register, <cite><a href="https://www.theregister.com/2026/03/16/companies_house_breach/">Flaw in UK’s corporate registry let directors rummage through rival records</a></cite></footer>
</blockquote>
<p>This bug had been present since October 2025.</p>
<p>Imagine a future where personal AIs are filing company records, and one of them notices this security hole overnight and posts about it on <a href="https://www.moltbook.com">moltbook</a> or whatever agent-only social network is most popular. The other agents would exploit the system up, down and sideways before the engineering team woke up.</p>
<p>The only viable solution is that services need to security hardened, and to do that they need to be simplifying and minimised. Again, CLI tools are a great fit.</p>
<hr />
<p>What does this mean for front-end design?</p>
<p>Design won’t go anywhere.</p>
<p>Sure, the front-end should be driving the same CLI tools that agents use.</p>
<p>Arguably it’s more important than ever: human users will encounter services, figure out what they can do, and pick up their vibe from using the app, just as now.</p>
<p>Then they’ll tell their personal AI about the service and never see the front-end again, or re-mix it into bespoke personal software.</p>
<p>So from a usability perspective I see front-end as somewhat sacrificial. AI agents will drive straight through it; users will encounter it only once or twice; it will be customised or personalised; all that work on optimising user journeys doesn’t matter any more.</p>
<p>But from a vibe perspective, services are not fungible. e.g. if you’re finding a restaurant then Yelp, Google Maps, Resy, and The Infatuation are all more-or-less equivalent for answering that question but clearly they are completely different and you’ll use different services at different times.</p>
<p>Understanding that a service is <em>for you</em> is 50% an unconscious process - we call it brand - and I look forward to front-end design for apps and services optimising for brand rather than ease of use.</p>
<hr />
<p>If I were a bank, I would be releasing a hardened CLI tool like <em>yesterday.</em></p>
<p>There is so much to figure out:</p>
<ul>
<li>How do permissions work? Should the user get a notification from their phone app when the agent strays outside normal behaviour? How do I give it credentials to act on my behalf, and how long do they last?</li>
<li>How does adjacency work? My bank gives me a current account in exchange for putting a “hey, get a loan!” button on the app home screen. How do you make offers to an agent?</li>
</ul>
<p>Headless banks.</p>
<hr />
<p>Headless government?</p>
<p>I’d love to show you a worked example here. I vibed up a suite of four CLI tools that wrap four different services from UK government departments.</p>
<p>If I were renting a house, I would set my agent to learning about the neighbourhoods using one of these tools. Another tool will be helpful next time I’m buying a used car. (There’s a Companies House command-line tool too.)</p>
<p>But I won’t show you the tools because I don’t want to be responsible for maintaining and supporting them.</p>
<hr />
<p>I wish Monzo came with an official CLI. I wish Booking.com came with a CLI. I reckon, give it a year, they will.</p>

  <hr />



  <p><small>Auto-detected kinda similar posts:</small></p>
  <ul>
  
  <li><small><a href="https://interconnected.org/home/2024/03/20/agents">Who will build new search engines for new personal AI agents?</a>
  (20 Mar 2024)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2022/05/09/npcs">Designing user interfaces with bots not buttons</a>
  (9 May 2022)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2025/08/29/dwim">The destination for AI interfaces is Do What I Mean</a>
  (29 Aug 2025)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2024/07/19/ai-landscape">Mapping the landscape of gen-AI product user experience</a>
  (19 Jul 2024)</small></li>
  
  <li><small><a href="https://interconnected.org/home/2024/08/09/no-apps-no-masters">No apps no masters</a>
  (9 Aug 2024)</small></li>
  
  </ul>

</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/04/18/headless</guid>
      <pubDate>Sat, 18 Apr 2026 17:00:00 +0000</pubDate>
    </item>
    <item>
      <title>mist is now open source and looking for interop</title>
      <link>https://interconnected.org/home/2026/04/10/open-mist</link>
      <description><![CDATA[<div>
<p>A brief update on <strong>mist,</strong> my ephemeral Markdown editor with Google Docs-style comments and suggested edits:</p>
<p>mist is now open source with an MIT license, and the <a href="https://github.com/inanimate-tech/mist">mist repo is here on GitHub</a>.</p>
<p><em>(<a href="https://mist.inanimate.tech">Try mist now</a> and <a href="https://interconnected.org/home/2026/02/12/mist">here’s my write-up from February</a>.)</em></p>
<p>What I love about Markdown is that it’s document-first. The formatting travels with the doc. I can’t tell you how many note-taking apps I’ve jumped between with my exact same folder of Markdown notes.</p>
<p>The same should be true for collaboration features like suggested edits. If somebody makes an edit to your doc, you should be able to download it and upload to a wholly different app before you accept the edit; you shouldn’t be tied to a single service just because you want comments.</p>
<p>(And of course the doc should still be human-readable/writeable, and it’s cheating to just stuff a massive data-structure in a document header.)</p>
<p>So <a href="https://github.com/inanimate-tech/mist/blob/main/docs/markdown-and-criticmarkup.md">mist mixes Markdown and CriticMarkup</a> – and I would love it if others picked up the same format. If apps are cheap and abundant in the era of vibing, then let’s focus on interop!</p>
<p>With mist itself:</p>
<p>Several people have asked for the ability to self-host it. The README says how (it’s all on Cloudflare naturally). You can add new features to your own fork, though please do share upstream if you think others could benefit.</p>
<p>And yes, contributions welcome! We’ve already received and merged <a href="https://github.com/inanimate-tech/mist/pull/4">our first pull request</a> – thank you <a href="https://lazyatom.com">James Adam</a>!</p>
<hr />
<p>No, a document editor is not what we’re building at Inanimate. But it’s neat to release small useful projects that get made along the way. btw <a href="https://news.inanimate.tech">subscribe to our newsletter</a>.</p>

  <hr />


	<p><small>More posts tagged:
	
	<a href="https://interconnected.org/home/tagged/inanimate">inanimate</a>
	(6).
	
	</small></p>


</div>]]></description>
      <guid isPermaLink="true">https://interconnected.org/home/2026/04/10/open-mist</guid>
      <pubDate>Fri, 10 Apr 2026 16:35:00 +0000</pubDate>
    </item>
  </channel>
</rss>
