<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Herve Family</title>
	<atom:link href="https://herve.bzh/feed/" rel="self" type="application/rss+xml" />
	<link>https://herve.bzh</link>
	<description>Our family’s website // Le site de notre petite famille // Kis családunk honlapja // Lec’hienn hor familh</description>
	<lastBuildDate>Thu, 11 Jun 2026 18:26:26 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://herve.bzh/wp-content/uploads/2024/06/cropped-herve-logo-1-32x32.png</url>
	<title>Herve Family</title>
	<link>https://herve.bzh</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">241031857</site>	<item>
		<title>Putting the WordPress block editor on the AT Protocol</title>
		<link>https://herve.bzh/wordpress-block-editor-at-protocol/</link>
					<comments>https://herve.bzh/wordpress-block-editor-at-protocol/#respond</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Thu, 11 Jun 2026 18:14:50 +0000</pubDate>
				<category><![CDATA[Geek Inside]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ATProto]]></category>
		<category><![CDATA[Bluesky]]></category>
		<category><![CDATA[development]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=507773</guid>

					<description><![CDATA[What if your ATProto content was a WordPress block tree? I built a long-form editor where the standard.site "content" field is just Gutenberg blocks, no PHP anywhere. I'm playing with ATProto, even though I'm still not fully sold on it as a web old-timer. 🙂]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I&#8217;ve had my own home on the web, one I fully control, for about 20 years now. It started on a cheap shared hosting plan where PHP was all I needed and knew. I taught myself to build WordPress themes by asking questions in the .org support forums, and I&#8217;ve been taking care of my little home ever since. I&#8217;ve renovated more than a few times, I&#8217;ve experimented with different CMSes, I&#8217;ve tweaked things, &#8230;</p>



<p class="wp-block-paragraph">I say that up front because it&#8217;s the lens I brought to a small experiment I launched today: <a href="https://skypress.blog/">SkyPress</a>, a long-form editor for the AT Protocol that happens to run the WordPress block editor. There&#8217;s a <a href="https://skypress.blog/@skypress.blog/its-always-sunny-on-skypress/3mnzm5k2vc22t">proper launch post over here</a>, but I wanted to expand a bit on the why, as well as a few of my ongoing thoughts and conflicts about ATProto.</p>



<h2 class="wp-block-heading">Where it started</h2>



<p class="wp-block-paragraph">I&#8217;ve been spending some time looking at how the long-form editors in the atmosphere structure their content. <a href="https://leaflet.pub">Leaflet</a> has its multi-page document blocks; <a href="https://pckt.blog">Pckt.blog</a> has its own block format; both write something structured into the <code>content</code> field of a <code>site.standard.document</code> record. Poking at those got me thinking again about something I was more familiar with: how a WordPress post is put together under the hood.</p>



<p class="wp-block-paragraph">Some of this came out of <a href="https://herve.bzh/radical-speed-month-and-a-new-reader/" data-type="link" data-id="https://herve.bzh/radical-speed-month-and-a-new-reader/">work @pfefferle and I did bringing Bluesky, Mastodon, and the fediverse into the WordPress.com Reader</a>. That meant looking closely at <a href="https://standard.site/">standard.site</a>, and at how each platform decides what to drop into that <code>content</code> field. The more I looked, the more I wanted to try it myself.</p>



<figure class="wp-block-image alignwide size-large"><img fetchpriority="high" decoding="async" width="1024" height="788" data-attachment-id="507787" data-permalink="https://herve.bzh/wordpress-block-editor-at-protocol/skypress-editor/" data-orig-file="https://herve.bzh/wp-content/uploads/2026/06/skypress-editor.png" data-orig-size="2246,1728" data-comments-opened="1" data-image-title="skypress-editor" data-image-description="" data-image-caption="" data-large-file="https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-1024x788.png" src="https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-1024x788.png" alt="Screenshot of the SkyPress editor" class="wp-image-507787" srcset="https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-1024x788.png 1024w, https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-300x231.png 300w, https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-768x591.png 768w, https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-1536x1182.png 1536w, https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-2048x1576.png 2048w, https://herve.bzh/wp-content/uploads/2026/06/skypress-editor-1200x923.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">I had three questions I wanted to answer for myself:</p>



<ol class="wp-block-list">
<li>How hard is it, really, to build an ATProto editor without taking on a pile of overhead?</li>



<li>Could I rely only on data saved to the PDS, with nothing of my own to store on the side?</li>



<li>How easy would it be to re-create some of the WordPress block editor experience outside of WordPress?</li>
</ol>



<h2 class="wp-block-heading">A lexicon that came together on its own</h2>



<p class="wp-block-paragraph">Here&#8217;s the thing that made it click. WordPress knows all about turning post content into structured data, and that structure happened to map neatly onto what an ATProto <code>content</code> field could be. That&#8217;s a happy accident for my experiment.</p>



<p class="wp-block-paragraph">Automattic maintains <a href="https://github.com/Automattic/isolated-block-editor"><code>isolated-block-editor</code></a>, which is the Gutenberg editor repackaged to run with no WordPress behind it. It hands you an <code>onSaveBlocks</code> callback, and instead of a string of HTML you get the raw block tree: an array of <code>{ name, attributes, innerBlocks }</code> objects. Add <code><a href="https://developer.wordpress.org/block-editor/reference-guides/packages/packages-blocks/">@wordpress/blocks</a></code> and <code><a href="https://developer.wordpress.org/block-editor/reference-guides/packages/packages-block-library/">@wordpress/block-library</a></code> for parsing and rendering, and you have a full editor <em>and</em> a renderer, no PHP anywhere.</p>



<p class="wp-block-paragraph">So <a href="https://skypress.blog/lexicon/">the SkyPress content lexicon</a>, <code>blog.skypress.content.gutenberg</code>, ended up almost embarrassingly thin: a <code>version</code> and a <code>blocks</code> array, dropped straight into the document&#8217;s open content union. The canonical content is the block tree exactly as the editor produced it, not rendered HTML. Any reader that doesn&#8217;t understand the <code>$type</code> falls back to <code>textContent</code>, same as every other custom content format in the atmosphere.</p>



<p class="wp-block-paragraph">The reason this works is older than ATProto. When Dennis Snell explained the Gutenberg block format back in 2017, he put it plainly:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Thus, a Gutenberg post isn&#8217;t HTML, but a tree of objects and associated attributes.</p>
<cite><a href="https://fluffyandflakey.blog/2017/09/04/gutenberg-posts-arent-html/">Gutenberg posts aren’t HTML…</a></cite></blockquote>



<p class="wp-block-paragraph">That tree is exactly the shape ATProto wants. Matías Ventura framed the bigger move as <a href="https://matiasventura.com/post/gutenberg-or-the-ship-of-theseus/">a Ship of Theseus</a>, rebuilding the materials while the ship keeps sailing, and the block, as a discrete unit of structured data, is the plank we swapped in. So for me the hard part, designing that content model, was already done. I mostly got to borrow it. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Why hasn&#8217;t the atmosphere settled on structured content?</h2>



<p class="wp-block-paragraph">This is where the experiment bumped into something I still don&#8217;t quite understand yet. <code>standard.site</code> made a deliberate choice to standardize the metadata around a document and leave content open; bring your own format. I get the reasoning and the flexibility it brings. But that <code>content</code> field is a <em>singular</em> union, so someone building an editor still has to pick one <code>$type</code> and accept that every other reader degrades to plain <code>textContent</code>.</p>



<p class="wp-block-paragraph">I got into this a bit with <a href="https://bsky.app/profile/jimray.bsky.team">@jimray.bsky.team</a> on Bluesky:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">In my ideal world, an editor would be able to serve Leaflet readers, Pckt readers, and markdown readers well from the same record, so you read a nicely formatted post regardless of the reader you use.</p>
<cite><a href="https://bsky.app/profile/jeremy.herve.bzh/post/3mnxmilp55k2h">https://bsky.app/profile/jeremy.herve.bzh/post/3mnxmilp55k2h</a></cite></blockquote>



<p class="wp-block-paragraph">That&#8217;s not how it works today, and different editors keep building different content formats that only their own readers fully understand. And ATproto seems to be growing a lot right now, so new formats will keep popping up. Hey, I just added one to the pile! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f605.png" alt="😅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">It reminded me of a choice WordPress made years ago. I offer as a data point and nothing more, I don&#8217;t mean to offer any advice or recommendation to anyone, I know very little about ATProto!</p>



<p class="wp-block-paragraph">When Gutenberg moved to blocks, it kept storing that structured data <em>as HTML too</em>, tucked inside comments, so a legacy system that knows nothing about blocks can still render the post. The technical overview from 2017 put it this way:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">the source of truth for the content should remain in <code>post_content</code>, where the bulk of the post data needs to be present in a way that is accessible and portable, while still providing additional structure on top of HTML semantics.</p>
<cite><a href="https://make.wordpress.org/core/2017/01/17/editor-technical-overview/">Editor Technical Overview</a></cite></blockquote>



<p class="wp-block-paragraph">I&#8217;m not holding that up as the answer. The block editor itself is divisive enough that I&#8217;d never claim WordPress has this figured out; it&#8217;s one take on one narrow corner of the problem, a structured format that still degrades into something every reader can show. Whether that&#8217;s a good fit for the atmosphere, I honestly don&#8217;t know. I just keep poking at it.</p>



<h2 class="wp-block-heading">Am I sold on ATProto? Not quite</h2>



<p class="wp-block-paragraph">I&#8217;m still trying to get on board with the whole idea of ATProto, and this little experiment is a great way to learn more, and poke at those questions.</p>



<p class="wp-block-paragraph">Part of me still thinks I may not be the person it&#8217;s for.</p>



<p class="wp-block-paragraph">Remember that cheap shared hosting plan. I already own my content, I&#8217;ve moved between platforms, built my own themes, broken things and put them back together. Owning my words isn&#8217;t anything new to me. And I&#8217;m comfortable digging around in my own data inside WordPress, because I know that process inside and out.</p>



<p class="wp-block-paragraph">So the core ATProto idea, separating where your data lives (the PDS) from where people read it (the AppView), feels a little foreign to me. Having to run, pay, and maintain two systems to control one set of content seems like a lot. And it&#8217;s usually not just two systems; it&#8217;s two domains as well, one for the PDS and one for the AppView. The PDS gives you portability and the AppView gives you a web address people can actually reach, which makes sense to some extent, but it&#8217;s also two of everything to keep an eye on, and potentially two points of failure. It&#8217;s hard to go from &#8220;I run my little blog and it mostly just works&#8221; to that without asking myself some questions. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">Don&#8217;t get me wrong though. None of that is a knock on the protocol. I think it&#8217;s a fair description of the bet ATProto asks you to make, and for plenty of people, especially folks who never had a home of their own on the web, that bet may make complete sense.</p>



<h2 class="wp-block-heading">Where do you publish a post about your own publishing tool?</h2>



<p class="wp-block-paragraph">So I built a long-form publishing tool. Cool. Yet, I&#8217;m posting about it on my WordPress site. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f605.png" alt="😅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">I spent quite a bit of time deciding where to actually publish this very post.</p>



<p class="wp-block-paragraph">I wanted to use SkyPress. I mean, I just released it, I probably should! But I already have this home, 20 years deep, with my readers, my RSS subscribers, my Fediverse friends. Why would I switch now? Especially considering that this site runs the <a href="https://wordpress.org/plugins/atmosphere/">ATmosphere plugin</a>: it already publishes my posts to ATProto as <code>site.standard.document</code> records anyway.</p>



<p class="wp-block-paragraph">By the way, we&#8217;re asking ourselves the same questions for the plugin. What exactly should go in that <code>content</code> field, though, is a question we&#8217;re still hashing out in an open pull request: HTML, markdown, pckt, Leaflet, and which one wins when <code>content</code> only has room for one. I&#8217;m definitely still struggling about that multi-format puzzle!</p>



<p class="wp-block-paragraph">So for this one, I ended up picking the home I already have. I will be using SkyPress for other posts over the next few weeks, though! Maybe that will help me better understand all of this!</p>



<p class="wp-block-paragraph">I&#8217;ve written before that <a href="https://herve.bzh/the-web-was-always-social/">the web was always social</a>, and that because a protocol isn&#8217;t perfect, it doesn&#8217;t mean we should drop it. Quite the opposite. A rising tide lifts all boats, and to me the only way to find the gaps in something like standard.site is to build on it and bump into those gaps myself.</p>



<p class="wp-block-paragraph">If you want to give it a try, the editor is live at <a href="https://skypress.blog/">SkyPress.blog</a>, and the <a href="https://skypress.blog/@skypress.blog/its-always-sunny-on-skypress/3mnzm5k2vc22t">launch post</a> walks through what it actually does. It&#8217;s an alpha, so expect rough edges. And if you&#8217;ve thought about the singular-<code>content</code>-union question, or this whole structured-versus-legible tension, I&#8217;d love to hear it. Let me know!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/wordpress-block-editor-at-protocol/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">507773</post-id>	</item>
		<item>
		<title>Ultra-soft potato burger buns</title>
		<link>https://herve.bzh/ultra-soft-potato-burger-buns/</link>
					<comments>https://herve.bzh/ultra-soft-potato-burger-buns/#comments</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Thu, 04 Jun 2026 07:17:12 +0000</pubDate>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Burger]]></category>
		<category><![CDATA[Potato Buns]]></category>
		<category><![CDATA[Recipe]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=499184</guid>

					<description><![CDATA[The softest burger buns I've made at home, thanks to mashed potato worked right into the dough. I made them by hand, but they still came out perfect :)]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I follow a few cooking channels on YouTube, and for the past few years it seems all the burger videos used potato buns. I finally gave it a try, and I don&#8217;t regret it. They were not much more difficult to make than regular buns, they were really light and fluffy, they absorbed the grease and sauce from the pulled pork I had prepared super well. All it takes is mashed potatoes worked right into the dough (and also a lot of butter <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ).</p>



<figure class="wp-block-image alignwide size-large"><img decoding="async" width="769" height="1024" data-attachment-id="499191" data-permalink="https://herve.bzh/ultra-soft-potato-burger-buns/potato-buns-recipe/" data-orig-file="https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe.jpg" data-orig-size="3472,4624" data-comments-opened="1" data-image-title="A pile of homemade potato buns" data-image-description="" data-image-caption="" data-large-file="https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-769x1024.jpg" src="https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-769x1024.jpg" alt="A pile of homemade potato buns" class="wp-image-499191" srcset="https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-769x1024.jpg 769w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-225x300.jpg 225w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-768x1023.jpg 768w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-1153x1536.jpg 1153w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-1538x2048.jpg 1538w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-900x1200.jpg?crop=1 900w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-600x800.jpg?crop=1 600w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-450x600.jpg?crop=1 450w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-300x400.jpg?crop=1 300w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-150x200.jpg?crop=1 150w, https://herve.bzh/wp-content/uploads/2026/06/potato-buns-recipe-1200x1598.jpg 1200w" sizes="(max-width: 769px) 100vw, 769px" /></figure>



<h2 class="wp-block-heading">Ingredients</h2>



<ul class="wp-block-list">
<li>600g T45 flour</li>



<li>200g warm milk</li>



<li>60 to 100g warm water (adjust as needed)</li>



<li>140g cooked potato flesh, peeled</li>



<li>60g soft butter</li>



<li>1 medium egg</li>



<li>40g sugar</li>



<li>13g salt</li>



<li>10 to 12g active dry yeast</li>



<li>A little milk, to brush before baking</li>



<li>A little melted butter, to brush after baking</li>



<li>½ teaspoon turmeric, for color</li>
</ul>



<h2 class="wp-block-heading">Cooking the potato</h2>



<ol class="wp-block-list">
<li>Cut the peeled potato into cubes.</li>



<li>Cook them in water for about 10 minutes, until very soft when pierced with a knife.</li>



<li>Set the potatoes aside, let them cool and dry as much as possible</li>



<li>Mash them in a bowl.</li>
</ol>



<h2 class="wp-block-heading">Kneading</h2>



<p class="wp-block-paragraph">I don&#8217;t have a stand mixer, so I did the whole thing by hand. It works, but I won&#8217;t pretend it&#8217;s effortless. A stand mixer with a dough hook would have saved my arms a good twenty minutes <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<ol class="wp-block-list">
<li>In a large bowl, add the flour and make a well in the center.</li>



<li>Add the egg, salt, sugar, mashed potato, and turmeric to the well.</li>



<li>Add the dry yeast on one side, away from the salt and sugar.</li>



<li>Pour in the 200 g of milk gradually, mixing as you go.</li>



<li>Once the milk is absorbed, add 60 g of warm water in a thin stream and keep mixing for 2 to 3 minutes.</li>



<li>Work in the soft butter gradually. If the flour isn&#8217;t coming together, add more water a few drops at a time, and stop as soon as a ball forms.</li>



<li>Turn the dough out onto the counter and knead for a good 15 to 20 minutes, bringing it back together as you go. You&#8217;re after a smooth dough that&#8217;s barely sticky. (This is the part where a stand mixer really earns its keep.)</li>



<li>Finish by kneading a little more energetically for 2 minutes (slapping the dough against the counter) to build up some elasticity.</li>
</ol>



<p class="wp-block-paragraph">One thing that threw me: my dough was super sticky the whole way through; I was worried it wasn&#8217;t going to work. It turned out perfect in the end, but I suspect a stand mixer would have made the stickiness less of a worry, since you&#8217;re not fighting it with your hands. So if yours feels the same, don&#8217;t panic <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">First rise</h2>



<ol class="wp-block-list">
<li>Gather the dough into a ball, no flour needed.</li>



<li>Cover the bowl tightly with cling film or a cloth.</li>



<li>Let it rise in a warm room (21°C minimum) until it triples in volume (1 to 2 hours depending on temperature).</li>
</ol>



<h2 class="wp-block-heading">Shaping</h2>



<ol class="wp-block-list">
<li>Once tripled, knock the dough back with your fist and gather it into a ball.</li>



<li>Give it 2 or 3 folds.</li>



<li>Divide into pieces and shape each into a ball. I went with 120 to 130 g per piece, which gave me about 9 buns, but they ended up a little too big for my taste. Next time I&#8217;ll aim for around 100 g.</li>



<li>Place them spaced apart on a baking sheet lined with parchment paper. I also spread a bit of semolina on my parchment paper, it helped the buns not to stick.</li>
</ol>



<h2 class="wp-block-heading">Second rise</h2>



<p class="wp-block-paragraph">Let them rest 30 to 45 minutes. The buns should puff up nicely. That&#8217;s at this point that I realized my buns were too big <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<h2 class="wp-block-heading">Baking</h2>



<ol class="wp-block-list">
<li>Preheat the oven to 180°C.</li>



<li>Brush the buns with milk.</li>



<li>Bake for 15 to 20 minutes (18 minutes with a fan oven), until just golden.</li>



<li>Out of the oven, lift them off the sheet and brush butter over the tops while they&#8217;re hot.</li>
</ol>



<p class="wp-block-paragraph">Enjoy! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/ultra-soft-potato-burger-buns/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">499184</post-id>	</item>
		<item>
		<title>The web was always social</title>
		<link>https://herve.bzh/the-web-was-always-social/</link>
					<comments>https://herve.bzh/the-web-was-always-social/#comments</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Sun, 31 May 2026 21:57:28 +0000</pubDate>
				<category><![CDATA[Geek Inside]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[ATProto]]></category>
		<category><![CDATA[Fediverse]]></category>
		<category><![CDATA[Open Web]]></category>
		<category><![CDATA[Social Web]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=495348</guid>

					<description><![CDATA[Diving into the idea of bridging different social networks and protocols like ATproto and ActivityPub to enhance the web. Looking back at my personal web journey, from Web 2.0 to now, emphasizing that building connections can strengthen online communities.]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-pullquote"><blockquote><p>Bridging protocols is how we preserve that without locking into any one silo.</p></blockquote></figure>



<p class="wp-block-paragraph">Following my last blog post about what I&#8217;ve been working on in the past month, <a rel="mention" class="u-url mention" href="https://mastodon.social/@davew">@davew</a> and I had an interesting conversation around what it means to develop for the web, and to work to improve the web.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">My recommendation for Automattic and Bluesky.</p>
<cite><a href="http://scripting.com/2026/05/23/135604.html" target="_blank" rel="noopener">It&#8217;s really simple</a></cite></blockquote>



<p class="wp-block-paragraph">It got me to think:</p>



<p class="wp-block-paragraph"><strong>Does building bridges between social networks like ATproto or the Fediverse, and reading tools like the WordPress.com Reader, contribute to improving the web?</strong></p>



<p class="wp-block-paragraph">Given that I chose to work on just that for a month, you know my answer. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> But our conversation made me think. We may not have the same views on what the web is, and what it should be.</p>



<p class="wp-block-paragraph">I am a child of the Web 2.0. The Social Web was my first real entry into the web. I started participating and getting involved with the web when the &#8220;web 2.0&#8221; term was coined, when online forum boards were popular. I became a forum mod, I started building phpBB themes, I learned how to do that on forums. A year later, I started blogging and quickly found myself in small community of like-minded people commenting on each other&#8217;s blog posts every day (aka a blog ring). In parallel, I learned how to build my own WordPress theme by asking questions in the WordPress.org support forums.</p>



<p class="wp-block-paragraph">I am now old enough to say &#8220;back in my day&#8221;, I felt part of multiple communities of like-minded people. Those people were the reason I kept coming back. Those small communities are what makes the web interesting to me.</p>



<p class="wp-block-paragraph">While some may think of the social web as the chase for the most Likes, Retweets, and overall baiting for engagement, I see it as a group of individuals exchanging ideas, communities.</p>



<p class="wp-block-paragraph">And more generally, I see the web as social by default. Although maybe not for much longer, the web is made for humans exchanging ideas.</p>



<p class="wp-block-paragraph">In that way, <strong>&#8220;social web&#8221; really should just be &#8220;the web&#8221;.</strong></p>



<p class="wp-block-paragraph">The tools, technologies, protocols, and standards used to help people find each other continuously evolve.</p>



<p class="wp-block-paragraph">20 years ago, the tools were fewer, RSS, blogging, and forums were at the center of many communities. Today, the landscape is fragmented into an increasing number of different corporate tools and services. Some of them were clearly introduced not to make the web better, but to make money (surprise, surprise).</p>



<p class="wp-block-paragraph">But that doesn&#8217;t mean we should thrive towards a web with only one tech behind it all, or that the social web has to be just RSS. I think there is room for new standards to grow.</p>



<p class="wp-block-paragraph">New protocols like ActivityPub and ATproto were introduced because they add additional interaction layers on top of basic content consumption. They make it easier to Like, reply, and build community in different ways.They are still the web, though. They make up a place to create, consume, and interact like everywhere else.</p>



<p class="wp-block-paragraph">As more and more people use those tools, gaps start appearing though:</p>



<ul class="wp-block-list">
<li>ActivityPub is great, but its standard needs to grow to make it easier to create, consume, interact, from different clients. It&#8217;s why the <a href="https://www.w3.org/community/socialcg/" target="_blank" rel="noopener">W3C Social Web Community Group</a> and its <a href="https://github.com/swicg/activitypub-api" target="_blank" rel="noopener">ActivityPub API task force</a> work to address the gaps real clients run into.</li>



<li>ATproto works well, but needs to grow for folks who don&#8217;t want to be limited to 300 characters. This is why folks are working on implement support for long-form content with <a href="https://standard.site/" target="_blank" rel="noopener">standard.site</a>.</li>
</ul>



<p class="wp-block-paragraph">That said, because those protocols aren&#8217;t perfect, it doesn&#8217;t mean we should drop them. Quite the opposite.</p>



<p class="wp-block-paragraph"><strong>I think that building bridges between protocols can help all of them grow and close their respective gaps.</strong></p>



<ul class="wp-block-list">
<li>Now that <a href="https://activitypub.blog/2026/05/22/your-wordpress-site-from-rss-feed-to-social-account/" target="_blank" rel="noopener">we use the ActivityPub API in the WordPress.com Reader</a>, we can follow the work of the API taskforce and chime in with real-life examples.</li>



<li>Now that <a href="https://activitypub.blog/2026/05/20/atmosphere-1-0-0-liftoff/" target="_blank" rel="noopener">you can publish long-form content to ATproto from your WordPress site</a>, we&#8217;ll see more and more long posts on ATproto services like Bluesky, and it will help Bluesky <a href="https://bsky.app/profile/bsky.app/post/3mmwmla3xph26" target="_blank" rel="noopener">implement better support for long-form content in their apps</a>.</li>
</ul>



<p class="wp-block-paragraph">By building these bridges, we aren&#8217;t fracturing the web; we are pushing the underlying standards to mature.</p>



<p class="wp-block-paragraph">All in all, I truly believe that &#8220;a rising tide lifts all boats&#8221;, and I&#8217;ll continue to work and experiment with all those tools, in the hopes that the web can stay a good place for humans for a little bit longer.</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">To put my money where my mouth is, this post is available via RSS, <a href="https://herve.bzh/wp-json/wp/v2/posts/495348">via a REST API query</a>, <a href="https://herve.bzh/the-web-was-always-social/activitypub/">via ActivityPub</a>, as a <a href="https://pdsls.dev/at://did:plc:4i6hvdii3km3kbnj3losmwnt/app.bsky.feed.post/3mn6kp4mh4oum">Bluesky short record</a> (<code>app.bsky.feed.post</code>) with a link to the full post, and as a <a href="https://standard.site/">standard.site</a> <a href="https://pdsls.dev/at://did:plc:4i6hvdii3km3kbnj3losmwnt/site.standard.document/3mn6kp4mpn3um">long-form record</a> (<code>site.standard.document</code>). <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/the-web-was-always-social/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">495348</post-id>	</item>
		<item>
		<title>Saison des foins</title>
		<link>https://herve.bzh/saison-des-foins/</link>
					<comments>https://herve.bzh/saison-des-foins/#comments</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Wed, 27 May 2026 17:17:31 +0000</pubDate>
				<category><![CDATA[Random]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=490136</guid>

					<description><![CDATA[En Bretagne la saison des foins c&#8217;est typiquement entre mi-avril / mi-mai pour les couverts végétaux qui sont ensuite retournés pour y faire du maïs, ou jusqu&#8217;à juin pour les prairies plus permanentes. Plus tard et l&#8217;herbe est de moins bonne qualité, et ça stresse la prairie avec les chaleurs de l&#8217;été. Si l&#8217;agriculteur de [&#8230;]]]></description>
										<content:encoded><![CDATA[<div class="activitypub-reply-block wp-block-activitypub-reply" aria-label="Reply" data-in-reply-to="https://mastodon.social/@nicolasf/116647424282236846"> <div class="activitypub-embed u-in-reply-to h-cite"> <div class="activitypub-embed-header p-author h-card"> <img decoding="async" class="u-photo" src="https://files.mastodon.social/accounts/avatars/000/032/651/original/2d837c4063daa794.jpg" alt="" /> <div class="activitypub-embed-header-text"> <h2 class="p-name">Nicolas Furno</h2> <a href="https://mastodon.social/users/nicolasf" class="ap-account u-url">nicolasf@mastodon.social</a> </div> </div> <div class="activitypub-embed-content"> <div class="ap-subtitle p-summary e-content"><p>Le champ derrière chez nous a déjà été fauché et les meules sont prêtes à partir. Je ne me souviens plus exactement quand ça avait lieu les années précédentes, mais pas avant l’été pour sûr.</p></div> <div class="ap-preview layout-1"> <img decoding="async" class="u-photo u-featured" src="https://files.mastodon.social/media_attachments/files/116/647/423/744/069/241/original/4e733dadab3651b5.jpeg" alt="Photo d’une meule de foin fraîchement formée dans un champ, sous un ciel bleu sans aucun nuage. " /> </div> </div> <div class="activitypub-embed-meta"> <a href="https://mastodon.social/users/nicolasf/statuses/116647424282236846" class="ap-stat ap-date dt-published u-in-reply-to">2026-05-27, 16:14</a> <span class="ap-stat"> <strong>1</strong> boosts </span> <span class="ap-stat"> <strong>5</strong> favorites </span> </div> </div> <style>/** * ActivityPub embed styles. */ .activitypub-embed { background: #fff; border: 1px solid #e6e6e6; border-radius: 12px; padding: 0; max-width: 100%; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; } .activitypub-reply-block .activitypub-embed { margin: 1em 0; } .activitypub-embed-header { padding: 15px; display: flex; align-items: center; gap: 10px; } .activitypub-embed-header img { width: 48px; height: 48px; border-radius: 50%; } .activitypub-embed-header-text { flex-grow: 1; } .activitypub-embed-header-text h2 { color: #000; font-size: 15px; font-weight: 600; margin: 0; padding: 0; } .activitypub-embed-header-text .ap-account { color: #687684; font-size: 14px; text-decoration: none; } .activitypub-embed-content { padding: 0 15px 15px; } .activitypub-embed-content .ap-title { font-size: 23px; font-weight: 600; margin: 0 0 10px; padding: 0; color: #000; } .activitypub-embed-content .ap-subtitle { font-size: 15px; color: #000; margin: 0 0 15px; } .activitypub-embed-content .ap-preview { border: 1px solid #e6e6e6; border-radius: 8px; box-sizing: border-box; display: grid; gap: 2px; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; margin: 1em 0 0; min-height: 64px; overflow: hidden; position: relative; width: 100%; } .activitypub-embed-content .ap-preview img { border: 0; box-sizing: border-box; display: block; height: 100%; object-fit: cover; overflow: hidden; position: relative; width: 100%; } .activitypub-embed-content .ap-preview video, .activitypub-embed-content .ap-preview audio { max-width: 100%; display: block; grid-column: 1 / span 2; } .activitypub-embed-content .ap-preview audio { width: 100%; } .activitypub-embed-content .ap-preview.layout-1 { grid-template-columns: 1fr; grid-template-rows: 1fr; } .activitypub-embed-content .ap-preview.layout-2 { aspect-ratio: auto; grid-template-rows: 1fr; height: auto; } .activitypub-embed-content .ap-preview.layout-3 > img:first-child { grid-row: span 2; } .activitypub-embed-content .ap-preview-text { padding: 15px; } .activitypub-embed-meta { padding: 15px; border-top: 1px solid #e6e6e6; color: #687684; font-size: 13px; display: flex; gap: 15px; } .activitypub-embed-meta .ap-stat { display: flex; align-items: center; gap: 5px; } @media only screen and (max-width: 399px) { .activitypub-embed-meta span.ap-stat { display: none !important; } } .activitypub-embed-meta a.ap-stat { color: inherit; text-decoration: none; } .activitypub-embed-meta strong { font-weight: 600; color: #000; } .activitypub-embed-meta .ap-stat-label { color: #687684; } </style></div>


<p class="wp-block-paragraph">En Bretagne la saison des foins c&#8217;est typiquement entre mi-avril / mi-mai pour les couverts végétaux qui sont ensuite retournés pour y faire du maïs, ou jusqu&#8217;à juin pour les prairies plus permanentes. Plus tard et l&#8217;herbe est de moins bonne qualité, et ça stresse la prairie avec les chaleurs de l&#8217;été.</p>



<p class="wp-block-paragraph">Si l&#8217;agriculteur de derrière chez toi fauche en été d&#8217;habitude, c&#8217;est peut être plus pour gérer les restes après que les vaches soient passées par là, ou alors parce que c&#8217;est une petite parcelle dont il ne se sert pas trop, et où il fauche plus pour garder ça propre que pour autre chose ? </p>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/saison-des-foins/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">490136</post-id>	</item>
		<item>
		<title>Signing homework</title>
		<link>https://herve.bzh/signing-homework/</link>
					<comments>https://herve.bzh/signing-homework/#comments</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Sun, 24 May 2026 11:10:11 +0000</pubDate>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Chinese]]></category>
		<category><![CDATA[homework]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=486283</guid>

					<description><![CDATA[Signing my daughter's Chinese writing test. At least that's what I think I did! :)]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">I&#8217;ve reached the point when it&#8217;s getting hard to keep up and help my oldest daughter with her homework.</p>



<p class="wp-block-paragraph">Chinese lessons may be the perfect example of that. Not sure my signature on a Chinese writing test means much when I don&#8217;t understand what I&#8217;m signing. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f605.png" alt="😅" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<figure class="wp-block-image aligncenter size-large"><img decoding="async" width="1024" height="769" data-attachment-id="486276" data-permalink="https://herve.bzh/1779620737536_1000027570/" data-orig-file="https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570.jpg" data-orig-size="4624,3472" data-comments-opened="1" data-image-title="1779620737536_1000027570" data-image-description="" data-image-caption="" data-large-file="https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-1024x769.jpg" src="https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-1024x769.jpg" alt="Screenshot of a Chinese writing test" class="wp-image-486276" srcset="https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-1024x769.jpg 1024w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-300x225.jpg 300w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-768x577.jpg 768w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-1536x1153.jpg 1536w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-2048x1538.jpg 2048w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-1200x901.jpg 1200w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-800x600.jpg?crop=1 800w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-600x450.jpg?crop=1 600w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-400x300.jpg?crop=1 400w, https://herve.bzh/wp-content/uploads/2026/05/1779620737536_1000027570-200x150.jpg?crop=1 200w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/signing-homework/feed/</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">486283</post-id>	</item>
		<item>
		<title>Radical Speed Month, and a new Reader</title>
		<link>https://herve.bzh/radical-speed-month-and-a-new-reader/</link>
					<comments>https://herve.bzh/radical-speed-month-and-a-new-reader/#comments</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Fri, 22 May 2026 23:26:05 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Automattic]]></category>
		<category><![CDATA[Bluesky]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Fediverse]]></category>
		<category><![CDATA[mastodon]]></category>
		<category><![CDATA[RadicalSpeedMonth]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=484636</guid>

					<description><![CDATA[During Automattic's Radical Speed Month, Matthias and I built Reader Everywhere: a new way to follow Bluesky, Mastodon, and the Fediverse from the WordPress.com Reader. 90-second demo below. :)]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">This blog runs WordPress with the ActivityPub plugin, so it&#8217;s also my account on the Fediverse. Some of you follow me at <code>@jeremy@herve.bzh</code>, and when I post here in WordPress, it reaches your timeline on Mastodon / GoToSocial / Misskey / Pleroma&#8230;</p>



<p class="wp-block-paragraph">That&#8217;s the publishing side, and it works well. The reading side is newer. The ActivityPub plugin has a Fediverse Reader inside wp-admin, but we&#8217;re still building it out. In practice, I&#8217;d been doing most of my reading elsewhere. <a href="https://herve.bzh/tinkering-with-the-fediverse/" data-type="link" data-id="https://herve.bzh/tinkering-with-the-fediverse/">When I first joined the Fediverse I set up a GoToSocial instance</a>, and I&#8217;ve continued to use it to consume content, on my phone, in Tusky. The UX was just simpler.</p>



<p class="wp-block-paragraph">That setup works for me. It only works because I&#8217;m tech-savvy enough to keep a spare account on a GoToSocial instance, and juggle between 2 instances to read or write. That&#8217;s probably not a setup that will attract more people to the Fediverse. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">This past month, Automattic ran an internal experiment called Radical Speed Month. For the whole month, I got to pair with one other person in my timezone, pick a project that interests me, work on it, and ship it. I got to decide what to work on, how I wanted to work, how I wanted to communicate about it. This was a great opportunity to focus on one thing and one thing only, to avoid other distractions. Maybe most importantly, it was a chance to reflect on how we&#8217;ve been working in the past few years, and compare that with a focused effort in a much smaller team. When we resume regular work on Monday, one of the first things I&#8217;ll do is chat with my team, and figure out if there are things we can drop or change from our past team workflow and routine.</p>



<p class="wp-block-paragraph">For me, the point of that &#8220;radical month&#8221; wasn&#8217;t just about the projects, although there are some cool ones coming out! It was the chance about triggering some introspection, re-examining our processes: what would change about how we work, and what would we want to keep.</p>



<p class="wp-block-paragraph">I paired with <a rel="mention" class="u-url mention" href="https://mastodon.social/@pfefferle">@pfefferle</a>. We already work on the same team, so I knew it&#8217;d be a good month. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /> We picked a project that fit the both of us. We turned <a href="https://wordpress.com/reader">the WordPress.com Reader</a> into a place where you can now connect Bluesky (or any other ATProto platform), Mastodon (or any other Fediverse tool using the Mastodon API), and Fediverse accounts. You can now read, react, and post from one place. Three protocols, one Reader. We called the project Reader Everywhere.</p>



<p class="wp-block-paragraph">One of the pieces I&#8217;m proudest of is on the Fediverse side. <a rel="mention" class="u-url mention" href="https://mastodon.social/@pfefferle">@pfefferle</a> was really the driver behind this part of the puzzle! The integration is built on top of the <a href="https://www.w3.org/TR/activitypub/" data-type="link" data-id="https://www.w3.org/TR/activitypub/">ActivityPub Client-to-Server API</a>. As far as I know it&#8217;s the first product at this scale to be built on top of it. We&#8217;re hoping that by shipping and iterating on the client, we&#8217;ll help the standard grow. There&#8217;s a longer write-up of this on the ActivityPub blog: <a href="https://activitypub.blog/2026/05/22/your-wordpress-site-from-rss-feed-to-social-account/">Your WordPress Site — From RSS Feed to Social Account</a>.</p>



<p class="wp-block-paragraph">Here&#8217;s what we shipped, in a 90-second walk-through:</p>



		<figure class="wp-block-jetpack-videopress jetpack-videopress-player" style="" >
			<div class="jetpack-videopress-player__wrapper"> <iframe loading="lazy" title="VideoPress Video Player" aria-label="VideoPress Video Player" width="500" height="281" src="https://videopress.com/embed/MPucXQB5?cover=1&amp;autoPlay=0&amp;controls=1&amp;loop=0&amp;muted=0&amp;persistVolume=1&amp;playsinline=0&amp;preloadContent=metadata&amp;useAverageColor=1&amp;hd=0" frameborder="0" allowfullscreen data-resize-to-parent="true" allow="clipboard-write"></iframe><script src='https://v0.wordpress.com/js/next/videopress-iframe.js?m=1770107250'></script></div>
			
			
		</figure>
		


<p class="wp-block-paragraph">This was also a good opportunity to get back to a full focus on coding. I moved into a leading role a while ago, and as one can expect, it involves some meetings, reviews, planning, discussions. That&#8217;s useful and important work, but I will say that it felt good to be back to building things for a month. Matthias and I would think about solutions, push code every day, review each other&#8217;s PRs, smooth out the rough edges, ship. I really enjoyed it!</p>



<p class="wp-block-paragraph">If you have a WordPress.com account, I would encourage you to check <a href="https://wordpress.com/reader" data-type="link" data-id="https://wordpress.com/reader">the Reader</a>! I&#8217;d love to know what you think <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/radical-speed-month-and-a-new-reader/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		<enclosure url="https://videos.files.wordpress.com/MPucXQB5/reader-social.mov" length="815042895" type="video/quicktime" />

		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">484636</post-id>	</item>
		<item>
		<title>The Internet Archive never disappoints&#8230; :)</title>
		<link>https://herve.bzh/the-internet-archive-never-disappoints/</link>
					<comments>https://herve.bzh/the-internet-archive-never-disappoints/#respond</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Wed, 20 May 2026 12:41:36 +0000</pubDate>
				<category><![CDATA[Geek Inside]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=482307</guid>

					<description><![CDATA[A discussion on Bluesky brought me down memory lane, got me to look at my first site&#8217;s design… Yes, my site logo was a drawing of a cool rabbit with a trenchcoat, a briefcase, and a KISS makeup. Why not?]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://bsky.app/profile/did:plc:4i6hvdii3km3kbnj3losmwnt/post/3mmbvtmaqtb23?ref_src=embed&amp;ref_url=https%253A%252F%252Fherve.bzh%252Fwp-admin%252Fpost.php">A discussion on Bluesky</a> brought me down memory lane, got me to look at my first site&#8217;s design…</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="268" height="164" data-attachment-id="482312" data-permalink="https://herve.bzh/the-internet-archive-never-disappoints/header-3/" data-orig-file="https://herve.bzh/wp-content/uploads/2026/05/header.jpg" data-orig-size="268,164" data-comments-opened="1" data-image-title="header" data-image-description="" data-image-caption="" data-large-file="https://herve.bzh/wp-content/uploads/2026/05/header.jpg" src="https://herve.bzh/wp-content/uploads/2026/05/header.jpg" alt="One of my first logos, a drawing of a cool rabbit with a trenchcoat, a briefcase, and a KISS makeup, because why not?" class="wp-image-482312"/></figure>



<p class="wp-block-paragraph">Yes, my site logo was a drawing of a cool rabbit with a trenchcoat, a briefcase, and a KISS makeup. Why not? </p>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/the-internet-archive-never-disappoints/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">482307</post-id>	</item>
		<item>
		<title>Google Home continues to exasperate me</title>
		<link>https://herve.bzh/google-home-continues-to-exasperate-me/</link>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Thu, 07 May 2026 20:41:12 +0000</pubDate>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Google]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=464155</guid>

					<description><![CDATA[Google Assistant / Google Home / Gemini for Home continue to amaze me by how crappy they are... (╯°□°）╯︵ ┻━┻]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Google Assistant has been getting worse and worse over the past few years. It&#8217;s got to a point where it fails to understand basic commands. I&#8217;m not sure how that happened. For that reason alone I was looking  forward to the promised upgrade to Gemini for Home. I figured AI wouldn&#8217;t be worse than the dumpster fire Google Home is today. </p>



<p class="wp-block-paragraph">I was wrong.</p>



<p class="wp-block-paragraph">I finally got access today, configured it, and asked it a few questions. It was noticeably slower to respond, which I can understand. That would be okay if its answers were good.</p>



<p class="wp-block-paragraph">Here is an exchange from 15 minutes ago:</p>



<ul class="wp-block-list">
<li><em>In English</em>: &#8220;Hey Google, what will be the weather tomorrow?&#8221;</li>



<li>Google replies in English: &#8220;it will rain, temperatures between 7 and 19° C.&#8221;</li>



<li>I immediately ask a follow-up question, still in English: &#8220;Will it rain all day?&#8221; Even old Google could be helpful with that. </li>



<li>Google replies in English: &#8220;you can expect showers in the evening. Temperatures will vary from 7 and 17° C.&#8221; Somehow the forecast got 2° colder with that follow-up question?</li>



<li>My kids hear me complaining, don&#8217;t understand the problem, so I ask again, in French this time.</li>



<li>Google replies, <strong>in French but with a strong English accent</strong>!!, and the temperature is back to 19° C. No Google, I don&#8217;t need you to speak like a British person who is trying their best to speak French! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f644.png" alt="🙄" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
</ul>



<p class="wp-block-paragraph">(╯°□°）╯︵ ┻━┻</p>
]]></content:encoded>
					
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">464155</post-id>	</item>
		<item>
		<title>Bridging the open web and the WordPress.com Reader</title>
		<link>https://herve.bzh/bridging-the-open-web-and-the-wordpress-com-reader/</link>
					<comments>https://herve.bzh/bridging-the-open-web-and-the-wordpress-com-reader/#comments</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Fri, 24 Apr 2026 15:22:11 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Work]]></category>
		<category><![CDATA[Automattic]]></category>
		<category><![CDATA[Bluesky]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Fediverse]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=449295</guid>

					<description><![CDATA[Watch this space! Over the next few weeks, Matthias and I will be working on a small Hackathon to bring the open social web into the WordPress.com reader (or the other way around), so you'll have more reasons to like the Reader!]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Do you use <a href="https://wordpress.com/reader">the WordPress.com Reader</a>? I am definitely not objective on this, but I think it&#8217;s a pretty nice (and free!) way to consume information, whether it comes from RSS feeds or newsletters on WordPress sites.</p>



<p class="wp-block-paragraph">If you needed a little push to give the tool a try, watch this space! Over the next few weeks, <a rel="mention" class="u-url mention" href="https://mastodon.social/@pfefferle">@pfefferle</a> and I will be working on a small Hackathon to bring the open social web into the WordPress.com reader (or the other way around), so you&#8217;ll have more reasons to like the Reader!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="587" height="1024" data-attachment-id="449301" data-permalink="https://herve.bzh/bridging-the-open-web-and-the-wordpress-com-reader/image-16/" data-orig-file="https://herve.bzh/wp-content/uploads/2026/04/image-1.png" data-orig-size="620,1082" data-comments-opened="1" data-image-title="Preview of the WordPress.com Reader interface" data-image-description="" data-image-caption="&lt;p&gt;Preview of the WordPress.com Reader interface&lt;/p&gt;
" data-large-file="https://herve.bzh/wp-content/uploads/2026/04/image-1-587x1024.png" src="https://herve.bzh/wp-content/uploads/2026/04/image-1-587x1024.png" alt="Screenshot of a preview of part of the interface of the WordPress.com Reader interface" class="wp-image-449301" srcset="https://herve.bzh/wp-content/uploads/2026/04/image-1-587x1024.png 587w, https://herve.bzh/wp-content/uploads/2026/04/image-1-172x300.png 172w, https://herve.bzh/wp-content/uploads/2026/04/image-1.png 620w" sizes="auto, (max-width: 587px) 100vw, 587px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/bridging-the-open-web-and-the-wordpress-com-reader/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">449295</post-id>	</item>
		<item>
		<title>Using WordPress as Federated blogging platform</title>
		<link>https://herve.bzh/using-wordpress-as-federated-blogging-platform/</link>
					<comments>https://herve.bzh/using-wordpress-as-federated-blogging-platform/#comments</comments>
		
		<dc:creator><![CDATA[Jeremy Herve]]></dc:creator>
		<pubDate>Thu, 23 Apr 2026 21:32:41 +0000</pubDate>
				<category><![CDATA[WordPress]]></category>
		<category><![CDATA[ActivityPub]]></category>
		<guid isPermaLink="false">https://herve.bzh/?p=448698</guid>

					<description><![CDATA[I&#8217;m replying to you from a WordPress site. Since WordPress is open-sourced, you get to decide: It&#8217;s your website, you&#8217;re in control.]]></description>
										<content:encoded><![CDATA[<div class="activitypub-reply-block wp-block-activitypub-reply" aria-label="Reply" data-in-reply-to="https://infosec.exchange/@Em0nM4stodon/116456134026470564"> <div class="activitypub-embed u-in-reply-to h-cite"> <div class="activitypub-embed-header p-author h-card"> <img decoding="async" class="u-photo" src="https://media.infosec.exchange/infosec.exchange/accounts/avatars/108/197/851/470/625/041/original/f56f05846a226449.jpg" alt="" /> <div class="activitypub-embed-header-text"> <h2 class="p-name">Em :official_verified:</h2> <a href="https://infosec.exchange/users/Em0nM4stodon" class="ap-account u-url">Em0nM4stodon@infosec.exchange</a> </div> </div> <div class="activitypub-embed-content"> <div class="ap-subtitle p-summary e-content"><p><span class="h-card"><a href="https://social.lol/@macmanx" class="u-url mention" rel="nofollow noopener" target="_blank">@<span>macmanx</span></a></span> Have you used this solution yourself? How much control do you have on the data collected from visitors on WordPress?</p></div> </div> <div class="activitypub-embed-meta"> <a href="https://infosec.exchange/users/Em0nM4stodon/statuses/116456134026470564" class="ap-stat ap-date dt-published u-in-reply-to">2026-04-23, 21:26</a> <span class="ap-stat"> <strong>0</strong> boosts </span> <span class="ap-stat"> <strong>4</strong> favorites </span> </div> </div> <style>/** * ActivityPub embed styles. */ .activitypub-embed { background: #fff; border: 1px solid #e6e6e6; border-radius: 12px; padding: 0; max-width: 100%; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; } .activitypub-reply-block .activitypub-embed { margin: 1em 0; } .activitypub-embed-header { padding: 15px; display: flex; align-items: center; gap: 10px; } .activitypub-embed-header img { width: 48px; height: 48px; border-radius: 50%; } .activitypub-embed-header-text { flex-grow: 1; } .activitypub-embed-header-text h2 { color: #000; font-size: 15px; font-weight: 600; margin: 0; padding: 0; } .activitypub-embed-header-text .ap-account { color: #687684; font-size: 14px; text-decoration: none; } .activitypub-embed-content { padding: 0 15px 15px; } .activitypub-embed-content .ap-title { font-size: 23px; font-weight: 600; margin: 0 0 10px; padding: 0; color: #000; } .activitypub-embed-content .ap-subtitle { font-size: 15px; color: #000; margin: 0 0 15px; } .activitypub-embed-content .ap-preview { border: 1px solid #e6e6e6; border-radius: 8px; box-sizing: border-box; display: grid; gap: 2px; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr; margin: 1em 0 0; min-height: 64px; overflow: hidden; position: relative; width: 100%; } .activitypub-embed-content .ap-preview img { border: 0; box-sizing: border-box; display: block; height: 100%; object-fit: cover; overflow: hidden; position: relative; width: 100%; } .activitypub-embed-content .ap-preview video, .activitypub-embed-content .ap-preview audio { max-width: 100%; display: block; grid-column: 1 / span 2; } .activitypub-embed-content .ap-preview audio { width: 100%; } .activitypub-embed-content .ap-preview.layout-1 { grid-template-columns: 1fr; grid-template-rows: 1fr; } .activitypub-embed-content .ap-preview.layout-2 { aspect-ratio: auto; grid-template-rows: 1fr; height: auto; } .activitypub-embed-content .ap-preview.layout-3 > img:first-child { grid-row: span 2; } .activitypub-embed-content .ap-preview-text { padding: 15px; } .activitypub-embed-meta { padding: 15px; border-top: 1px solid #e6e6e6; color: #687684; font-size: 13px; display: flex; gap: 15px; } .activitypub-embed-meta .ap-stat { display: flex; align-items: center; gap: 5px; } @media only screen and (max-width: 399px) { .activitypub-embed-meta span.ap-stat { display: none !important; } } .activitypub-embed-meta a.ap-stat { color: inherit; text-decoration: none; } .activitypub-embed-meta strong { font-weight: 600; color: #000; } .activitypub-embed-meta .ap-stat-label { color: #687684; } </style></div>


<p class="wp-block-paragraph">I&#8217;m replying to you from a WordPress site. Since WordPress is open-sourced, you get to decide:</p>



<ul class="wp-block-list">
<li>Where you host it</li>



<li>What analytics services you use on your site (if any)</li>



<li>what data you collect about your visitors. </li>
</ul>



<p class="wp-block-paragraph">It&#8217;s your website, you&#8217;re in control. </p>
]]></content:encoded>
					
					<wfw:commentRss>https://herve.bzh/using-wordpress-as-federated-blogging-platform/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<author>jeremy@jeremy.hu (Jeremy Herve)</author><post-id xmlns="com-wordpress:feed-additions:1">448698</post-id>	</item>
	</channel>
</rss>
