<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Tom MacWright</title>
  <link href="https://macwright.com/atom.xml" rel="self"/>
  <link href="https://macwright.com/"/>
  <updated>2026-09-01T00:00:00Z</updated>
  <subtitle>JavaScript, math, maps, etc</subtitle>
  <icon>https://macwright.com/css/favicon.png</icon>
  <id>https://macwright.com/</id>
  <author>
    <name>Tom MacWright</name>
    <email>2025@macwright.com</email>
  </author>
  <entry>
    <title>Recently</title>
    <link href="https://macwright.com/2026/09/01/recently.html"/>
    <updated>2026-09-01T00:00:00Z</updated>
    <id>https://macwright.com/2026/09/01/recently.html</id>
    <content type="html">&lt;p&gt;I skipped August&#39;s &lt;em&gt;Recently&lt;/em&gt; because this summer has been relentless, mostly in the positive sense. July and August were filled with bike rides, 5K races, friends in town, life changes and logistics.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/vM2d47bbI8-640.webp 640w, https://macwright.com/img/vM2d47bbI8-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Cyclone roller coaster&quot; decoding=async height=1707 loading=lazy sizes=auto src=https://macwright.com/img/vM2d47bbI8-640.jpeg srcset=&quot;https://macwright.com/img/vM2d47bbI8-640.jpeg 640w, https://macwright.com/img/vM2d47bbI8-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;For a friend&#39;s birthday, we rode the rickety &lt;a href=https://en.wikipedia.org/wiki/Coney_Island_Cyclone&gt;Coney Island Cyclone&lt;/a&gt;, which was faster and more intense than I remembered it. But it&#39;s been 18 years since the last injury on the coaster, and the rider was partly at fault: good enough for me.&lt;/p&gt;&lt;div class=two-up&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/fUtUPrWe2O-640.webp 640w, https://macwright.com/img/fUtUPrWe2O-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;GPS Unit&quot; decoding=async height=1707 loading=lazy sizes=auto src=https://macwright.com/img/fUtUPrWe2O-640.jpeg srcset=&quot;https://macwright.com/img/fUtUPrWe2O-640.jpeg 640w, https://macwright.com/img/fUtUPrWe2O-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/zPjzndp2qm-640.webp 640w, https://macwright.com/img/zPjzndp2qm-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=Trail decoding=async height=1707 loading=lazy sizes=auto src=https://macwright.com/img/zPjzndp2qm-640.jpeg srcset=&quot;https://macwright.com/img/zPjzndp2qm-640.jpeg 640w, https://macwright.com/img/zPjzndp2qm-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/div&gt;&lt;style&gt;.two-up{display:grid;grid-template-columns:1fr 1fr;gap:10px}&lt;/style&gt;&lt;p&gt;I rode my first proper &lt;a href=https://lirando.org/ &gt;randonneuring ride&lt;/a&gt;: 200km (124mi) to all of the beaches around Brooklyn. It was pretty challenging, as you&#39;d expect, but I didn&#39;t &#39;find my limit&#39; for endurance, but I did find my limit in terms of how many gels &amp; ride-nutrition packets I could consume before sugar becomes repulsive. I do still heartily endorse &lt;a href=https://untapped.cc/product-category/untappeds-energy-gels/ &gt;maple syrup packets&lt;/a&gt; for ride nutrition: compared to the space-age fuels that all taste like fruit or coffee, it&#39;s an identifiable substance that tastes like you&#39;d expect.&lt;/p&gt;&lt;p&gt;And, not pictured, but I ran a bunch of 5Ks. Haven&#39;t hit my goal this year of going sub-20, but got close in the last one - 20:15. I&#39;m not giving up yet, because the weather is getting better and Brooklyn has a lot of 5K options.&lt;/p&gt;&lt;h2 id=listening&gt;Listening&lt;/h2&gt;&lt;iframe seamless src=&quot;https://bandcamp.com/EmbeddedPlayer/album=2369499514/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/transparent=true/&quot; style=border:0;width:100%;height:120px&gt;&lt;a href=https://duffyuhlmann.bandcamp.com/album/hot-creek&gt;Hot Creek by Duffy x Uhlmann&lt;/a&gt;&lt;/iframe&gt;&lt;p&gt;Duffy x Uhlmann has been in my rotation for &lt;a href=https://macwright.com/2025/08/29/recently&gt;a year now&lt;/a&gt; and the new album has all the things I like from the combination. This and &lt;a href=https://shrunkenelvis.bandcamp.com/album/shrunken-elvis&gt;Shrunken Elvis&lt;/a&gt; go along well together and both have been hits at dinner parties.&lt;/p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/h54KXzWNv1Q&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;This album from &lt;a href=https://en.wikipedia.org/wiki/Frances_Quinlan&gt;Frances Quinlan&lt;/a&gt;, the frontperson of Hop Along, went under the radar, but it&#39;s so good. I&#39;ve also been playing Hop Along&#39;s send album &lt;em&gt;Get Disowned&lt;/em&gt;. I really like everything that this band has put out. It&#39;s a product of Philadelphia but I hear some of the elements that drew me to DC post-punk in the turn-on-a-dime songwriting.&lt;/p&gt;&lt;iframe seamless src=&quot;https://bandcamp.com/EmbeddedPlayer/album=2102394109/size=large/bgcol=ffffff/linkcol=333333/tracklist=false/artwork=small/track=1030913408/transparent=true/&quot; style=border:0;width:100%;height:120px&gt;&lt;a href=https://hopalong.bandcamp.com/album/get-disowned&gt;Get Disowned by Hop Along&lt;/a&gt;&lt;/iframe&gt;&lt;h2 id=watching&gt;Watching&lt;/h2&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/u6XAPnuFjJc&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;This video, &#39;The surprising truth about what motivates us&#39;, is kind of an artifact of the &#39;Obamaverse&#39;, as one of my friends would put it. It&#39;s by &lt;a href=https://www.danpink.com/ &gt;Daniel Pink&lt;/a&gt;, a writer-speaker-self-help kind of guy, and it&#39;s accompanied by one of those realtime hand-illustrations. There are lots of reasons to tune it out as YouTube filler.&lt;/p&gt;&lt;p&gt;Still, I thought it was pretty cool for two reasons: first, it connected directly with Andrew Kelley&#39;s video, which is the next one. And it connects with my &lt;a href=https://macwright.com/2024/03/01/incentives&gt;feelings about incentives&lt;/a&gt; and how most simple incentives are counterproductive. And second, the drawing is &lt;em&gt;real&lt;/em&gt;. I&#39;m so used to the artificial version of this visual style that it took a minutes to realize that the it wasn&#39;t AI or some &#39;drawing hand&#39; style of video essay, it was a real person making quite nice illustrations: specifically &lt;a href=https://www.hairyhand.co/about&gt;Andrew Park&lt;/a&gt;.&lt;/p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/iqddnwKF8HQ params=&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Found myself nodding along to every bit of this interview with Andrew Kelley. His values and motivation are so nice to encounter in this current phase of tech. He&#39;s kind of a role model, which is something that I used to find trite in my early career but I&#39;m coming around to. As Adam Neely &lt;a href=&quot;https://youtu.be/U8dcFhF0Dlk?si=tRSHMTjG-ywVFsPA&amp;t=1324&quot;&gt;pointed out in his video&lt;/a&gt;, a lot of the people heavily using Suno (an AI music tool) could not cite any role models, and defaulted to a sort of enclosed, self-centered stance. I see this with engineering too: it&#39;s hard to discern what values or talents the people at &#39;the forefront of the industry&#39; have that I want. Finding personal qualities as something to imitate instead of desires and possessions (cue the segue into &lt;a href=https://en.wikipedia.org/wiki/Mimetic_theory&gt;Girard&#39;s Memetic theory&lt;/a&gt;) seems like a better way to live.&lt;/p&gt;&lt;h2 id=reading&gt;Reading&lt;/h2&gt;&lt;blockquote&gt;&lt;p&gt;What strengthens a relationship? Almost always, it is personal investment. Perhaps an AI agent might be better at predicting what my father will want for his birthday than I am, but it definitionally cannot give him my time and consideration. Love is not just a feeling; it is a way of paying attention.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=https://www.theverge.com/ai-artificial-intelligence/977623/mark-zuckerberg-ai-manifesto-dim-vision&gt;Elizabeth Lopatto&lt;/a&gt; in The Verge picks apart Mark Zuckerberg&#39;s weird, sad view of humanity. It&#39;s worth a read even just for the incredible opening anecdote.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Home of the titular 100 foot waves. Which existed when I was a kid of course, but the larger world didn’t know about them yet. They were our secret. My grandfather and I would walk to the lighthouse and watch the waves hitting against the cliffs and he’d tell me that these were the biggest waves in the world. I didn’t believe him, of course. I thought it was standard grandpa hyperbole. But I also didn’t want to believe that I was seeing the biggest of anything. Not yet. I wanted the really great things to be in the future. Something to aim for. Which means I missed out on some great things that were right in front of me.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=https://buttondown.com/monteiro/archive/how-to-live-somewhere-safe/ &gt;Mike Monteiro&#39;s&lt;/a&gt; newsletter is always beautiful and melancholy, and this is a really nice edition of it.&lt;/p&gt;&lt;p&gt;I read and highlighted a few other articles but they were all saying things about AI, mostly about how it makes the world worse and makes people feel bad. I won&#39;t add those to the pile because I don&#39;t want that kind of content to dominate what I mention, even if it does dominate what I read.&lt;/p&gt;&lt;h2 id=elsewhere&gt;Elsewhere&lt;/h2&gt;&lt;p&gt;For the Val Town blog, &lt;a href=https://blog.val.town/security&gt;I wrote about our experience with the bug bounty program&lt;/a&gt;. It&#39;s been a very interesting experience. Val Town has a pretty difficult security surface: in contrast to &lt;a href=https://www.mapbox.com/ &gt;Mapbox&lt;/a&gt;, which was mostly a read-only API, it&#39;s a very read-write system with many access controls. At the center of the product is a sandbox that we want to keep secure. And because we&#39;re living in the AI age, a single bit of functionality can be exposed via REST API, React Router loaders, tRPC, and MCP. Building a model layer and a shared authorization layer - modeled after &lt;a href=https://www.osohq.com/ &gt;Oso&lt;/a&gt; - has helped a bit.&lt;/p&gt;&lt;p&gt;But the reports still come in. It&#39;s pretty wild how AI factors into it: I&#39;d say that 100% of the vulnerability reports used AI to write the report itself. From the best reporters, the vulnerabilities come with screen recordings and evidence, and it&#39;s clearly not all-robot. But - I suspect that other people manning help desks &amp; bug bounty programs know this experience - it&#39;s jarring to go three replies into an email conversation with someone and they suddenly stop using an LLM to write their emails and the voice completely changes, from hyper-literate to abbreviated and misspelled.&lt;/p&gt;&lt;p&gt;I also wrote about &lt;a href=https://blog.val.town/access&gt;our new authentication scheme&lt;/a&gt; that makes vals require login and makes it possible to manage permissions to val applications, not just their code. It was pretty fun to implement, and the sixth or seventh time working with &lt;a href=https://en.wikipedia.org/wiki/HMAC&gt;HMAC&lt;/a&gt; schemes I&#39;m starting to get a natural grasp on them.&lt;/p&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Placemark is now fully open source</title>
    <link href="https://macwright.com/2026/08/25/placemark-fully-open-source.html"/>
    <updated>2026-08-25T00:00:00Z</updated>
    <id>https://macwright.com/2026/08/25/placemark-fully-open-source.html</id>
    <content type="html">&lt;p&gt;&lt;em&gt;Context: Placemark is a tool that lets you view, create, and edit geospatial (map) data. I ran it as a company for a while and &lt;a href=https://macwright.com/2024/01/19/placemark-oss&gt;open sourced it&lt;/a&gt; when I shut down that company.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;Yesterday &lt;a href=https://www.placemark.io/ &gt;Placemark&lt;/a&gt; got a &lt;a href=https://github.com/placemark/placemark/pull/269&gt;pretty big PR from Birk Skyum&lt;/a&gt;, replacing its dependency on Mapbox GL JS with MapLibre, along with some other improvements. &lt;a href=https://github.com/birkskyum&gt;Birk&lt;/a&gt; is one of the cofounders of &lt;a href=https://maplibre.org/ &gt;MapLibre&lt;/a&gt;&lt;sup class=footnote-ref&gt;&lt;a href=https://macwright.com/2026/08/25/placemark-fully-open-source.html#fn1 id=fnref1&gt;[1]&lt;/a&gt;&lt;/sup&gt; and a generally prolific open-source contributor.&lt;/p&gt;&lt;p&gt;It&#39;s merged and live, and you can see it in action at &lt;a href=https://www.placemark.io/ &gt;placemark.io&lt;/a&gt;. This meant swapping out both the Mapbox frontend code as well as switching to a different tile service - we&#39;re now using &lt;a href=https://openfreemap.org/ &gt;OpenFreeMap&lt;/a&gt; for tiles, &lt;a href=https://openmaptiles.org/ &gt;OpenMapTiles-based styles&lt;/a&gt;, &lt;a href=https://account.heigit.org/info/tos&gt;openrouteservice&lt;/a&gt; for the routing drawing mode, and &lt;a href=https://www.maptiler.com/ &gt;MapTiler&lt;/a&gt; for the satellite layer. Forks of Placemark no longer require a Mapbox API token to work, but they do require a MapTiler token to support Satellite tiles, and an openrouteservice token to do route-drawing.&lt;/p&gt;&lt;p&gt;The big upside here is that this makes Placemark cleanly open source: all of its dependencies have proper open source licenses like MIT, ISC, Apache-2.0, BSD-3-Clause, or similar&lt;sup class=footnote-ref&gt;&lt;a href=https://macwright.com/2026/08/25/placemark-fully-open-source.html#fn2 id=fnref2&gt;[2]&lt;/a&gt;&lt;/sup&gt;. &lt;a href=https://github.com/mapbox/mapbox-gl-js/blob/main/LICENSE.txt&gt;Mapbox GL&#39;s license&lt;/a&gt; is not open source and requires the developer to have a Mapbox account and follow their Terms of Service. So: you can now fork Placemark and build cleanly-licensed open source applications on its codebase. I recommend it!&lt;/p&gt;&lt;p&gt;You&#39;ll notice some visual changes: MapTiler&#39;s satellite sources and processing are different than Mapbox&#39;s, and the OpenFreeMap styles are a bit different. I hope that it&#39;s not a disruptive change for anyone relying on the tool.&lt;/p&gt;&lt;p&gt;Along with this, Birk removed the deck.gl dependency that had been bothering me for a few years, and swapped out the routing functionality for a more permissive provider. It was a really great contribution, and resolved an issue more than two years old. Great stuff, and much appreciated!&lt;/p&gt;&lt;h4 id=previously&gt;Previously&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Earlier this month, &lt;a href=https://macwright.com/2026/08/19/new-geojson-io&gt;Placemark code got readopted into geojson.io&lt;/a&gt;, which was also very cool&lt;/li&gt;&lt;li&gt;Rewind to the 2024 &lt;a href=https://macwright.com/2024/01/19/placemark-oss&gt;Placemark open source release post&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;hr class=footnotes-sep&gt;&lt;section class=footnotes&gt;&lt;ol class=footnotes-list&gt;&lt;li class=footnote-item id=fn1&gt;&lt;p&gt;Notes on &lt;a href=https://gist.github.com/tmcw/eb87d6b3cc85048491dffc5327cd89d9&gt;the Mapbox / Maplibre history&lt;/a&gt;, for clarity. &lt;a href=https://macwright.com/2026/08/25/placemark-fully-open-source.html#fnref1 class=footnote-backref&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=footnote-item id=fn2&gt;&lt;p&gt;Here&#39;s the &lt;a href=https://gist.github.com/tmcw/b60c0e0a31a361e63bbf734e3b778f29&gt;full license list from pnpm license list&lt;/a&gt;. &lt;a href=https://macwright.com/2026/08/25/placemark-fully-open-source.html#fnref2 class=footnote-backref&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Technology optimism hour</title>
    <link href="https://macwright.com/2026/08/14/optimism-hour.html"/>
    <updated>2026-08-14T00:00:00Z</updated>
    <id>https://macwright.com/2026/08/14/optimism-hour.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/8NgcHpQYKz-640.webp 640w, https://macwright.com/img/8NgcHpQYKz-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Another lovingly hand-illustrated watercolor of a computer surrounded by greenery. Not training data.&quot; decoding=async height=720 loading=lazy sizes=auto src=https://macwright.com/img/8NgcHpQYKz-640.jpeg srcset=&quot;https://macwright.com/img/8NgcHpQYKz-640.jpeg 640w, https://macwright.com/img/8NgcHpQYKz-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;Back in 2022, I wrote &lt;a href=https://macwright.com/2022/11/18/optimism-updates&gt;&lt;em&gt;Web technology optimism hour&lt;/em&gt;&lt;/a&gt;, highlighting the things I thought were cool about the state of technology. Time flies. Let&#39;s do it again.&lt;/p&gt;&lt;p&gt;It&#39;s still easy to be pessimistic, but it&#39;s nice to mine your feelings for the positive ones. The elephant in the room is AI, but I don&#39;t feel like throwing another post into the gravity field of that topic.&lt;/p&gt;&lt;p&gt;Without further ado:&lt;/p&gt;&lt;h2 id=typescript-7&gt;TypeScript 7&lt;/h2&gt;&lt;p&gt;It&#39;s here, finally, and it&#39;s faster. In the last edition, one of the headings was &quot;Rust and Go based tools are making TypeScript development faster.&quot; At that point we had a few upstart projects for minifying, transpiling, and bundling TypeScript. Those tools have become standard-issue.&lt;/p&gt;&lt;p&gt;But &lt;em&gt;TypeScript&lt;/em&gt;, the actual type-checking of the language and the language tooling in editors, was still a bottleneck. There was exactly one implementation of the TypeScript type checker, and it was implemented in TypeScript, so it ran at JavaScript speeds and had limited ability to become multi-threaded.&lt;/p&gt;&lt;p&gt;Unfortunately there&#39;s still only one game in town for TypeScript type checkers: it&#39;s still just Microsoft. But they rewrote TypeScript in Go for &lt;a href=https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/ &gt;TypeScript 7&lt;/a&gt; and it&#39;s much, much faster. This is one of the most noticeable changes to my day-to-day coding in a while.&lt;/p&gt;&lt;p&gt;Plus, even better: TypeScript 7 supports the Language Server Protocol! As I wrote about in 2024, &lt;a href=https://macwright.com/2024/06/01/recently#the-typescript-situation&gt;Microsoft invented TypeScript and also the Language Server Protocol&lt;/a&gt;, but TypeScript never implemented the Language Server Protocol. So there was no standard way for other editors, other than Microsoft&#39;s VS Code, to provide language tooling for TypeScript. This was suspicious behavior because of &lt;a href=https://blog.documentfoundation.org/blog/2026/07/17/microsofts-main-tool-for-lock-in/ &gt;the company&#39;s&lt;/a&gt; &lt;a href=https://en.wikipedia.org/wiki/United_States_v._Microsoft_Corp.&gt;history&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;But now: it just works. Neovim can support TypeScript 7 with its built-in Language Server support instead of someone &lt;a href=https://github.com/yioneko/vtsls&gt;wrapping the VSCode extension in an LS-protocol shell&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;So: a big win. Hooray for the new TypeScript: it&#39;s faster, it supports open standards, and now there are two TypeScript implementations. Now all we need is one that&#39;s made by someone who doesn&#39;t work at Microsoft.&lt;/p&gt;&lt;h2 id=the-effect-ecosystem-is-exciting&gt;The Effect ecosystem is exciting&lt;/h2&gt;&lt;p&gt;I&#39;ve been writing little &lt;a href=https://macwright.com/2026/07/16/effect-update&gt;development logs about Effect&lt;/a&gt; over the last year or two. I&#39;m excited about &lt;a href=https://www.effect.website/ &gt;Effect&lt;/a&gt;. It&#39;s a big, all-encompassing system, but I think it has a lot of potential and is arriving at exactly the right time.&lt;/p&gt;&lt;p&gt;This is an era of supply-chain risk and I think there is, and should be, a swing away from the tiny module ecosystems in NPM. Software that&#39;s composed of hundreds of little modules from hundreds of authors is a lovely idea that doesn&#39;t work with malicious actors. The swing is toward larger, buttoned-up libraries, and Effect is really well-positioned for that. It has type validation, observability, state management, fancy data types, and lots of functional programming helpers all under one roof, in one package that&#39;s pretty well-maintained and heavily tested.&lt;/p&gt;&lt;p&gt;It&#39;s also very, very typed, which makes it safer to use at scale. And it makes limits a lot easier: you can just stick an &lt;a href=https://www.effect.website/docs/v4/error-management/timing-out#timeout&gt;Effect.timeout&lt;/a&gt; on anything and prevent network requests or database queries or anything else from taking too long. The same with concurrency, it&#39;s very easy to limit concurrency. It&#39;s ready for a very uncertain world where you have to validate and be careful about everything. But at the same time, it&#39;s fun to use, if you&#39;re that kind of person, which I am.&lt;/p&gt;&lt;h2 id=bluesky-and-mastodon-are-successful-meaningfully-decentralized-systems&gt;Bluesky and Mastodon are successful, meaningfully decentralized systems&lt;/h2&gt;&lt;p&gt;I use Bluesky and Mastodon all the time and both &lt;em&gt;just work&lt;/em&gt;. They don&#39;t feel like tech demos, it&#39;s not all nerds using them. The uptime is pretty good, the featureset doesn&#39;t seem limited by the technology choices.&lt;/p&gt;&lt;p&gt;And yet both are legitimately decentralized (in different ways) networks, with really interesting ideas about security, privacy, and community systems. Bluesky is aggressively building out &lt;a href=https://bsky.network/ &gt;its protocol as an independent technology&lt;/a&gt; from the social network, and as I learned &lt;a href=https://macwright.com/2026/04/05/in-the-atmosphere&gt;at their conference&lt;/a&gt;, there are lots of creative people building on the technology.&lt;/p&gt;&lt;p&gt;There&#39;s a big gap between a cool tech demo and a user-friendly popular service, and both of these have bridged it. It&#39;s exciting, and shows that you don&#39;t have to accept a bad set of tradeoffs to make tech that&#39;s both principled and popular.&lt;/p&gt;&lt;h2 id=signal-whatsapp-imessage-and-rcs-are-meaningfully-secure-messaging-platforms&gt;Signal, WhatsApp, iMessage, and RCS are meaningfully secure messaging platforms&lt;/h2&gt;&lt;p&gt;I want to just celebrate the end of a technology: SMS. It&#39;s so good that people don&#39;t use SMS anymore: it was needlessly expensive and &lt;a href=https://en.wikipedia.org/wiki/SMS#Vulnerabilities&gt;extremely insecure&lt;/a&gt;. My texts with friends are almost exclusively on Signal &amp; iMessage, and occasionally WhatsApp.&lt;/p&gt;&lt;p&gt;Now, &lt;a href=https://en.wikipedia.org/wiki/Reception_and_criticism_of_WhatsApp_security_and_privacy_features&gt;WhatsApp is a mixed bag&lt;/a&gt; and nothing&#39;s perfect, but it&#39;s cool that the secure options &lt;a href=https://ssd.eff.org/ &gt;recommended by the EFF&lt;/a&gt; and other sources are also popular options that people use every day. That&#39;s also pretty important from a privacy standard: having Signal installed on your phone is normal because it has a wide userbase, but the same would not be true if it was only used by people attending protests and being wary of government surveillance.&lt;/p&gt;&lt;h2 id=hardware-update-cycles-are-slowing&gt;Hardware update cycles are slowing&lt;/h2&gt;&lt;p&gt;&lt;a href=https://www.macrumors.com/2024/07/10/apple-users-keeping-their-devices-for-longer/ &gt;People are hanging on to their phones and computers for longer&lt;/a&gt;. I&#39;m part of this trend - my iPhone hit its fourth birthday, and I have no reason to even think about replacing this computer. With the exception of their batteries, modern laptops and phones are robust: they&#39;re water-resistant, made of durable materials, and basically just work.&lt;/p&gt;&lt;p&gt;You could read the same data differently: maybe people are upgrading slower because they have less disposable income. I&#39;m not sure that&#39;s true. But either way, it&#39;s good that upgrade cycles are longer: it means less e-waste, less pollution, less churn overall.&lt;/p&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Printing tiny photos for paper journals</title>
    <link href="https://macwright.com/2026/07/24/printing-for-journals.html"/>
    <updated>2026-07-24T00:00:00Z</updated>
    <id>https://macwright.com/2026/07/24/printing-for-journals.html</id>
    <content type="html">&lt;p&gt;I&#39;m still &lt;a href=https://macwright.com/2019/01/02/paper-notes&gt;writing my journals on paper&lt;/a&gt;. Makes it about a decade of notebooks, most of them &lt;a href=https://fieldnotesbrand.com/ &gt;Field Notes&lt;/a&gt;, kept in the &lt;a href=https://fieldnotesbrand.com/products/archival-wooden-box&gt;archival wooden boxes&lt;/a&gt;&lt;sup class=footnote-ref&gt;&lt;a href=https://macwright.com/2026/07/24/printing-for-journals.html#fn1 id=fnref1&gt;[1]&lt;/a&gt;&lt;/sup&gt;. Writing by hand helps me remember and process life. Finishing notebooks give me the feeling of closing a chapter on those problems, at least for a moment.&lt;/p&gt;&lt;p&gt;Paper notebooks are also a very flexible medium, as most teenagers can confirm: you can take train tickets and elmers-glue them in there to commemorate a trip, or make sketches to illustrate some anecdote. Want five different kinds of checkboxes, and lines connecting paragraphs? You can do it in a paper notebook, and probably not in Notion or other digital tools.&lt;/p&gt;&lt;p&gt;Collecting ephemera in notebooks has been really satisfying, so I&#39;ve been experimenting with something new: a tiny printer. In particular, the &lt;a href=https://www.liene-life.com/products/pearl-n200-pro-portable-photo-printer-purple&gt;Liene Pearl N200 Pro&lt;/a&gt;. Here&#39;s some of that experience.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/pNrxWOMutk-640.webp 640w, https://macwright.com/img/pNrxWOMutk-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Liene printer on a wood table&quot; decoding=async height=720 loading=lazy sizes=auto src=https://macwright.com/img/pNrxWOMutk-640.jpeg srcset=&quot;https://macwright.com/img/pNrxWOMutk-640.jpeg 640w, https://macwright.com/img/pNrxWOMutk-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;It&#39;s a little printer. Exactly the height of an iPhone 16, and about twice its thickness. The photos it prints are small - 2x3 inches. My beloved Field Notes notebooks are 3.5x5.5&quot;, so the photos fit really well: any wider and they&#39;d creep too close to the binding of the notebook.&lt;/p&gt;&lt;p&gt;The Liene charges by USB-C and connects via Bluetooth. Virtually nothing that uses Bluetooth is reliable, and this is no exception.&lt;sup class=footnote-ref&gt;&lt;a href=https://macwright.com/2026/07/24/printing-for-journals.html#fn2 id=fnref2&gt;[2]&lt;/a&gt;&lt;/sup&gt; Half the time it pairs immediately, the other half I have to restart it to connect both to my iPhone and to the app. And it&#39;s kind of odd that it doesn&#39;t support AirPrint, Apple&#39;s standardized way for printers to connect to iPhones. You have to use the app, which is fine to use if you ignore the goofy AI features. For Chinese-based consumer electronics like this, the hardware is usually a lot better than the software.&lt;/p&gt;&lt;p&gt;And the photos are stickers! So far I haven&#39;t printed something from this and &lt;em&gt;not&lt;/em&gt; wanted the photo to be a sticker: wouldn&#39;t I want to stick it onto a postcard or in a notebook? The quality&#39;s totally fine but won&#39;t replace a desktop printer or a film photo.&lt;/p&gt;&lt;p&gt;It prints with dye-sublimation in a &lt;a href=https://en.wikipedia.org/wiki/CMYK_color_model&gt;three-color CMY process&lt;/a&gt;: yellow, magenta, and cyan. You can see the photo at each stage, and then it does a final lamination pass. The image rendering is punchy - high-contrast and high-saturation.&lt;/p&gt;&lt;div class=table-wrap&gt;&lt;table&gt;&lt;tr&gt;&lt;td style=border:none&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/pIAQdxOT1m-640.webp 640w, https://macwright.com/img/pIAQdxOT1m-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Photo Yellow&quot; decoding=async height=1707 loading=lazy sizes=auto src=https://macwright.com/img/pIAQdxOT1m-640.jpeg srcset=&quot;https://macwright.com/img/pIAQdxOT1m-640.jpeg 640w, https://macwright.com/img/pIAQdxOT1m-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/td&gt;&lt;td style=border:none&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/ZHqlkVyAEG-640.webp 640w, https://macwright.com/img/ZHqlkVyAEG-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Photo Magenta&quot; decoding=async height=1707 loading=lazy sizes=auto src=https://macwright.com/img/ZHqlkVyAEG-640.jpeg srcset=&quot;https://macwright.com/img/ZHqlkVyAEG-640.jpeg 640w, https://macwright.com/img/ZHqlkVyAEG-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/td&gt;&lt;td style=border:none&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/xxhEcq_Slb-640.webp 640w, https://macwright.com/img/xxhEcq_Slb-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Photo Combined&quot; decoding=async height=1707 loading=lazy sizes=auto src=https://macwright.com/img/xxhEcq_Slb-640.jpeg srcset=&quot;https://macwright.com/img/xxhEcq_Slb-640.jpeg 640w, https://macwright.com/img/xxhEcq_Slb-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;p&gt;Then the photos work nicely as full-width, or can be aligned vertically with a squeezed left column, like here:&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/uq51D8hXZ4-640.webp 640w, https://macwright.com/img/uq51D8hXZ4-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Photo in notebook&quot; decoding=async height=720 loading=lazy sizes=auto src=https://macwright.com/img/uq51D8hXZ4-640.jpeg srcset=&quot;https://macwright.com/img/uq51D8hXZ4-640.jpeg 640w, https://macwright.com/img/uq51D8hXZ4-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;The printer supposedly goes through a cartridge every 10 prints and eats &lt;a href=https://www.liene-life.com/products/pearl-n200-pro-2x3-dye-sublimation-photo-paper-50-sheets&gt;special paper&lt;/a&gt; that costs 50 cents a print.&lt;/p&gt;&lt;p&gt;It&#39;s hard to say that this kind of thing is practical: is putting little photos in paper notebooks &#39;practical&#39;? The whole exercise is sentimental and psychological. The prints are tiny and the printer takes a good 45 seconds to make them. They&#39;re kind of expensive. It usually requires a minute of futzing to connect.&lt;/p&gt;&lt;p&gt;But I&#39;ve used &lt;a href=https://www.snailjet.com/ &gt;snailjet&lt;/a&gt; for years - a service that lets you send a postcard with any photo, straight from your phone, for $1.41. Is surprising a friend with an old photo worth $1.41? Obviously.&lt;/p&gt;&lt;p&gt;Have I gotten some joy from buying a ~$110 printer to decorate my little paper notebooks? Definitely. Someday I&#39;ll read the notes that I&#39;m writing this year and be nostalgic for this phase of life, and it&#39;ll be fun to see how I was doing.&lt;/p&gt;&lt;hr class=footnotes-sep&gt;&lt;section class=footnotes&gt;&lt;ol class=footnotes-list&gt;&lt;li class=footnote-item id=fn1&gt;&lt;p&gt;I bought my wooden boxes back when they were $35. I don&#39;t know if I&#39;ll keep buying them now that they&#39;re $50: &lt;a href=https://macwright.com/2026/07/24/printing-for-journals.html#fnref1 class=footnote-backref&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=footnote-item id=fn2&gt;&lt;p&gt;AirPods work flawlessly because they&#39;re cheating with a proprietary Apple-only protocol. &lt;a href=https://macwright.com/2026/07/24/printing-for-journals.html#fnref2 class=footnote-backref&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Recently</title>
    <link href="https://macwright.com/2026/07/01/recently.html"/>
    <updated>2026-07-01T00:00:00Z</updated>
    <id>https://macwright.com/2026/07/01/recently.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/nk73DBTnLv-640.webp 640w, https://macwright.com/img/nk73DBTnLv-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Street art in Porto, probably commentary on tourism&quot; decoding=async height=720 loading=lazy sizes=auto src=https://macwright.com/img/nk73DBTnLv-640.jpeg srcset=&quot;https://macwright.com/img/nk73DBTnLv-640.jpeg 640w, https://macwright.com/img/nk73DBTnLv-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;June was a big month: I went to Porto &amp; Lisbon, and had a lot of life stuff happen. I&#39;ll get into the trip once I get my rolls of film developed. Three rolls at a new photo developing place: fingers crossed!&lt;/p&gt;&lt;h2 id=reading&gt;Reading&lt;/h2&gt;&lt;p&gt;I finished reading &lt;a href=https://macwright.com/2026/06/06/intermezzo&gt;Intermezzo&lt;/a&gt; (&lt;a href=https://macwright.com/2026/05/05/intermezzo-bag&gt;of the bag&lt;/a&gt;) and it was fantastic. I&#39;ve always liked Sally Rooney&#39;s books but this was the one where the writing style really clicked.&lt;/p&gt;&lt;p&gt;Also, &lt;a href=https://macwright.com/2026/06/13/the-vegan&gt;The Vegan&lt;/a&gt;. Meh.&lt;/p&gt;&lt;p&gt;I read &lt;a href=https://www.lrb.co.uk/the-paper/v48/n11/patricia-lockwood/diary&gt;Patricia Lockwood&#39;s &#39;A Tradcath Wedding&#39;&lt;/a&gt; via &lt;a href=https://buttondown.com/perfectsentences/archive/perfect-sentences-183/ &gt;Perfect Sentences&lt;/a&gt; but found an additional sentence to be perfect:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Whenever they rang the chimes, which seemed to be every four seconds or so, a toddler screamed ‘WOW A BELL!’ to the visible displeasure of the celebrants – though isn’t the entire point of the ritual that you’re supposed to be that awestruck every time?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Patricia Lockwood is the funniest writer I&#39;ve read.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;You cannot grow a pumpkin, but you can improve the odds.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;a href=https://taylor.town/pumpkin&gt;Taylor&#39;s &#39;You Cannot Grow a Pumpkin&#39;&lt;/a&gt; is a fantastic little prose poem of sorts.&lt;/p&gt;&lt;h2 id=watching&gt;Watching&lt;/h2&gt;&lt;p&gt;I&#39;m always trying to find a &#39;romp&#39; when it comes to movies. Something lighthearted, pretty easy to watch, so on. We watched &lt;a href=https://letterboxd.com/film/the-pink-panther/ &gt;The Pink Panther&lt;/a&gt; this month and it is a perfect example of the genre. The inspiration for the watch came from the &lt;em&gt;hamburger scene&lt;/em&gt;:&lt;/p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/Z6oeAdemFZw&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;But there&#39;s so much more of this kind of thing in the movie, little bits and physical comedy.&lt;/p&gt;&lt;p&gt;Oh, and I also watched &lt;em&gt;The Departed&lt;/em&gt;, which everyone says is good and is good.&lt;/p&gt;&lt;h2 id=elsewhere&gt;Elsewhere&lt;/h2&gt;&lt;p&gt;I wrote &lt;a href=https://macwright.com/2026/06/24/accidental-anonymity&gt;Accidental Anonymity&lt;/a&gt; on the micro blog, and it stirred up some discussion &lt;a href=https://bsky.app/profile/macwright.com/post/3mp22c3wo4s2j&gt;on Bluesky&lt;/a&gt; as well as at least one &lt;a href=https://lukealexdavis.co.uk/posts/a-response-to-accidental-anonymity/ &gt;blog response&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;It was kind of an angry piece, as I said at the start. I will keep trying to stay out of the trap of writing about that topic all the time.&lt;/p&gt;&lt;h2 id=listening&gt;Listening&lt;/h2&gt;&lt;p&gt;The only album I bought this month was &lt;a href=https://thatbandofhers.bandcamp.com/album/songs-of-hers&gt;Songs of Her&#39;s by Her&#39;s&lt;/a&gt;, which is fine. I wish I had something more profound to say about it given how the band met &lt;a href=https://en.wikipedia.org/wiki/Her%27s#Deaths&gt;an unbelievably tragic end&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Maybe more influential than that was &lt;a href=https://know-your-enemy-1682b684.simplecast.com/episodes/pope-leo-xivs-magnifica-humanitas-w-jack-hanson-hXM7gedP&gt;Know Your Enemy&#39;s recent podcasts&lt;/a&gt;, especially this one about the pope&#39;s encyclical. I&#39;ve really grown to love that podcast, and it has been part of me intellectually reconnecting with, but not readopting, Catholicism.&lt;/p&gt;&lt;h2 id=art&gt;Art&lt;/h2&gt;&lt;p&gt;Here&#39;s some art I really liked this month:&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/41TMJ-HlOl-640.webp 640w, https://macwright.com/img/41TMJ-HlOl-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&#39;David Hockney&amp;#39;s &quot;Picture Emphasizing Stillness&quot;&#39; decoding=async height=1085 loading=lazy sizes=auto src=https://macwright.com/img/41TMJ-HlOl-640.jpeg srcset=&quot;https://macwright.com/img/41TMJ-HlOl-640.jpeg 640w, https://macwright.com/img/41TMJ-HlOl-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;This &lt;a href=https://www.thedavidhockneyfoundation.org/artwork/3588&gt;Hockney piece called &#39;Picture Emphasizing Stillness&#39;&lt;/a&gt; from 1962 was at the MAC/CCB museum in Lisbon.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/ZnBmMf9KtY-640.webp 640w, https://macwright.com/img/ZnBmMf9KtY-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Tomas Sanchez&quot; decoding=async height=1585 loading=lazy sizes=auto src=https://macwright.com/img/ZnBmMf9KtY-640.jpeg srcset=&quot;https://macwright.com/img/ZnBmMf9KtY-640.jpeg 640w, https://macwright.com/img/ZnBmMf9KtY-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;Via &lt;a href=https://bsky.app/profile/tbabb.bsky.social/post/3mowjhmjldk2g&gt;Tim Babb&lt;/a&gt;, I enjoyed finding &lt;a href=https://www.tomassanchez.com/ &gt;Tomás Sánchez&lt;/a&gt;&#39;s work.&lt;/p&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Recently</title>
    <link href="https://macwright.com/2026/06/04/recently.html"/>
    <updated>2026-06-04T00:00:00Z</updated>
    <id>https://macwright.com/2026/06/04/recently.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/bz_ujWn6NR-640.webp 640w, https://macwright.com/img/bz_ujWn6NR-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;A scene from the cycling path in Switzerland&quot; decoding=async height=720 loading=lazy sizes=auto src=https://macwright.com/img/bz_ujWn6NR-640.jpeg srcset=&quot;https://macwright.com/img/bz_ujWn6NR-640.jpeg 640w, https://macwright.com/img/bz_ujWn6NR-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;figcaption&gt;A section of trail in Switzerland&lt;/figcaption&gt;&lt;p&gt;May was a big month! The highlight was a cycling trip around Lake Konstanz, passing through Konstanz, Bregenz Austria, Stein am Rhein in Switzerland, and Meersburg.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/ZTUnzBIlNv-640.webp 640w, https://macwright.com/img/ZTUnzBIlNv-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Scene from Bodenseeufer in Germany&quot; decoding=async height=720 loading=lazy sizes=auto src=https://macwright.com/img/ZTUnzBIlNv-640.jpeg srcset=&quot;https://macwright.com/img/ZTUnzBIlNv-640.jpeg 640w, https://macwright.com/img/ZTUnzBIlNv-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;figcaption&gt;A farm in Bodenseeufer, Germany&lt;/figcaption&gt;&lt;p&gt;We passed a lot of operating agriculture, growing apples, strawberries, and other fruits.&lt;/p&gt;&lt;p&gt;The route is very continuous, mostly flat, and popular with retirees. It&#39;s very idyllic riding: lots of protected and separated lanes. There are some interesting regional differences in the riding. Swiss drivers were noticeably more aggressive and gave a lot less space to bikes, but the Swiss infrastructure was really nice when it was off-road. Also it was interesting to see that the vast majority of other cyclists on most of the route were on ebikes. This only changed when we were close to hip cities and we&#39;d notice more young people on high-end road bikes.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/hVrRc6oYRb-640.webp 640w, https://macwright.com/img/hVrRc6oYRb-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Münster St. Maria und Markus&quot; decoding=async height=961 loading=lazy sizes=auto src=https://macwright.com/img/hVrRc6oYRb-640.jpeg srcset=&quot;https://macwright.com/img/hVrRc6oYRb-640.jpeg 640w, https://macwright.com/img/hVrRc6oYRb-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;figcaption&gt;Münster St. Maria und Markus&lt;/figcaption&gt;&lt;p&gt;Taking the ride in 40-60 mile days left a lot of room for checking out the towns, food, and views. It was very easy being vegan in Germany, and significantly harder in Austria and Switzerland. Some highlights:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;KERVAN Imbiss in Konstanz: cheap, delicious vegan kebabs&lt;/li&gt;&lt;li&gt;Insel Mainau: beautiful botanical garden on an island, recommended to follow up with Biergarten St. Katharina, a beer garden in the woods&lt;/li&gt;&lt;li&gt;The Pile Dwelling Museum in Uhldingen-Mühlhofen-Unteruhldingen: very aesthetic museum plus recreations of pile dwellings&lt;/li&gt;&lt;li&gt;In Zurich: the Swiss National Museum was gigantic and featured the best-integrated high-tech exhibits I&#39;ve seen&lt;/li&gt;&lt;li&gt;On the final evening we took a cable car up to Panorama Restaurant Falsenegg and it delivered on the name&lt;/li&gt;&lt;/ul&gt;&lt;h2 id=reading&gt;Reading&lt;/h2&gt;&lt;p&gt;I read &lt;a href=https://macwright.com/2026/05/24/the-technological-republic&gt;The Technological Republic&lt;/a&gt; the book by Alex Karp and one of his employees. It was terrible as expected: part sales-pitch, part standard-issue MAGA cultural critique, part implied defense of just war. The last part was the most interesting to me, because Karp spends so much time grandstanding about his intellectual background and telling protestors to quiet down and have a real discussion, and this book confirms that he can&#39;t actually have that conversation. He has nothing to say about the moral complexity or justification of war.&lt;/p&gt;&lt;p&gt;It&#39;s surprising that the only critical reviews I could find of the book are from other right-leaning sources. &lt;a href=https://providencemag.com/2025/05/the-technological-republic/ &gt;Providence&lt;/a&gt;, an American Christian Realist magazine, found it too weak. The &lt;a href=https://www.independent.org/tir/2025-fall/the-technological-republic/ &gt;Independent Institute&lt;/a&gt; didn&#39;t like it based on their Libertarian principles. I guess it&#39;s just so far from any left-wing thought that nobody bothers to read it.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Democratic governance rests on a bargain so old we’ve forgotten it’s a bargain at all. The governed have something the governors need: labor, tax revenue, military service, consumer spending. This dependency is the source of democratic leverage. The whole system functions because power is distributed, and it’s distributed because the people at the top need something from the people at the bottom.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I&#39;m still trying to avoid writing about AI, but &lt;a href=https://www.owenmcgrann.com/p/the-dead-economy-theory&gt;this piece by Owen McGrann&lt;/a&gt; was worth the time. It takes a lot of points that I&#39;ve long agreed with and stitches them together into a coherent but miserable whole.&lt;/p&gt;&lt;p&gt;On the bright side, I&#39;m just finishing reading &lt;a href=https://en.wikipedia.org/wiki/Intermezzo_(novel)&gt;Intermezzo&lt;/a&gt; and it&#39;s &lt;em&gt;wonderful&lt;/em&gt;. A totally rejuvenating and inspiring novel.&lt;/p&gt;&lt;h2 id=listening&gt;Listening&lt;/h2&gt;&lt;p&gt;Cheekface is a ~9 year old band in the tradition of Cake, They Might Be Giants, etc. They&#39;ve got some great hits - part sardonic and ironic, part euphoric and ultra-light pop choruses.&lt;/p&gt;&lt;iframe seamless src=&quot;https://bandcamp.com/EmbeddedPlayer/album=1367505248/size=small/bgcol=ffffff/linkcol=333333/track=3286354914/transparent=true/&quot; style=border:0;width:100%;height:42px&gt;&lt;a href=https://cheekface.bandcamp.com/album/its-sorted&gt;It&#39;s Sorted by Cheekface&lt;/a&gt;&lt;/iframe&gt;&lt;h2 id=watching&gt;Watching&lt;/h2&gt;&lt;p&gt;Adam Neely&#39;s talking about AI and music again, and like always, it&#39;s very worth watching. The generational element is especially interesting here: just like the &lt;a href=https://www.404media.co/ucf-ai-commencement-speaker-booed/ &gt;commencement speakers&lt;/a&gt; getting booed, there&#39;s a consistent theme where Gen Z (and millennials, to some extent) are rejecting the AI hype while older generations are optimistic and coincidentally in a position to benefit from it.&lt;/p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/EfeGc02nzC4&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Intermezzo bag</title>
    <link href="https://macwright.com/2026/05/05/intermezzo-bag.html"/>
    <updated>2026-05-05T00:00:00Z</updated>
    <id>https://macwright.com/2026/05/05/intermezzo-bag.html</id>
    <content type="html">&lt;p&gt;I&#39;ve been reading the new Sally Rooney novel, &lt;a href=https://en.wikipedia.org/wiki/Intermezzo_(novel)&gt;Intermezzo&lt;/a&gt;. It&#39;s really beautiful. The perfect kind of novel to read slowly. She manages to write prose that&#39;s engaging at the micro and macro levels - beautiful sentences, as well as lovely long narrative arcs. I&#39;ve been trying to read the dialog with an Irish accent in my head.&lt;/p&gt;&lt;p&gt;It&#39;s a good book for reading in a park, and in Brooklyn we have a lot of nice little neighborhood parks. There&#39;s one right next to my apartment, public albeit under a confusing non-city ownership. Getting back from a long day of working on the internet, I want to throw that book in a bag and spend some time reading. But my bags are all the wrong size, too small or so large that the book lays horizontally at the bottom, which annoys me.&lt;/p&gt;&lt;p&gt;Following along with &lt;a href=https://cwandt.com/ &gt;CW&amp;T&lt;/a&gt;&#39;s newsletter, &lt;a href=https://kevinlynagh.com/side-table/ &gt;Kevin Lynagh&lt;/a&gt;, &lt;a href=&quot;https://www.youtube.com/watch?v=UcqHdPFFuh8&quot;&gt;Casey Neistat&lt;/a&gt;, and others, I&#39;ve gained an appreciation of people who create their own tools in real life, not just on the computer.&lt;/p&gt;&lt;p&gt;A sewing machine has unlocked a new domain of life where I feel free to do that. It&#39;s both supposedly practical and a crucial emotional-life crutch to be able to make something tangible as a respite from the virtual.&lt;/p&gt;&lt;p&gt;So I made a bag just for this one book. The Intermezzo bag. The dimensions are just based on fitting this one item, a book that I&#39;ll finish in a 120 pages anyway, and then it&#39;ll be more of a toss-up which books it will fit.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/JAWWAKuNsE-640.webp 640w, https://macwright.com/img/JAWWAKuNsE-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Planning the bag&quot; decoding=async height=1462 loading=lazy sizes=auto src=https://macwright.com/img/JAWWAKuNsE-640.jpeg srcset=&quot;https://macwright.com/img/JAWWAKuNsE-640.jpeg 640w, https://macwright.com/img/JAWWAKuNsE-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;I did a minimum of planning for this project: the book, plus some tolerance, plus some &lt;a href=https://www.are.na/tom-macwright/sewing-inspo-sxtvnuqkkjc&gt;reference points&lt;/a&gt; for details. The idea was to make the bag flat, unlike other things I&#39;ve made, in the &lt;a href=https://outershell.com/products/magic-musette&gt;musette&lt;/a&gt; genre of bag shapes.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/4WTFNNn36p-640.webp 640w, https://macwright.com/img/4WTFNNn36p-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=Attachments decoding=async height=960 loading=lazy sizes=auto src=https://macwright.com/img/4WTFNNn36p-640.jpeg srcset=&quot;https://macwright.com/img/4WTFNNn36p-640.jpeg 640w, https://macwright.com/img/4WTFNNn36p-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;I had some accessory rope that I wanted to use to make a sort of sacoche which I hadn&#39;t gotten to yet, and some D-rings from previous projects. The main material is the same from the &lt;a href=https://macwright.com/2025/09/27/porteur-bag-2&gt;porteur bag 2&lt;/a&gt; and &lt;a href=https://bsky.app/profile/macwright.com/post/3lhabemdm6c2z&gt;original frame bag&lt;/a&gt;: &lt;a href=&quot;https://rockywoods.com/products/eco200?variant=45810546409756&quot;&gt;ECOPAK 200D&lt;/a&gt; from Rockywoods. Unbelievably overkill for this project, but I like it and the way it holds shape.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/iRHLPpaIbC-640.webp 640w, https://macwright.com/img/iRHLPpaIbC-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=Knot decoding=async height=959 loading=lazy sizes=auto src=https://macwright.com/img/iRHLPpaIbC-640.jpeg srcset=&quot;https://macwright.com/img/iRHLPpaIbC-640.jpeg 640w, https://macwright.com/img/iRHLPpaIbC-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/riHplgyty_-640.webp 640w, https://macwright.com/img/riHplgyty_-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Knot 2&quot; decoding=async height=960 loading=lazy sizes=auto src=https://macwright.com/img/riHplgyty_-640.jpeg srcset=&quot;https://macwright.com/img/riHplgyty_-640.jpeg 640w, https://macwright.com/img/riHplgyty_-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;The internet is so good for learning knots, I used &lt;a href=https://www.animatedknots.com/ &gt;animated knots.com&lt;/a&gt; for these. The important one is the &lt;a href=https://www.animatedknots.com/adjustable-grip-hitch-knot&gt;adjustable grip hitch&lt;/a&gt;, which makes the strap adjustable. Works super well, and it&#39;s nice to have one less piece of &#39;hardware&#39; and instead just rely on the physics and friction of knots.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/v7QnVQtz4E-640.webp 640w, https://macwright.com/img/v7QnVQtz4E-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Bag edited&quot; decoding=async height=1280 loading=lazy sizes=auto src=https://macwright.com/img/v7QnVQtz4E-640.jpeg srcset=&quot;https://macwright.com/img/v7QnVQtz4E-640.jpeg 640w, https://macwright.com/img/v7QnVQtz4E-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;The quiet drama was whether it would actually fit the book, which is not an easy thing to guarantee because flexible fabric and uncertain seam tolerances add up in a fuzzy way during a project like this.&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/8RIDBbLUFj-640.webp 640w, https://macwright.com/img/8RIDBbLUFj-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Book in the park&quot; decoding=async height=720 loading=lazy sizes=auto src=https://macwright.com/img/8RIDBbLUFj-640.jpeg srcset=&quot;https://macwright.com/img/8RIDBbLUFj-640.jpeg 640w, https://macwright.com/img/8RIDBbLUFj-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Recently</title>
    <link href="https://macwright.com/2026/05/04/recently.html"/>
    <updated>2026-05-04T00:00:00Z</updated>
    <id>https://macwright.com/2026/05/04/recently.html</id>
    <content type="html">&lt;p&gt;I spent a lot of time outside in April. The first two weekends I did long bike rides: from Brooklyn to Tarrytown along the &lt;a href=https://en.wikipedia.org/wiki/Croton_Aqueduct&gt;Old Croton Aqueduct trail&lt;/a&gt;, and out to Rockaway Beach via the Marine Parkway Bridge &amp; Cross Bay Memorial Bridge.&lt;/p&gt;&lt;p&gt;Then, I ran the Brooklyn Experience Half Marathon. I wrote some &lt;a href=https://macwright.com/2026/04/26/brooklyn-experience-half-marathon&gt;notes about the experience over in /micro&lt;/a&gt;. I properly trained for it this time, and it felt good and was pretty fast: shaved five minutes off my previous record.&lt;/p&gt;&lt;p&gt;And then, the Great Saunter…&lt;/p&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/fkELUsCgYV-640.webp 640w, https://macwright.com/img/fkELUsCgYV-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Great Saunter&quot; decoding=async height=632 loading=lazy sizes=auto src=https://macwright.com/img/fkELUsCgYV-640.jpeg srcset=&quot;https://macwright.com/img/fkELUsCgYV-640.jpeg 640w, https://macwright.com/img/fkELUsCgYV-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;The &lt;a href=https://shorewalkers.org/great-saunter/ &gt;Great Saunter&lt;/a&gt; is a full loop around Manhattan. The route is 32 miles but it took us 33 with GPS jitter and detours. Ten hours and forty-three minutes. It was very difficult, in a lot of ways tougher than the half-marathon in terms of the stress it puts on the body.&lt;/p&gt;&lt;p&gt;I&#39;m getting more comfortable with longer endurance events, but still have no &lt;a href=https://macwright.com/2025/11/02/fewer-people-should-run-marathons&gt;interest in running a marathon&lt;/a&gt;, and definitely no ultramarathons. A 200-300km &lt;a href=https://rusa.org/ &gt;randonneuring&lt;/a&gt; ride though could be in the cards.&lt;/p&gt;&lt;h2 id=reading&gt;Reading&lt;/h2&gt;&lt;p&gt;I read &lt;a href=https://macwright.com/2026/04/19/origins-of-efficiency&gt;The Origins of Efficiency&lt;/a&gt; by Brian Potter, the author of Construction Physics. I learned that I like his blogging better than his book-length writing: for example, this month&#39;s article &lt;a href=https://www.construction-physics.com/p/helium-is-hard-to-replace&gt;Helium is Hard to Replace&lt;/a&gt; is really great, with understandable and fascinating charts and examples.&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;there’s a final layer to this argument that nobody’s quite articulated yet. product quality improvements, at the frontier, are not bounded by how fast you can write code. they’re bounded by how fast you can come up with ideas good enough to push the frontier.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I liked &lt;a href=https://ethanding.substack.com/p/claude-code-is-not-making-your-product&gt;claude code is not making your product better&lt;/a&gt;, and think it perfectly rhymes with &lt;a href=https://cutlefish.substack.com/p/tbm-383-maximizers-vs-focusers&gt;John Cutler&#39;s post about maximizers vs. focusers&lt;/a&gt; which isn&#39;t directly about AI. Maximizers are overrepresented in the top rungs on tech companies, people who are marked by opportunistic, experimental thinking, and for them the ability to implement a ton of features really quickly even at low quality is a gift. Their ability to enact their will was previously gated by the people doing the coding and designing, who mostly dislike pushing low-quality work. Now it isn&#39;t, as much.&lt;/p&gt;&lt;p&gt;I took the time to thoroughly read through &lt;a href=https://mathiasbynens.be/notes/javascript-unicode&gt;JavaScript has a Unicode Problem&lt;/a&gt; and &lt;a href=https://mathiasbynens.be/notes/javascript-encoding&gt;JavaScript’s internal character encoding: UCS-2 or UTF-16?&lt;/a&gt; They&#39;re from 2013 but still relevant, and really engaging from a technical perspective if you are very interested in text encoding and also JavaScript, which I am.&lt;/p&gt;&lt;h2 id=listening&gt;Listening&lt;/h2&gt;&lt;iframe seamless src=&quot;https://bandcamp.com/EmbeddedPlayer/album=906072634/size=small/bgcol=ffffff/linkcol=333333/track=2730704415/transparent=true/&quot; style=border:0;width:100%;height:42px&gt;&lt;a href=https://intlanthem.bandcamp.com/album/extra-stars&gt;Extra Stars by Gregory Uhlmann&lt;/a&gt;&lt;/iframe&gt;&lt;p&gt;An excellent month for music. The new Gregory Uhlman (guitarist for SML) album.&lt;/p&gt;&lt;iframe seamless src=&quot;https://bandcamp.com/EmbeddedPlayer/album=534870983/size=small/bgcol=ffffff/linkcol=0687f5/track=1270560676/transparent=true/&quot; style=border:0;width:100%;height:42px&gt;&lt;a href=https://mammalhands.bandcamp.com/album/circadia&gt;Circadia by Mammal Hands&lt;/a&gt;&lt;/iframe&gt;&lt;p&gt;New Mammal Hands, too.&lt;/p&gt;&lt;iframe seamless src=&quot;https://bandcamp.com/EmbeddedPlayer/album=2152818959/size=small/bgcol=ffffff/linkcol=333333/track=1353668455/transparent=true/&quot; style=border:0;width:100%;height:42px&gt;&lt;a href=https://doshismailyyoung.bandcamp.com/album/dosh-ismaily-young&gt;Dosh, Ismaily, Young by Dosh, Ismaily, Young&lt;/a&gt;&lt;/iframe&gt;&lt;p&gt;New album from Dosh, Ismaily, Young. Dosh who you might know from being Andrew Bird&#39;s drummer at one point (after Kevin O&#39;Donnell and before Griffin Goldsmith).&lt;/p&gt;&lt;iframe seamless src=&quot;https://bandcamp.com/EmbeddedPlayer/album=2598115928/size=small/bgcol=ffffff/linkcol=333333/track=1973222878/transparent=true/&quot; style=border:0;width:100%;height:42px&gt;&lt;a href=https://thebadplus.bandcamp.com/album/complex-emotions&gt;Complex Emotions by The Bad Plus&lt;/a&gt;&lt;/iframe&gt;&lt;p&gt;The Bad Plus&#39;s final album from back in 2024! They&#39;re on a farewell tour right now, all things must come to an end.&lt;/p&gt;&lt;h2 id=watching&gt;Watching&lt;/h2&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/htYh-Tq7ZBI&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;This was a great long watch on some math concepts that I&#39;ve had to re-learn a bunch of times, and it was the first time that the idea of a quaternion really clicked for me. &lt;a href=https://www.youtube.com/@Acegikmo&gt;Freya&#39;s channel&lt;/a&gt; has a lot more great videos.&lt;/p&gt;&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube-nocookie.com/embed/VXtgNphtmOA&quot; frameborder=&quot;0&quot; allow=&quot;accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture&quot; allowfullscreen&gt;&lt;/iframe&gt;&lt;p&gt;Jamelle Bouie&#39;s channel is consistently the best video commentary on the details of US politics I can find.&lt;/p&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>Eleventy</title>
    <link href="https://macwright.com/2026/04/17/eleventy.html"/>
    <updated>2026-04-17T00:00:00Z</updated>
    <id>https://macwright.com/2026/04/17/eleventy.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/h1U9Wyy0Gr-640.webp 640w, https://macwright.com/img/h1U9Wyy0Gr-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;11ty in a pastoral setting&quot; decoding=async height=900 loading=lazy sizes=auto src=https://macwright.com/img/h1U9Wyy0Gr-640.jpeg srcset=&quot;https://macwright.com/img/h1U9Wyy0Gr-640.jpeg 640w, https://macwright.com/img/h1U9Wyy0Gr-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;When I started this blog in &lt;a href=https://macwright.com/2011/07/04/hello-internet&gt;2011&lt;/a&gt;, I built it using &lt;a href=https://jekyllrb.com/ &gt;Jekyll&lt;/a&gt;. Jekyll served me well for fifteen years. It was fast enough, and though it would take me an hour or two to get the system reinstalled when I switched laptops, it mostly just worked. But late last year, I was in the midst of updating all of my local installations to the latest versions of their runtimes, and when I tried to update Jekyll to Ruby 4, it wouldn&#39;t go. The Jekyll project did eventually &lt;a href=https://github.com/jekyll/jekyll/pull/9920&gt;merge support for Ruby 4 (a one-line fix) in February &lt;/a&gt;, but I took this as a sign to get going.&lt;/p&gt;&lt;p&gt;I probably could have kept on with Jekyll for another few years, but there&#39;s no denying the project has &lt;a href=https://github.com/jekyll/jekyll/graphs/contributors&gt;slowed down&lt;/a&gt;, and my &lt;a href=https://macwright.com/2016/05/03/the-featherweight-website&gt;optimization stack for this blog&lt;/a&gt; has gotten a little more complicated - it&#39;d be nice to use a tool more optimization-minded and simplify my toolchain.&lt;/p&gt;&lt;p&gt;So: I switched to &lt;a href=https://www.11ty.dev/ &gt;11ty&lt;/a&gt;. Or, as it is about to be called &lt;a href=https://www.kickstarter.com/projects/fontawesome/build-awesome-pro&gt;Build Awesome&lt;/a&gt;. I switched and started to write this blog post before all of the hubbub: I have some thoughts, but that&#39;s not the point.&lt;/p&gt;&lt;h3 id=why-eleventy-for-macwright-com&gt;Why eleventy for macwright.com?&lt;/h3&gt;&lt;p&gt;The 800 pound gorilla is &lt;a href=https://astro.build/ &gt;Astro&lt;/a&gt;, not Eleventy. There are lots of other static site generators, like &lt;a href=https://github.com/jaspervdj/hakyll&gt;hakyll&lt;/a&gt; (in Haskell) or &lt;a href=https://github.com/bearcove/dodeca&gt;dodeca&lt;/a&gt; (in Rust). I could build one myself, as many have before.&lt;/p&gt;&lt;p&gt;For this site, I don&#39;t have any other stakeholders. I don&#39;t have to onboard anyone to new tech, or impress anyone with my decisions. There are a few simple priorities for this website:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Simplicity&lt;/li&gt;&lt;li&gt;Longevity&lt;/li&gt;&lt;li&gt;Speed&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;I care about both internal and external simplicity: both the simplicity of the API as well as the implementation. This is because for any tool, I expect it to break, and I want to be able to open it up and find the problem. It&#39;s also a key factor because complex projects are dramatically harder to maintain, so they tend to have lower longevity if they don&#39;t achieve dominance.&lt;/p&gt;&lt;p&gt;Longevity is hard to predict. The &lt;a href=https://en.wikipedia.org/wiki/Lindy_effect&gt;Lindy Effect&lt;/a&gt; is a good shortcut:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;the future life expectancy of some non-perishable thing, like a technology or an idea, is proportional to its current age&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;But in tech, the newest solution could also be the best one. You have to do a little bit of predicting. Large contributor bases are also indicative, but only if they represent multiple entities. A project with lots of contributors from the same company can get quiet very quickly if they lay everyone off. It also counts if the project has survived multiple changes in control and power.&lt;/p&gt;&lt;p&gt;For this website, I care more about end-user speed than development speed. Whether it takes 100ms to preview a Markdown change for me doesn&#39;t matter as much as how long a pageload takes for a reader. Most static site generators are pretty fast if you don&#39;t do silly things anyway. In my experience, SSGs that were &quot;slow to build&quot; had nested loops that soaked up most of the time.&lt;/p&gt;&lt;p&gt;Eleventy checks enough of these boxes. The contributor base is quite small, but Zach is very persistent and has been through it all. It&#39;s both fast to build websites, and has lots of tools for optimizing websites - tools that let me replace custom code I had written for macwright.com. And, in sharp contrast to Astro, it is written with internal simplicity as a priority. It is both a small project in terms of lines-of-code, and it is also not dependent on mega-dependencies. A fresh install of Astro includes &lt;a href=&quot;https://npmgraph.js.org/?q=astro@6.1.5&quot;&gt;246 dependencies, including Vite and esbuild&lt;/a&gt;. Eleventy includes about half - &lt;a href=&quot;https://npmgraph.js.org/?q=@11ty/eleventy@3.1.5&quot;&gt;116 dependencies&lt;/a&gt;, and they weigh 14.6MB instead of 87.9MB.&lt;/p&gt;&lt;p&gt;I think Eleventy could be even simpler (and &lt;a href=https://github.com/11ty/gray-matter/pull/2&gt;made a small PR in that direction while writing this post&lt;/a&gt;) by cutting some old dependencies with unnecessary micro-dependencies in them. The &lt;a href=https://e18e.dev/ &gt;e18e project&lt;/a&gt; to remove and shrink dependencies is so needed!&lt;/p&gt;&lt;h3 id=ssgs-are-a-tough-way-to-make-a-living&gt;SSGs are a tough way to make a living&lt;/h3&gt;&lt;p&gt;Of course, there&#39;s the news: &lt;a href=https://www.11ty.dev/blog/build-awesome/ &gt;Eleventy is now Build Awesome&lt;/a&gt;. This comes on the tails of lots of similar announcements from other projects:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=https://astro.build/blog/joining-cloudflare/ &gt;Cloudflare acquired Astro&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://www.netlify.com/press/netlify-acquires-gatsby-inc-to-accelerate-adoption-of-composable-web-architectures/ &gt;Netlify acquired Gatsby&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://remix.run/blog/remixing-shopify&gt;Shopify acquired Remix&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://vercel.com/blog/nuxtlabs-joins-vercel&gt;Vercel acquired Nuxt&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=https://cmscritic.com/sanity-acquires-begin-team-aims-to-accelerate-the-evolution-of-its-content-operating-system&gt;Sanity acquired Begin&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Because these are open source projects, the word &quot;acquired&quot; deserves an asterisk: usually they&#39;re hiring the team, maybe getting the trademark, and whatever business lines were there.&lt;/p&gt;&lt;p&gt;Zach got a bit of heat for this move. I agree that &#39;Build Awesome&#39; sounds millenial and Eleventy was a cooler name. The rebrand was odd.&lt;/p&gt;&lt;p&gt;But overall, I get it. You can&#39;t slowly trickle out a big strategy and product launch and consult everyone. Eleventy fits fairly well with the rest of the Web Awesome products: icons, web components, and a static site builder. They&#39;re all good web tools in the traditionalist rather than frontend-maximalist vein.&lt;/p&gt;&lt;p&gt;I think as we&#39;ve seen, it&#39;s also extraordinarily difficult to monetize low-level tooling, in large part because every developer is ready to start building their own SSG for any reason or no reason at all because it sounds like a fun side-project. You can monetize &lt;em&gt;higher-level&lt;/em&gt; content tooling - &lt;a href=https://getkirby.com/ &gt;Kirby&lt;/a&gt;, &lt;a href=https://www.sanity.io/ &gt;Sanity&lt;/a&gt;, and a few other site generators with a CMS component have done that and built small, sustainable businesses. But something in the exact shape of Eleventy doesn&#39;t work as a small product business. You&#39;d have to do services, at the bare minimum.&lt;/p&gt;&lt;p&gt;So, the outcomes are kind of like:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;They get acquired by some large, possibly public company as a way to increase the platform for their hosting / CDN product. This is the fate of Astro, Nuxt, Gatsby, Remix, and to some extent, Begin. Jekyll was this from the start: it was created by &lt;a href=https://en.wikipedia.org/wiki/Tom_Preston-Werner&gt;Tom Preston-Warner&lt;/a&gt; at GitHub and was the jet fuel for making &lt;a href=https://docs.github.com/en/pages&gt;GitHub Pages&lt;/a&gt; a success.&lt;/li&gt;&lt;li&gt;The maintainer never goes full time and has some lightweight day job or indirect way of making money. This I also heavily associate with the pleasure of living in a country with a strong welfare state and affordable healthcare. I really appreciate how much long-term, high-quality software comes out of this scenario but cannot emphasize how bad it is to buy your healthcare on the exchanges every month.&lt;/li&gt;&lt;li&gt;They attempt to build a company around it, directly related to the tool. Remix did this early on, selling licenses, and Astro attempted to launch some products. Eleventy is trying this out, in combination with launching a CMS and some other features.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;It&#39;s not easy: you can&#39;t achieve #2 if you live in America and have a family, and #1 is perhaps an &#39;ignorance is bliss&#39; kind of solution in that open source isn&#39;t really sustainable if it&#39;s only a loss-leader.&lt;/p&gt;&lt;h3 id=eleventy-so-far&gt;Eleventy so far&lt;/h3&gt;&lt;p&gt;So anyway, I&#39;ve been using Eleventy since January, how is it going?&lt;/p&gt;&lt;p&gt;Mostly good! Some highlights include using the &lt;a href=https://www.11ty.dev/docs/plugins/image/ &gt;Image plugin&lt;/a&gt; to optimize my images even more than they used to be optimized, and pulling HTML minification straight into the build process with a little optimize plugin. Building the site is a bit faster than it used to be, and using Eleventy&#39;s &lt;a href=https://www.11ty.dev/docs/data-template-dir/ &gt;powerful-but-confusing&lt;/a&gt; directory data files, I&#39;ve been able to simplify each blog post, using directories instead of frontmatter for categories.&lt;/p&gt;&lt;p&gt;Templating is fun: using &lt;a href=https://vento.js.org/ &gt;Vento&lt;/a&gt; templates is mostly great because they let me write arbitrary JavaScript in templates. And unlike Liquid, they don&#39;t quietly fail.&lt;/p&gt;&lt;p&gt;&lt;a href=https://www.11ty.dev/docs/languages/webc/ &gt;WebC&lt;/a&gt; is a source of joy and pain for me. In one sense, it&#39;s an absolutely golden tool: it lets you embed components in pages with server-side rendering, automatic bundling, and excellent performance. It&#39;s simple, too! The package is &lt;a href=https://npmx.dev/package/@11ty/webc&gt;small&lt;/a&gt; because it doesn&#39;t pull in a big JavaScript transpiler like esbuild. I used WebC recently for the chart on &lt;a href=https://macwright.com/2026/04/05/in-the-atmosphere&gt;In the Atmosphere&lt;/a&gt; and the demo in &lt;a href=https://macwright.com/2026/02/22/color-dithering&gt;Color dithering&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;But there is pain, too. It&#39;s a very unique tool with lots of constraints, and if you mess something up it fails hard. The &lt;a href=https://www.11ty.dev/docs/languages/webc/ &gt;documentation&lt;/a&gt; merely gestures at its potential and leaves lots and lots of questions unanswered. I think it could be amazing and is already quite good, but it needs a lot more love, as Zach admitted in a recent talk.&lt;/p&gt;&lt;p&gt;For both WebC and Eleventy, I have mixed feelings about the &lt;a href=https://github.com/11ty/eleventy/issues/3787&gt;non-adoption of TypeScript&lt;/a&gt;. WebC had a bug that would be &lt;a href=https://github.com/11ty/webc/issues/238&gt;trivially identified by TypeScript&lt;/a&gt; or even just a linter. I think the tooling for these projects could be a bunch better.&lt;/p&gt;&lt;p&gt;But complaining is overrated: I&#39;ve been trying to &lt;a href=https://macwright.com/2026/03/26/oss-contributions&gt;contribute&lt;/a&gt; to the projects. Mostly this means &lt;a href=&quot;https://github.com/11ty/11ty-website/pulls?q=sort%3Aupdated-desc+is%3Apr+author%3Atmcw+is%3Aclosed&quot;&gt;contributing to the documentation&lt;/a&gt;, which could still use a lot of work. The commercialization of Eleventy complicates this, which is partially why I&#39;ve been stalled on documentation updates since February: it opens the question of whether there&#39;ll be some great, paid documentation contributor swooping in and making everything I do irrelevant. Maybe the Kickstarter campaign will do really well and there&#39;ll be multiple funded maintainers, or at least &lt;a href=https://www.zachleat.com/ &gt;Zach&lt;/a&gt; will be comfortably full-time. I hope that at least it frees up enough time for 11ty and all if its related projects to get lots of pull requests reviews and merged, because unfortunately the pace there has been slow.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;Should you use Eleventy? Maybe! Building a new static site generator from scratch is fun, but participating in a community and improving a popular tool is enriching in a totally different way.&lt;/p&gt;&lt;p&gt;Eleventy has a lot less buzz than Astro. And it has a lot of its own issues. But like other software, it&#39;s an expression of a vision and a bunch of values, and a lot of that resonates with me. I hope that it&#39;s the right kind of software, and I&#39;ll still be using it in 15 years.&lt;/p&gt;&lt;p&gt;Oh, and if you&#39;re excited about the Build Awesome launch, &lt;a href=https://www.kickstarter.com/projects/fontawesome/build-awesome-pro&gt;sign up for its Kickstarter&lt;/a&gt;. I&#39;ll probably chip in a few bucks too.&lt;/p&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
  <entry>
    <title>In the Atmosphere</title>
    <link href="https://macwright.com/2026/04/05/in-the-atmosphere.html"/>
    <updated>2026-04-05T00:00:00Z</updated>
    <id>https://macwright.com/2026/04/05/in-the-atmosphere.html</id>
    <content type="html">&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/T8rcvTFnCF-640.webp 640w, https://macwright.com/img/T8rcvTFnCF-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Stacked Hills 1&quot; decoding=async height=604 loading=lazy sizes=auto src=https://macwright.com/img/T8rcvTFnCF-640.jpeg srcset=&quot;https://macwright.com/img/T8rcvTFnCF-640.jpeg 640w, https://macwright.com/img/T8rcvTFnCF-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;The mascot of &lt;a href=https://atmosphereconf.org/ &gt;ATmosphereConf&lt;/a&gt; is a goose, accompanied by the motto &lt;em&gt;we can just do things&lt;/em&gt;. I thought about this line often while I was in Vancouver for the event. Everyone was active: writing, managing communities, building side projects or businesses on Bluesky, and building Bluesky itself. The energy was fertile and optimistic. Even deep critiques, like Erin Kissane&#39;s beautiful &lt;a href=https://atmosphereconf.org/event/gDELD0M&gt;Landslide&lt;/a&gt; or Blaine Cook&#39;s &lt;a href=https://atmosphereconf.org/event/rj8Xv62&gt;Software Ecologies&lt;/a&gt;, had hope that this community and technology could &#39;fix&#39; the social internet.&lt;/p&gt;&lt;p&gt;The other refrain of the conference was that Meta, Google, TikTok, and other centralized social platforms have failed, and the AT Protocol could be the key to their replacements. From my seat, the need to decentralize social media is obvious enough that I don&#39;t write about it, and the only real question is which social, financial, and technology structure is actually capable of succeeding. There have been a lot of attempts to unseat Facebook, and most have run out of cash, gotten acquired, or lost steam.&lt;/p&gt;&lt;p&gt;As I mentioned in my &lt;a href=https://macwright.com/2026/03/16/atproto.html&gt;last post about the AT Protocol&lt;/a&gt;, I&#39;ve been around long enough to have tried previous attempts to decentralize the web and defeat the giants. I&#39;ve also lived through a prior wave of open source optimism and seen how it can get weird.&lt;sup class=footnote-ref&gt;&lt;a href=https://macwright.com/2026/04/05/in-the-atmosphere.html#fn1 id=fnref1&gt;[1]&lt;/a&gt;&lt;/sup&gt; Being amongst this relatively new and energetic community gave me renewed hope for the creative and weird parts of the web, but it also made me wonder where this is all going.&lt;/p&gt;&lt;h4 id=who-is-in-this-community&gt;Who is in this community?&lt;/h4&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/DDWU8eHmS2-640.webp 640w, https://macwright.com/img/DDWU8eHmS2-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Stacked Hills 2&quot; decoding=async height=606 loading=lazy sizes=auto src=https://macwright.com/img/DDWU8eHmS2-640.jpeg srcset=&quot;https://macwright.com/img/DDWU8eHmS2-640.jpeg 640w, https://macwright.com/img/DDWU8eHmS2-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;The people who attended were more far more diverse across multiple axes than I&#39;d ever seen at a large tech-related event. To many people on the fringes, the &quot;blue&quot; in Bluesky is for liberal, and as far as I could tell it was a thoroughly left-wing culture, defined by inclusivity and respect.&lt;/p&gt;&lt;p&gt;It was also extremely dense with accomplished thinkers and programmers, like &lt;a href=https://en.wikipedia.org/wiki/Schuyler_Erle&gt;Schuyler Erle&lt;/a&gt;, who invented a lot of web mapping technology, &lt;a href=https://atmosphereconf.org/event/000Syverson&gt;Paul Syverson&lt;/a&gt;, who invented Onion Routing, &lt;a href=https://atmosphereconf.org/event/81Xovjr&gt;Mike McCue&lt;/a&gt;, who worked on Netscape Navigator, and &lt;a href=https://atmosphereconf.org/event/9q8ZX5Q&gt;Dan Abramov&lt;/a&gt;, who co-created Redux and worked on React. Smart people like this thing.&lt;/p&gt;&lt;p&gt;It also had a lot of people from specific sub-communities and people who seemed like they were from an organizing background.&lt;/p&gt;&lt;p&gt;How did everyone justify the trip to Vancouver, though?&lt;/p&gt;&lt;p&gt;Some people were operating companies built on or with AT Protocol: &lt;a href=https://www.germnetwork.com/ &gt;Germ&lt;/a&gt;, &lt;a href=https://leaflet.pub/ &gt;Leaflet&lt;/a&gt;, &lt;a href=https://www.graze.social/ &gt;Graze&lt;/a&gt;, &lt;a href=https://fedica.com/ &gt;Fedica&lt;/a&gt;, &lt;a href=https://blackskyweb.xyz/ &gt;BlackSky&lt;/a&gt;, &lt;a href=https://stream.place/ &gt;Stream.place&lt;/a&gt;, and &lt;a href=https://surf.social/ &gt;Surf&lt;/a&gt;. (not an exhaustive list)&lt;/p&gt;&lt;p&gt;Then there were people working on side projects, many of which they want to devote full-time energy to, like &lt;a href=https://about.tinytown.app/ &gt;Tiny Town&lt;/a&gt;, &lt;a href=https://sill.social/ &gt;Sill&lt;/a&gt;, and &lt;a href=https://cartridge.dev/ &gt;Cartridge&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Then others were affiliated with academia or non-profits, like &lt;a href=https://anew.social/ &gt;A New Social&lt;/a&gt; or &lt;a href=https://newpublic.org/ &gt;New Public&lt;/a&gt;. And some folks were just in Vancouver so it was a pretty easy trip.&lt;/p&gt;&lt;h4 id=echoes-of-an-earlier-wave&gt;Echoes of an earlier wave&lt;/h4&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/o_V4XIkydW-640.webp 640w, https://macwright.com/img/o_V4XIkydW-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Stacked Hills 3&quot; decoding=async height=612 loading=lazy sizes=auto src=https://macwright.com/img/o_V4XIkydW-640.jpeg srcset=&quot;https://macwright.com/img/o_V4XIkydW-640.jpeg 640w, https://macwright.com/img/o_V4XIkydW-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;Everything about the AT Protocol community is so &lt;em&gt;new&lt;/em&gt;, small, personal, and altruistic.&lt;/p&gt;&lt;p&gt;Individual people are running essential infrastructure in their free time: for instance, this &lt;a href=https://atmosphereconf.org/event/7Rrv0E0&gt;talk by fig&lt;/a&gt;, how how they&#39;re building incredible services on a shoestring budget, largely as a solo effort. There are a bunch of people like this in the community, maintaining high-quality SDKs, services, and more that everyone else builds on.&lt;/p&gt;&lt;p&gt;The companies are also nascent. There are a few companies that pivoted into working with Bluesky, like &lt;a href=https://fedica.com/ &gt;Fedica&lt;/a&gt;, and have a business plan figured out. But out of the companies built on AT Protocol from the start, most of them are at the seed stage or earlier, and some of the talks at the conference probably shared material with investor pitch decks. One of the few companies that had raised money, Graze, had this to say &lt;a href=https://atmosphereconf.org/event/gDPMMa1&gt;in a fantastic talk&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;The first, and most important, is that fundraising is exceptionaly difficult in the current environment in general, and profoundly difficult with social media [...] AT Proto is not growing exponentially which means functionally it is a non-starter for VC investment [...] The AI hype cycle has all but consumed available oxygen that would otherwise remain. On top of that, there&#39;s a common misconception that social is &#39;solved&#39; [...] honestly do not mention AT Proto, at least until it goes exponential again.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I also noticed that there&#39;s a very strong movement from the community to avoid traditional corporate formats and funding mechanisms.&lt;/p&gt;&lt;p&gt;A lot of projects are following Bluesky&#39;s lead in forming as &lt;a href=https://en.wikipedia.org/wiki/Benefit_corporation&gt;benefit corporations&lt;/a&gt;. The PBC structure is interesting - a few companies with that structure have gone public, like &lt;a href=https://www.planet.com/ &gt;Planet labs&lt;/a&gt; and Allbirds. As far as I can tell though, the actual power of the designation has never been tested in court - the idea is that companies with the PBC format have a specific &lt;em&gt;purpose&lt;/em&gt; which is part of their charter and if they don&#39;t stick to it and if 2% of shareholders want to sue, they can be sued for it. The purpose of Planet Labs is &quot;to accelerate humanity toward a more sustainable, secure, and prosperous world, by illuminating environmental and social change&quot; and the &lt;a href=https://bsky.social/about/blog/7-05-2023-business-plan&gt;purpose of Bluesky&lt;/a&gt; is &quot;to develop and drive large-scale adoption of technologies for open and decentralized public conversation&quot; so I&#39;m not sure that there&#39;s much legal teeth to this idea. It is a very nice gesture though. &lt;a href=https://www.germnetwork.com/terms-of-service&gt;Germ&lt;/a&gt; and &lt;a href=https://www.graze.social/terms-and-conditions&gt;Graze&lt;/a&gt; are both PBCs.&lt;/p&gt;&lt;p&gt;There are also a lot of projects trying to avoid the profit-driven company format entirely. &lt;a href=https://fed.brid.gy/ &gt;Bridgy Fed&lt;/a&gt;, a service that I happily use to syndicate my Mastodon posts to Bluesky, is backed by &lt;a href=https://anew.social/ &gt;a non-profit&lt;/a&gt; funded by its community and creators (one of whom &lt;a href=https://snarfed.org/resume&gt;co-created Google App Engine&lt;/a&gt;). &lt;a href=https://newpublic.org/local&gt;Roundabout&lt;/a&gt;, another AT Protocol-based product, is under the non-profit New Public. Even the &lt;a href=https://knightfoundation.org/articles/why-did-knight-foundation-invest-in-bluesky/ &gt;Knight Foundation&lt;/a&gt; backed Bluesky itself.&lt;/p&gt;&lt;p&gt;Because I have an irrepressible need to know these things, here&#39;s a quick primer in where this money comes from:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New Public is funded by The Knight Foundation, Omidyar, &lt;a href=https://www.causeiq.com/organizations/jennifer-and-jonathan-allan-soros-foundation%2C800464952/ &gt;Jennifer and Jonathan Allan Soros&lt;/a&gt;, and the &lt;a href=https://en.wikipedia.org/wiki/Hopewell_Fund&gt;Hopewell Fund&lt;/a&gt; (&lt;a href=https://www.hopewellfund.org/wp-content/uploads/2025/11/Hopewell-Fund-2024-Public-Disclosure-Copy.pdf&gt;source&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;A New Social is &lt;a href=https://anew.social/sponsors/ &gt;self- and crowd-funded&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=https://cosmik.network/ &gt;Cosmik&lt;/a&gt; is funded by &lt;a href=https://coefficientgiving.org/governance/ &gt;Coefficient Giving&lt;/a&gt;, which is in turn funded by &lt;a href=https://www.forbes.com/sites/phoebeliu/2025/11/18/billionaires-tuna-moskovitz-coefficient-givings-pooled-open-philanthropy/ &gt;Dustin Moskovitz, the Facebook cofounder, his wife and a bunch of billionaires&lt;/a&gt; and &lt;a href=https://astera.org/foundation/ &gt;Astera&lt;/a&gt;, which is funded by &lt;a href=https://en.wikipedia.org/wiki/Jed_McCaleb&gt;Jed McCaleb, crypto billionaire&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;&lt;a href=https://en.wikipedia.org/wiki/Knight_Foundation&gt;The Knight Foundation&lt;/a&gt; was initially funded by a local newspaper fortune (those were the days).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;There aren&#39;t any huge surprises in there: big amounts of money tend to come from people who have a lot of money, and these are mostly innocuous funders.&lt;/p&gt;&lt;h4 id=but-what-about-ai&gt;But what about AI?&lt;/h4&gt;&lt;p&gt;&lt;picture&gt;&lt;source sizes=auto srcset=&quot;https://macwright.com/img/ye8nIvvVsA-640.webp 640w, https://macwright.com/img/ye8nIvvVsA-1280.webp 1280w&quot; type=image/webp&gt;&lt;img alt=&quot;Stacked Hills 5&quot; decoding=async height=599 loading=lazy sizes=auto src=https://macwright.com/img/ye8nIvvVsA-640.jpeg srcset=&quot;https://macwright.com/img/ye8nIvvVsA-640.jpeg 640w, https://macwright.com/img/ye8nIvvVsA-1280.jpeg 1280w&quot; width=1280&gt;&lt;/picture&gt;&lt;/p&gt;&lt;p&gt;What about AI. Everything is about AI now.&lt;/p&gt;&lt;p&gt;Most of the sessions that I attended didn&#39;t mention AI. Nevertheless, I think that AI is one of the ingredients for how this community is building so fast: during a panel of designers, &lt;a href=https://bsky.app/profile/dame.is&gt;dame&lt;/a&gt; said that they heavily use LLMs to build &lt;a href=https://anisota.net/ &gt;Anisota&lt;/a&gt;, their moth-themed social media interface, and many of the demos had a bit of LLM &lt;em&gt;odor&lt;/em&gt; to them. There a few moments of full AI-optimism, like &lt;a href=https://bsky.app/profile/cameron.stream&gt;Cameron&#39;s&lt;/a&gt; talk about &lt;a href=https://bsky.app/profile/did:plc:mxzuau6m53jtdsbqe6f4laov&gt;void&lt;/a&gt;, his chatbot &#39;with a memory&#39;, and &lt;a href=https://www.komoroske.com/ &gt;Alex Komoroske&lt;/a&gt; talking about the Resonant Computing Manifesto and saying that AI could be &#39;bigger than the printing press.&#39;&lt;/p&gt;&lt;p&gt;I &lt;em&gt;loved&lt;/em&gt; that it wasn&#39;t a conference about AI. I&#39;m not an AI-hater or an AI-doomer. I&#39;m bored to tears by the discourse. I don&#39;t want to hear another Stanford CS grad talk about the big thoughts they had the first time in their lives that they thought about the theory of mind.&lt;/p&gt;&lt;p&gt;I don&#39;t care about which historical technology you want to compare it to or whether junior programmers or senior programmers or designers or managers are going to come out on top or on bottom. I don&#39;t care about the new way someone found to run 8 agents at the same time bossing each other around. When products add a magic chatbox as the new way to do everything, I don&#39;t find it exciting. It&#39;s all just so boring, monotonous, derivative, uncreative, and hype-driven.&lt;/p&gt;&lt;p&gt;Yes, it&#39;s important and it&#39;ll change the world. But vanishingly few people have anything to say about it.&lt;/p&gt;&lt;hr&gt;&lt;p&gt;That said, Bluesky announced &lt;a href=https://attie.ai/ &gt;Attie&lt;/a&gt; during the conference, and AI vibecoding interface / chatbot which allows people to build custom interfaces and feeds for the AT Protocol. You ask it to create a feed about sports, and it writes some filtering code and queries the lexicons and builds it for you.&lt;/p&gt;&lt;p&gt;This is at the intersection of two things I don&#39;t really care about: &#39;vibecoding&#39; and &#39;custom feeds for discovery.&#39; It&#39;s a product for someone else - probably a lot of people, because algorithmic discovery is a hard expectation of people raised on TikTok who expect perfectly curated content.&lt;/p&gt;&lt;p&gt;This launch generated a lot of controversy for roughly two reasons.&lt;/p&gt;&lt;p&gt;The first is obvious: it&#39;s AI, and a lot of people strongly dislike AI. Many, many people &lt;a href=https://techcrunch.com/2026/03/30/blueskys-new-ai-tool-attie-is-already-the-most-blocked-account-other-than-j-d-vance/ &gt;blocked the Attie account in protest&lt;/a&gt;, and there&#39;s a flare-up of fears around AI training on Bluesky data again. Cleverly, I think, Attie is intentionally &lt;em&gt;not&lt;/em&gt; something that would ever train on Bluesky data and it also never generates content for users, so it isn&#39;t a &lt;a href=https://simonwillison.net/2024/May/8/slop/ &gt;slop&lt;/a&gt; machine.&lt;sup class=footnote-ref&gt;&lt;a href=https://macwright.com/2026/04/05/in-the-atmosphere.html#fn2 id=fnref2&gt;[2]&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&lt;p&gt;The other is that this feature definitely stomps on or near much smaller efforts from people and companies in the community. That means &lt;a href=https://www.graze.social/ &gt;Graze&lt;/a&gt;, &lt;a href=https://surf.social/ &gt;Surf&lt;/a&gt;, &lt;a href=https://docs.bsky.app/blog/feature-skyfeed&gt;Skyfeed&lt;/a&gt;, &lt;a href=https://semble.so/ &gt;Cosmik&#39;s Semble&lt;/a&gt;, and I&#39;m sure many others. Custom feeds quickly became the most crowded and competitive space in the Atmosphere.&lt;/p&gt;&lt;p&gt;I think that &lt;a href=https://trezy.com/blog/the-marshmallow-test&gt;Trezy&#39;s blog post about this&lt;/a&gt; is a great, critical explanation of what&#39;s going on and what the risks are:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Then there&#39;s the question of collateral damage. Leaflet just announced a pro subscription. The standard.site coalition has been building something genuinely collaborative across multiple teams. Watching that presentation, it felt like any of us could be next.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;I think he has a strong point: Bluesky PBC is in a tough position, both fighting for relevance as a social media company and trying to foster a community of open source projects and small companies. A lot of the next features that Bluesky might introduce are already things being worked on by small companies. What should they do - acquire them, compete with them, defer to them? Trezy is right that they should at least coordinate with them.&lt;/p&gt;&lt;h4 id=the-money-thing-the-growth-thing&gt;The money thing. The growth thing.&lt;/h4&gt;&lt;p&gt;What the community has right now is a tremendous amount of energy, creativity, and good vibes, but pretty dim prospects for business. This can turn around in an instant - venture capitalists are trend-followers above all, and one good success story becomes everyone else&#39;s pitch. But right now, the amounts raised by companies in the ecosystem are tiny. Rudy &lt;a href=https://atmosphereconf.org/event/QK9Ae6Y&gt;quoted&lt;/a&gt; $6.2k MRR for BlackSky, which is a huge achievement, but to bring the full team of six on full-time would need to quadruple at least. Graze&#39;s $1M funding round is pretty small by most definitions.&lt;/p&gt;&lt;bluesky-chart&gt;&lt;/bluesky-chart&gt;&lt;p&gt;But underneath that is the usage problem. &lt;a href=https://bsky.jazco.dev/stats&gt;None of the charts of Bluesky adoption&lt;/a&gt; look good. It&#39;s a niche community that loves to use new applications from the community. Bluesky has, by one measure, around &lt;a href=https://bluefacts.app/bluesky-user-growth&gt;5 million active users&lt;/a&gt; in comparison to &lt;a href=https://en.wikipedia.org/wiki/Threads_%28social_network%29&gt;Threads claiming 400 million active users&lt;/a&gt;. Nothing of importance has ever been posted to Threads, the &lt;a href=https://maxread.substack.com/p/threads-is-the-gas-leak-social-network&gt;gas-leak social network&lt;/a&gt;, but nevertheless.&lt;/p&gt;&lt;p&gt;My guess is that algorithmic feeds, which segue into &lt;a href=https://bsky.app/profile/danabra.mov/post/3mirhnd5r5k2o&gt;communities on Bluesky&lt;/a&gt;, could tilt the curve up and make Bluesky palatable for users who don&#39;t expect to curate their social media, but also don&#39;t want a firehose of all content. Or maybe the next big thing is &lt;a href=https://bsky.social/about/blog/01-26-2026-whats-next-at-bluesky&gt;live events&lt;/a&gt; on Bluesky, taking some inspiration from the success of streaming and making the platform more useful for sports and stuff.&lt;/p&gt;&lt;p&gt;Maybe solving the user-growth problem solves the venture capital problem, which solves the funding problem for startups, and that&#39;s good for the community in the end.&lt;/p&gt;&lt;p&gt;Is it really that bad for a social network to have five million devoted users instead of four hundred million? It&#39;s definitely not enough for Bluesky-the-company to succeed, and Bluesky accounts being a niche thing makes the pitch for AT Protocol apps a lot harder. &quot;Sign in with your &lt;a href=https://overreacted.io/open-social/#open-social&gt;internet handle&lt;/a&gt;&quot; isn&#39;t as compelling if most people don&#39;t have one. Compare to just signing in with a Google, Apple, or GitHub account, and the AT Protocol option is just worse for most people.&lt;/p&gt;&lt;p&gt;That said, Bluesky at its current size - and the AT Protocol community at its current size - is perfectly fine? For all of the worries about the network &#39;dying,&#39; just having linear user growth during a period in which the app changes and experiments with new features isn&#39;t the end of the world. Popularity isn&#39;t everything.&lt;/p&gt;&lt;h4 id=being-there&gt;Being there&lt;/h4&gt;&lt;p&gt;In between all of the big thoughts, the rest of it was lovely. Everyone was incredibly friendly and welcoming, the venue had actual &lt;em&gt;good vegan food&lt;/em&gt;, and on the mornings I ran the &lt;a href=&quot;https://www.openstreetmap.org/way/28738438#map=16/49.25939/-123.22755&quot;&gt;Salish Trail&lt;/a&gt;, through second-growth forests of hemlock and douglas firs. I skipped the parties in Vancouver to conserve my social batteries, which might&#39;ve been a double-good idea because a lot of people got COVID, and small contained spaces probably didn&#39;t help.&lt;/p&gt;&lt;p&gt;The experience filled me with optimism and excitement. This is an early stage for this community, and it could turn out a whole bunch of ways. I hope that we look back on these years as the the time when a new, better internet was being born. It could work out.&lt;/p&gt;&lt;hr class=footnotes-sep&gt;&lt;section class=footnotes&gt;&lt;ol class=footnotes-list&gt;&lt;li class=footnote-item id=fn1&gt;&lt;p&gt;I&#39;m talking about Mapbox, mostly. We built everything in the open, including some really core technology that was exceptionally difficult to figure out. And it ended up being really weird: a bunch of hyperscalers started to run Mapbox tech and compete with the company, which led Mapbox to change the license for their main map rendering technology, which alienated the open source community and led to a hard fork which is funded mostly by Microsoft and a few big companies. This experience left me with some complicated feelings. &lt;a href=https://macwright.com/2026/04/05/in-the-atmosphere.html#fnref1 class=footnote-backref&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li class=footnote-item id=fn2&gt;&lt;p&gt;Whether this hatred is deserved is up for debate, but I think that many people have only experienced bad aspects of AI - low quality content, propaganda, threats of job losses. At the same time, the leaders of major AI companies don&#39;t &lt;a href=https://www.wheresyoured.at/make-fun-of-them/ &gt;do themselves any favors&lt;/a&gt; in terms of selling their technology the public. &lt;a href=https://www.musicradar.com/music-industry/its-not-really-enjoyable-to-make-music-now-says-the-ceo-of-an-ai-music-making-platform-and-he-wants-to-help&gt;Suno&#39;s CEO saying&lt;/a&gt; &quot;it&#39;s not really enjoyable to make music now&quot; is what I think of when I think about this. Some of these people truly do not get it, with &#39;it&#39; meaning any sense of enjoyment or satisfaction about anything. I do think in this instance Bluesky really was thoughtful about making an AI thing that doesn&#39;t create slop or train on user data. &lt;a href=https://macwright.com/2026/04/05/in-the-atmosphere.html#fnref2 class=footnote-backref&gt;↩︎&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/section&gt;</content>
    <author>
      <name>Tom MacWright</name>
      <uri>https://macwright.com/about/</uri>
    </author>
  </entry>
</feed>
