<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>Eventuallymaking</title>
        <link>https://eventuallymaking.io</link>
        <description>Software Engineer with more than 20 years of experience. I love to share about technologies and startups</description>
        <lastBuildDate>Sat, 12 Sep 2026 01:43:30 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>Writizzy</generator>
        <language>en</language>
        <image>
            <title>Eventuallymaking</title>
            <url>https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1763977836726-ljcigjg.webp</url>
            <link>https://eventuallymaking.io</link>
        </image>
        <copyright>All rights reserved 2026, Eventuallymaking</copyright>
        <item>
            <title><![CDATA[Migrating from Github to a European alternative]]></title>
            <link>https://eventuallymaking.io/p/migrating-from-github-to-a-european-alternative</link>
            <guid>https://eventuallymaking.io/p/migrating-from-github-to-a-european-alternative</guid>
            <pubDate>Wed, 09 Sep 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Among the important basic building blocks for building software that are monopolized by the US, I present to you: Github (Microsoft).]]></description>
            <content:encoded><![CDATA[<p>Among the important basic building blocks for building software that are monopolized by the US, I present to you: Github (Microsoft).</p>
<p>Github is much more than a git repository, it&#39;s also</p>
<ul>
<li>a social network where the open source world fights for stars</li>
<li>a software factory (Github Actions)</li>
</ul>
<p>And if we talk about numbers, Github has <a href="https://www.scrumlaunch.com/blog/GitHub-GitLab-Bitbucket">180M registered developers</a>, an estimated market share above 50%, with Gitlab (US) and Bitbucket (US-AU) sharing a large portion of the rest.</p>
<p>In short, if you&#39;re a developer, you probably have an account on it, to fork open source products, for your own projects or those of your company. The global software economy relies in part on this US actor, which raises some questions. What happens when your software economy relies on a foreign actor if it becomes hostile?</p>
<ul>
<li>In 2019, developers residing in Iran, Syria, Cuba, North Korea and Crimea saw access to their <strong>private code repositories</strong> as well as <a href="https://docs.github.com/en/site-policy/other-site-policies/github-and-trade-controls">their paid accounts completely blocked</a>.</li>
<li>In 2025, <a href="https://www.developer-tech.com/news/microsoft-copilot-continues-to-expose-private-github-repositories/">20,000 private Github repositories were indexed</a> by the Bing search engine and accessible for Microsoft Copilot AI.</li>
</ul>
<p>And broadly speaking, Microsoft/Github is subject to the Cloud Act and FISA, which requires it to provide all this data to the US administration upon request, particularly for threats to national security, which includes the protection of US economic interests.
If I translate into simpler terms, you have no guarantee that your code is protected if the US administration decides otherwise.</p>
<p>Fortunately, there are alternatives in Europe, and that&#39;s what we&#39;re going to talk about today.</p>
<h2>Self hosting</h2>
<p>The first option is to host open source solutions. In this category we will find many solutions based on gitlab and gitea.</p>
<p>But open source doesn&#39;t mean neutrality. These two companies are US-based and can change their terms of service or embed hostile code that triggers based on geolocation. This doesn&#39;t prevent forks, but you then have to manage to create a community of developers to maintain it. So I&#39;m dismissing these choices.</p>
<p>For Gitea however, there is already a European fork: <a href="https://forgejo.org/">Forgejo</a> maintained by the non-profit organization <a href="https://codeberg.org/">Codeberg</a>.</p>
<p>Forgejo is notably what was chosen by <a href="https://www.generation-nt.com/actualites/pays-bas-github-souverainete-numerique-forgejo-open-source-2076045">the Dutch administration to host the source code of public administrations</a>.</p>
<p>If you&#39;re a fan of self-hosting, Forgejo is presumably the only available solution. However, self-hosting comes with its own drawbacks, maintenance and management of infrastructure. So I propose to look at hosted solutions.</p>
<h2>Hosted solutions</h2>
<p>On the market of hosted solutions we will find products based on Forgejo precisely, of which the most obvious solution is <a href="https://codeberg.org/">codeberg.org</a>. But this is a solution reserved for open source projects so not at all suitable for your business needs if you have any.</p>
<p>We could also mention <a href="https://tangled.org/">tangled.org</a>, an excellent project born in Finland, one of my favorite finds, which is based on the ATProto protocol. The project is only made for open source today and includes a social dimension by default. But perhaps the arrival of <a href="https://atproto.com/blog/atproto-spaces-alpha">spaces</a> in ATProto will make it usable later for private projects. However, as it stands, for a business project, I cannot recommend it.</p>
<p>I&#39;m completely dismissing all solutions based on managed Gitlab, they&#39;re very good solutions but that doesn&#39;t satisfy the idea of finding a European solution.
On the other hand, for managed Forgejo we can mention:</p>
<ul>
<li>++<a href="https://codebahn.net/">Codebahn</a>++ (Sweden)</li>
<li>++<a href="https://www.codey.ch/">Codey</a>++ (Switzerland)</li>
</ul>
<p>Beyond that, we can find two solutions that have just emerged and are not based on Forgejo:</p>
<ul>
<li><a href="http://pushin.eu">pushin.eu</a></li>
<li><a href="http://rickub.com">rickub.com</a></li>
</ul>
<p>Both are in beta with wait list or invite only but I was fortunate enough to test rickub which is becoming my development platform for Writizzy and Hakanai.</p>
<h2>Testing <a href="http://Rickub.com">Rickub.com</a></h2>
<p>(First game, I&#39;ll let you find the reference hidden behind the name)</p>
<h3>Comparison</h3>
<p>Rickub positions itself as a Github replacement. We find most of what we&#39;re interested in on it, private and public repos, CLI, an MCP, Rickub actions (largely compatible with Github actions).</p>
<p>Under the hood, Rickub uses MicroVMs for CI, which is supposed to guarantee shorter startup time, better isolation and faster execution. Which we can verify on the Hakanai API build (3min vs 7min on github):</p>
<p>::gallery{columns=3}
<img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1788967051506-3wnst4z.jpg" alt="Build rickub" />
<img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1788967051862-1gvevqi.jpg" alt="Github time" />
::</p>
<p>In terms of interface, we find our bearings quite easily since it takes the habits we can have on Github.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1788967121808-jyv6sjy.png" alt="interface rickub" /></p>
<p>On the migration side, the process was fairly simple. I created a .rickub/workflows/deploy-api.yml file. It&#39;s the same format as Github action but with some subtleties that are described in the <a href="https://rickub.com/docs/actions">CI/Actions documentation</a> and in the <a href="https://rickub.com/docs/migrating-from-github">migration documentation</a>.</p>
<p>One thing I particularly liked is that test reports are native without having to go through an external plugin.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1788967289549-8ko5ea0.png" alt="test report" /></p>
<p>And that, believe it or not, is really nice. I would love in the future to have a historical dimension to know since which build a test fails or if certain execution times increase, if there are flaky tests etc… But all in due time, the product just came out.</p>
<h3>Pricing</h3>
<p>On the pricing side, we find a free plan that allows you to have 5 private repos, 500 CI minutes and 50 AI reviews (I didn&#39;t use this feature).</p>
<p>It&#39;s very good for many personal uses. It&#39;s a bit less generous than Github which offers unlimited private repos and 2000 CI minutes. But for CI, I would say that the gap should be measured knowing that Rickub&#39;s CI is faster. 500 min for side projects is more than enough.</p>
<p>Then you have paid plans. I chose the €3/month plan to benefit from 3000 CI minutes, much more than what I need, and here it&#39;s slightly cheaper than Github which charges the equivalent of €3.50/month (4 dollars).</p>
<p>In any case, I don&#39;t really care, this amount is relatively painless in my case, and here I&#39;m buying the fact that I&#39;m no longer the product as on Github, and that I&#39;m favoring EU products. Yes, tech has a price, some products have accustomed us to being free by appropriating our data and creating a monopoly. €3, I pay them without problems to get out of that.</p>
<h3>Open source repos</h3>
<p>I partially migrated for <a href="https://bloggrify.com/">Bloggrify</a> but in this case, the final decision to fully migrate hasn&#39;t been made yet.</p>
<p>Github is also, and even mainly, a social network. An open source project on Github has more ease because most people have an account there, so they can contribute easily. Most open source project evaluations are based on the number of stars, stars that we find on aggregators.</p>
<p>For example, the position of Bloggrify on <a href="http://jamstack.org">jamstack.org</a> depends on the number of stars on Github.</p>
<p>Similarly, there are robots that crawl Github to read projects related to a given tag, that&#39;s how Bloggrify was listed by certain sites in the past.</p>
<p>So already on this dimension, it&#39;s complicated to get rid of Github. So I left a mirror replication between the two but I&#39;m not sure it&#39;s very cool to manage issues and PRs on two systems at the same time.</p>
<p>But beyond that, for now, <a href="https://rickub.com/rickub/feedback/issues/5">rickub doesn't handle OIDC id-tokens</a> which allow you to publish packages on NPM, which prevents me from automating my Bloggrify releases on NPM.</p>
<h3>Conclusion</h3>
<p>Bottom line, I migrate without any regret for <a href="https://hakanai.io">Hakanai</a> and <a href="https://writizzy.com">Writizzy</a>. It&#39;s probably less obvious for open source projects. For professional/business use, I consider Rickub to be very promising and well deserves our attention. I imagine that not everything is perfect yet but that&#39;s precisely with use that the product will improve.</p>
<p>And if you&#39;re in Europe and you&#39;re still using US products, now&#39;s the time to start thinking about exit doors before it&#39;s too late…</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Default Transparency Trap on Bluesky and the ATProto Protocol]]></title>
            <link>https://eventuallymaking.io/p/the-default-transparency-trap-on-bluesky-and-the-atproto-protocol</link>
            <guid>https://eventuallymaking.io/p/the-default-transparency-trap-on-bluesky-and-the-atproto-protocol</guid>
            <pubDate>Mon, 31 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Public PDS, visible likes, exposed metadata: on Bluesky, everything crosses. Beware, transparency has a price.]]></description>
            <content:encoded><![CDATA[<p>You might know Bluesky? It&#39;s one of several Twitter clones born in 2019.</p>
<p>But it&#39;s far from &quot;just&quot; a clone, Bluesky was born from research projects within Twitter. It&#39;s literally the evolution that Twitter should have followed if the company hadn&#39;t been acquired by Elon Musk in 2021.</p>
<p>It was Jack Dorsey (then CEO of Twitter) who announced it in 2019. It was then Parag Agrawal who took the lead on the project before becoming CEO of Twitter.</p>
<p>So, it was a key project at Twitter that aimed to decentralize social networks.<br>The idea of decentralization was to find a solution to everything that killed Twitter: the concentration of too much power in the hands of a single company.<br>Bluesky wanted everything to be transparent and open to prevent all the abuses we can see on X with its algorithm widely biased to serve personal interests from being reproduced.<br>Moderation, recommendations, hosting, everything can be delegated to others, so each user can, in theory, choose what they see, where their data is hosted, and what gets recommended to them.</p>
<p>But this ideal does have some flaws. And that&#39;s what I&#39;d like to talk about today.</p>
<h2>Decentralized and Federated Networks</h2>
<p>Bluesky isn&#39;t the first to propose a decentralized network.</p>
<p>But if we&#39;re talking about social networks, in the more modern sense of the term, I&#39;d say one of the first is <a href="https://en.wikipedia.org/wiki/Usenet">newsgroups that worked on usenet</a>. If it appeared in 1979, I personally used it much later, during my studies (between 1997 and 2001). I mean, in 1979 I was more interested in learning how to properly put food in my mouth than in browsing American university servers.</p>
<p>Oh yes, by the way, since I was talking about my studies, it was during that same period that I started doing fansubs, amateur subtitling of Japanese anime, and that&#39;s when I discovered other decentralized social networks like IRC or <a href="https://en.wikipedia.org/wiki/Direct_Connect_(protocol)">Direct Connect</a>. Knowing that part of the illegal downloading of subtitled anime was done via newsgroups anyway. The loop was closed.</p>
<p>But for these networks, we&#39;re not really talking about federated networks. That is, if you were present on one IRC channel, you couldn&#39;t see what was happening on another IRC channel, and the same with Direct Connect.</p>
<p>The first federated <strong>social</strong> networks appeared around 2008 with <a href="https://fr.wikipedia.org/wiki/GNU_social">Laconica/StatusNet</a> then <a href="https://diasporafoundation.org/">Diaspora</a> in 2010. But there I have no personal anecdotes to tell about these networks because, I don&#39;t know why, but I completely missed them when they came out.</p>
<p>Still, there are plenty of interesting things to say about these two networks. Originally Laconica/StatusNet is a sort of refuge for the free software community against Twitter and besides the first versions of Mastodon ran on the OStatus protocol, itself a direct heir to the work done on StatusNet. So we can talk about a lineage between StatusNet and ActivityPub/Mastodon.</p>
<p>As for Diaspora, it&#39;s a bit less cheerful. If the project starts well with a successful <a href="https://www.kickstarter.com/projects/mbs348/diaspora-the-personally-controlled-do-it-all-distr">kickstarter campaign of $200,000</a> aiming to create a decentralized Facebook, one of the founders, Ilya Zhitomirskiy, took his own life at only 22 years old which gave a serious setback to the initial project. The Diaspora network then became notable in 2014 for being <a href="https://blog.diasporafoundation.org/4-islamic-state-fighters-on-diaspora">the digital refuge of the Islamic State</a>. The very nature of the network prevented any central action to combat content created by Daesh, which highlighted some of the challenges of federated networks and had consequences on the design of Bluesky later on.</p>
<p>We had to wait until 2016 to see a new initiative appear with Mastodon and then the ActivityPub protocol in 2018.
The network achieved some success with 15M users (but only 1M monthly active users) but it faced several design problems:</p>
<ul>
<li>a certain form of complexity in registration (choice of a server)</li>
<li>identity that is tied to the server which makes moving difficult</li>
</ul>
<p>Registering is already making a choice since the server can decide who it federates with or not, its internal moderation rules and if the server closes overnight, your account dies with it.</p>
<p>The fact that a server can be autonomous on everything, moderation, permission to leave etc… led several people to say that we left a kingdom instead to a federation of feudal fiefs.</p>
<p>And that&#39;s when Bluesky arrived with its ATProto protocol in 2019.</p>
<h2>Bluesky is Not ATProto</h2>
<p>Bluesky is the standard bearer but Bluesky is only an implementation of a protocol.
With this protocol, ATProto, there is one objective: it&#39;s that anyone can recreate an application like Bluesky, offer hosting for your data on a server (a PDS), enrich the protocol to add new types of applications. Recreate Facebook, LinkedIn, Instagram, everything becomes possible, with the same user base.</p>
<p>In practice we long pointed out that apart from Bluesky, there didn&#39;t seem to be anything else. But that was before. Bluesky now coexists with Eurosky, Graysky or Blacksky for microblogging and with many other applications like Tangled, Sifa.id, Flashes etc…</p>
<p>And to address the moderation questions raised by Diaspora, a user can now choose their moderation services and an application like Bluesky can also hide content.</p>
<p>This makes it possible to quickly address content that wouldn&#39;t belong on the network but it&#39;s flexible enough to allow you to view it on your own AppView if you wanted to.</p>
<p>As for the problems raised by Mastodon, around identity portability and the risk of choosing a server that changes its rules midway or decides not to federate with servers that interest you, well that&#39;s also solved. Identity is not tied to the server but to a directory and all functionality (moderation, feeds etc…) is portable from one AppView to another.</p>
<p>Now that I&#39;ve sold you the protocol a bit, I need to circle back to my original topic. Why is one of its greatest strengths also a risk for you?</p>
<h2>Default Transparency</h2>
<p>On the ATProto network, everything is public. That is, you can view the entire network, know the number of users, the active ones, conduct network studies to observe the spread of a specific idea, create tools to identify networks of suspicious accounts.</p>
<p>It&#39;s a huge advantage and one of the main criticisms leveled at X since they closed their APIs. In Europe, X had a legal obligation to provide data access to approved researchers to combat misinformation. Musk having a certain interest in not being able to study algorithmic biases on his platform, he is now in conflict with European authorities on the subject.</p>
<p>But that&#39;s impossible on ATProto. Except this strength also proves to be a real problem for you.</p>
<p>You may have seen the new &quot;news&quot; tab in <a href="http://mu.social">mu.social</a> (an alternative client to bluesky)? In it you can indicate your preferences in terms of information:</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1788014460629-ykk6had.png?width=400" alt="First step of the news screen" /></p>
<p>And you can also select newspapers to follow:</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1788014510615-pe30804.png?width=400" alt="Step 2 of the news screen" /></p>
<p>But note the last remark:</p>
<blockquote>
<p>I understand my topic and source selections will be published as a public record linked to my account, and agree to share them.</p>
</blockquote>
<p>Everything is public.</p>
<p>But in reality, that applies to everything. All my likes are public, all the people I follow, all the people I block.</p>
<p>But it goes beyond that. I invite you to look at <a href="https://pdsls.dev/at://did:plc:g3tbzu5tcz4evra4mf5wa67c">my PDS data</a>.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1788014668026-2zays3j.png?width=400" alt="my PDS data" /></p>
<p>You have plenty of information here:</p>
<ul>
<li>I have a profile on <a href="http://sifa.id">sifa.id</a></li>
<li>I have &quot;endorsed&quot; people on <a href="http://sifa.id">sifa.id</a> and you can know who</li>
<li>I have a publication on Offprint (an alternative to Writizzy that I wanted to test)</li>
<li>I published Writizzy on atstore</li>
<li>I have a publication on Writizzy (this blog)</li>
</ul>
<p>In short, all my activity linked to my handle @eventuallycoding.com is publicly available on my PDS.</p>
<p>And that, oddly enough, is a problem.</p>
<p>You don&#39;t need to know who I&#39;m subscribed to on standard-reader, and therefore what I read. The same way you don&#39;t need to know my political, sexual or religious orientations.</p>
<p>The point of decentralization is, in part, to avoid giving a single company too much information about me by crossing all my data. With my use of ATProto, I just gave this intersection away for free to everybody.</p>
<p>Imagine a forum powered by atproto where I would come to talk about personal problems, an addiction, a complicated family situation. You shouldn&#39;t know about it.</p>
<p>Anyway, I really like the potential of ATProto. For example, I admit I was seduced at first when I built my profile on <a href="http://sifa.id">sifa.id</a>: <a href="https://sifa.id/p/eventuallycoding.com">https://sifa.id/p/eventuallycoding.com</a>, a sort of neo-LinkedIn. Well first, technically it&#39;s super interesting on one hand and it appeals to the geek in me but that&#39;s secondary for the general public.
The other point is that I found it powerful to see that <a href="http://sifa.id">sifa.id</a> automatically aggregated my bluesky posts, my tangled contributions, or my blog articles.</p>
<p>But thinking about it, there is a risk. I don&#39;t necessarily want to see my vacation photos posted on flashes/instagram or posts on the forums I mentioned earlier arriving in the same place.</p>
<p>Anyway, transparency yes, but up to a point.</p>
<h2>What If Information Became Private?</h2>
<p>For now, atproto has no concept of private data. But that could change. A new feature is being rolled out with <a href="https://atproto.com/blog/atproto-spaces-alpha">ATProto Spaces</a>.</p>
<p>On paper, it seems promising. It will make it possible to have private information on which I could decide who has access. The use cases we can quickly imagine:</p>
<ul>
<li>forums with private sections reserved for members</li>
<li>native private messages on bluesky (currently private messages are not stored on ATProto)</li>
<li>member-only content on a blog (Writizzy already handles this case, but by not using atproto precisely)</li>
<li>private drafts on a blog</li>
</ul>
<p>etc…</p>
<p>But beware, this is far from sufficient. There is no notion of encryption. Data is private, it&#39;s the PDS that will provide access or not to the data but it is stored in clear text. Sure, that limits who has access to the data, but the data exists, accessible to administrators of your PDS.</p>
<p>You could of course host your own PDS, but without encryption I wouldn&#39;t make it a safe for sensitive information.</p>
<p>In any case, that doesn&#39;t solve <strong>a conceptual problem</strong>, the fact of associating a handle (your identity) with a bunch of information that shouldn&#39;t be mixed.</p>
<p>On the classic Web, we separated our uses through compartmentalization. I created an anonymous Reddit account, a LinkedIn account etc… Here, the promise of portability pushes the opposite effect: a single identity, which brings together all the info on a server (a PDS).</p>
<h2>The Solutions?</h2>
<p>ATProto is an excellent technical foundation to allow us to build all kinds of decentralized and federated social networks and finally get out of Big Tech.</p>
<p>First we need to wait for some important protocol developments:</p>
<ul>
<li>end-to-end encryption on some data. Yes I understand that it&#39;s difficult to encrypt Spaces and manage key rotation at each entry/exit, but we could however encrypt DMs between two individuals.</li>
<li>a mechanism for hiding metadata (for example my news display preferences, my likes, the people I block) like <a href="https://en.wikipedia.org/wiki/Zero-knowledge_proof">Zero knowledge proof</a></li>
</ul>
<p>But maybe the real issue is personal.</p>
<p>What is certain is that atproto, even if it makes it possible to solve the problem of excessive centralization by a private player, should not give us illusions. If it solves the problem of transparency, it doesn&#39;t address that of respect for our privacy. I expect more from what it proposes but in any case, the challenge of confidentiality rests with us.</p>
<p>We must put in place a certain form of personal hygiene with respect to these networks by recreating the compartmentalization we had before with a strict separation of identities. Even if it&#39;s tempting and encouraged, we must develop the reflex of using multiple identities to separate activities (Public/Professional/Associative etc…). We should have multiple handles. <strong>Don&#39;t treat the Bluesky login the same way you might have treated the Google login.</strong> </p>
<p>Finally, many of us have too easily gotten into the habit of entrusting sensitive information to the internet. Nobody needs to know your date of birth, your location, your marital status and so on. Don&#39;t recreate your own <a href="https://en.wikipedia.org/wiki/Panopticon">panopticon</a>.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What if the AI bubble burst?]]></title>
            <link>https://eventuallymaking.io/p/what-if-the-ai-bubble-burst</link>
            <guid>https://eventuallymaking.io/p/what-if-the-ai-bubble-burst</guid>
            <pubDate>Fri, 28 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What if the AI bubble burst? Is it already a bubble? How could it burst? What would the consequences be?]]></description>
            <content:encoded><![CDATA[<p>If there&#39;s a trendy topic in tech right now, it&#39;s AI. And it&#39;s normal, given the amounts invested on one hand, the societal transformations on the other, not to mention all the issues and risks related to employment and ecology.</p>
<p>But there&#39;s one theme that seems to unite just about everyone, pro and anti AI, it would be a bubble, and it&#39;s going to end up bursting.</p>
<p>Well, now&#39;s the time to ask the question. Is it a bubble? Can it burst and when? And what would the consequences be if it did?</p>
<h2>Is it a financial bubble?</h2>
<p>If the question seems obvious to many, it deserves a closer look. Are we really in a financial bubble? Is the value we&#39;re giving to AI companies realistic?</p>
<p>Are we witnessing a historic transformation... or a speculative bubble?</p>
<h3>First clue: valuations that seem absurd</h3>
<p>A financial bubble isn&#39;t simply a sector that rises very quickly. Otherwise Amazon in 2010, Tesla in 2020, or Nvidia today would all have been bubbles. The central question is one of <strong>sustainability</strong>: is the value attributed to these companies realistic? Are massive investments in AI based on solid financial foundations?</p>
<p>At first glance, it doesn’t look good.</p>
<p>Anthropic generated about 850 million dollars in revenue in 2024. Yet, a few months later, the company was valued at nearly 19 billion dollars. More than <strong>twenty times</strong> its annual revenue.</p>
<p>You need to understand that in finance, there are two logics:</p>
<ul>
<li>For a traditional company, the value of a stock corresponds to known performance in the <strong>present</strong>. It depends on profits generated and physical assets (factories, stores, inventory) or intellectual assets (patents).</li>
<li>For a tech startup, however, the value rests on the promise of <strong>future</strong> gains. Its valuation doesn&#39;t reflect its current revenues, often low, but anticipates their explosion to come. A &quot;multiple&quot; is then applied to its revenue or recurring revenue. If this multiple rarely exceeds 10 to 15 times revenue (especially since the interest rate hike post-2021), AI pioneer companies today reach levels well above that, sometimes ranging from <strong>20 to over 50 times their revenue</strong>.</li>
</ul>
<p>However, just because these multiples are enormous doesn&#39;t mean they&#39;re unusual and abnormal. They&#39;re abnormal for the period, but not abnormal in absolute terms.
In the past, Shopify, Snowflake, Amazon, all these companies exceeded x50 and the bets turned out to be winning.</p>
<p>So, wrong trail.</p>
<p>Verdict: ❌ inconclusive</p>
<h3>Second clue: an avalanche of capital</h3>
<p>Over the past three years, more than <a href="https://www.idc.com/resource-center/blog/ai-infrastructure-spending-holds-near-90-billion-in-q1-2026-as-arm-overtakes-x86-in-accelerated-servers-2026-forecast-raised-to-497-billion/">1,000 billion dollars</a> have been committed to the AI ecosystem.</p>
<p>According to the BIS (Bank for International Settlements), <a href="https://www.bis.org/publ/bisbull120.pdf">5% of US GDP is today linked to investments in AI</a>. This amount exceeds what was observed during the previous internet bubble in 2000.</p>
<p>And in absolute value, the Internet bubble represented approximately <a href="https://www.myfinanceprocess.com/the-dot-com-bubble/">600 billion</a> dollars of the time. Adjusted for inflation, we&#39;re again approaching current investments in AI.</p>
<p>On the other hand, by contrast, the subprime crisis involved over <a href="https://en.wikipedia.org/wiki/Subprime_mortgage_crisis">10,500 billion dollars</a> in residential mortgage debt. But be careful, we&#39;re comparing apples and oranges in this specific case.</p>
<p>What&#39;s certain is that the amounts at stake are colossal. But colossal doesn&#39;t mean abnormal. Telecoms in the 80s/90s, mobile in the 2000s also attracted gigantic sums without people talking about a bubble at the time.</p>
<p>Verdict: ❌ concerning but inconclusive</p>
<h3>Third clue: what if the customers were... the investors?</h3>
<p>Here we touch on one of the specifics of the potential current crisis: <strong>the revenue of AI companies increases through their own spending on AI</strong>.</p>
<p>AI actors aren&#39;t just companies that create LLMs. It&#39;s also cloud hyperscalers or chip manufacturers. It&#39;s a perfect form of circular economy (round tripping)</p>
<pre><code class="language-markdown">NVIDIA invests in OpenAI
        ↓
OpenAI reserves computing
        ↓
OpenAI signs cloud contracts with Oracle, Microsoft, etc.
        ↓
These providers buy NVIDIA GPUs
        ↓
Revenue comes back to NVIDIA
</code></pre>
<p>The problem with this circular economy is that it self-feeds and we don&#39;t yet know if real demand will follow. If the only customers for AI are the other AI players, let&#39;s just say that&#39;s at least suspicious.</p>
<p>All projections for new datacenters, investments to build new chips, etc... would potentially be thrown away in case of market reversal since for now the only customers for these companies, at this scale, are themselves. And the sums we&#39;re talking about are in the tens of billions.</p>
<p>Verdict: ⚠️ concerning</p>
<h3>Fourth clue: non-existent profitability</h3>
<p>Investments in AI <a href="https://isaiprofitable.com/">are not profitable</a> except for NVidia but that&#39;s a bit natural when you&#39;re selling the hardware (see clue 3). For the major players (Amazon, Google, Microsoft, Meta), for every euro spent, less than 10% of the sum comes back in revenue, with Meta winning the small palm for having only 1% coming back in revenue.</p>
<p>Even major players like OpenAI, Anthropic (or Mistral in France) struggle to exceed 40/50% of the sum in return.</p>
<p>In short, these players aren&#39;t profitable.</p>
<p>But this clue is very shaky. It&#39;s rather common to over-invest in the startup phase, especially in industrial fields that require investment.</p>
<p>Amazon wasn&#39;t profitable until its 9th year, Tesla until its 17th year, Uber 14 years. A phase of significant losses is nothing unusual when a sector is building the infrastructure for a new market. It&#39;s even almost expected.</p>
<p>In reality, the problem isn&#39;t that AI isn&#39;t profitable today, that&#39;s normal. The real issue is whether it <strong>can</strong> be profitable tomorrow, once investments have stabilized. This question remains largely open. Are today&#39;s investments sustainable or do we need to reinvest the same amount every year?</p>
<p>For now, given the obsolescence of the hardware used (chips for training and inference), the answer doesn&#39;t seem to be going in the right direction.</p>
<p>Verdict: ⚠️ concerning</p>
<h3>Fifth clue: when history begins to repeat itself</h3>
<p>Remember the bubble of the 2000s?</p>
<p>In 2000, all you had to do was rename your company with a .com, like sausage.com and boom, valuation increased. Irrationality was so great that investors rushed at anything and everything, and especially everything, just to not miss out on the next gem.</p>
<p>And let&#39;s remember that investors aren&#39;t always the best when it comes to rationality, because each time, during major crises, we get a new version of &quot;this time, it&#39;s different&quot; which basically justifies that economic fundamentals can be neglected.</p>
<p>Well, we&#39;re seeing something similar today. All companies are integrating AI, at least in their investor pitches. Some have started reserving .ai extensions just to ride the wave and I&#39;m more than suspicious of the valuations of some companies like Lovable (6 billion), Cursor (60 billion), Devin (26 billion). It&#39;s cool for their creators but, making a wrapper on existing AIs, I&#39;m not convinced that&#39;s worth that price.</p>
<p>Verdict: ⚠️ concerning</p>
<p>So yes, I can&#39;t say 100% that we&#39;re in a financial bubble but it looks like one. Extraordinary valuations, gigantic investments, an economy that runs largely on itself, companies still far from profitability and, above all, discourse that&#39;s starting to sound oddly similar to that of past major bubbles.</p>
<p>At this point, the most interesting thing therefore maybe isn&#39;t to know <strong>if</strong> a bubble exists.</p>
<p>It&#39;s to understand <strong>how it could burst</strong>.</p>
<p>Because all bubbles don&#39;t burst the same way.</p>
<h2>The triggers</h2>
<p>Bubbles always end up bursting but the detonator is often unpredictable. We can easily identify the weaknesses but it&#39;s sometimes a trivial event that ends up bringing down the system.</p>
<p>Despite this, I propose we play a game and try to list the possible triggers for a potential AI crisis.</p>
<h3>Option 1: The IPOs of Anthropic and OpenAI go badly</h3>
<p>Anthropic and OpenAI are planning upcoming IPOs. While the exact dates aren&#39;t yet known, this could happen between the 4th quarter of 2026 and the 2nd quarter of 2027.</p>
<p>During these IPOs, we&#39;ll see if &quot;retail investors&quot; decide that the stock price is actually worth what we&#39;re paying for it today. And precisely, there are several problems as we&#39;ve seen:</p>
<ul>
<li>valuations seem far too high compared to revenue generated</li>
<li>profitability is too low</li>
</ul>
<p>To that I&#39;d add another important problem: <strong>the amount of liquidity available on the market</strong>.</p>
<p>The theoretical valuation of Anthropic is <a href="https://www.lemonde.fr/pixels/article/2026/05/28/ia-anthropic-leve-65-milliards-de-dollars-et-depasse-openai-en-valorisation_6694530_4408996.html">965 billion</a> dollars and OpenAI isn&#39;t far from this figure.
Obviously an IPO won&#39;t be for the full value but a part, let&#39;s say 10% (100 billion).</p>
<p>The records for IPO amounts oscillate between 35 and 50 billion.
To go buy 200 billion (for Anthropic and OpenAI), will markets follow? Will the first raising, which would already be exceptional, not handicap the second?</p>
<p>Option A: both raisings happen in these orders of magnitude, it will necessarily be by selling other assets to mobilize cash, so by creating a drop in the prices of other companies.</p>
<p>Option B: it&#39;s impossible to raise these amounts, and the values of both companies drop</p>
<p>Despite this, I want to set this scenario aside because I find it obvious, too easy and therefore unlikely.</p>
<h3>Option 2: Big investors reduce their sails</h3>
<p>Today it&#39;s hyperscalers that are investing the most in the big AI companies, OpenAI and Anthropic to name just them for now. And when I speak of investment, I also speak of material investment with facilitated access to infrastructure.</p>
<p>Except that for now the return on investment is low. So imagine that tomorrow, Microsoft announces it&#39;s reducing these investments and lowering these datacenter/infrastructure costs.</p>
<p>The market won&#39;t just look at Microsoft and LLM publishers. It will look at Nvidia, AMD, TSMC, electricity producers. The whole chain.</p>
<p>Despite this, this option doesn&#39;t suit me either. True, for Microsoft or Amazon, the situation isn&#39;t rosy, but it&#39;s not catastrophic either, because these companies benefit from public contracts, particularly in the military field. And deciding to cut investments now would be precipitating failure, shooting yourself in the foot, which seems unlikely to me.</p>
<h3>Option 3: Physical slowdown</h3>
<p>This trigger is based on a very simple idea: datacenters have enormous resource needs. Eventually we know that these resources won&#39;t be available, whether for energy or mineral resources.</p>
<p>Imagine that tomorrow:</p>
<ul>
<li>we have supply difficulties on rare earths, for example related to a conflict with China (60 to 70% of mining extraction and more than 85% of refining comes from China)</li>
<li>that available electricity can no longer be supplied for datacenters (e.g. in <a href="https://www.irishtimes.com/business/2024/08/27/council-refuses-permission-for-new-google-data-centre-amid-electricity-pinch/">Dublin</a>, the <a href="https://www.datacenterdynamics.com/en/news/dominion-energy-says-it-will-speed-up-transmission-deployments-easing-ashburn-data-center-power-issues/">US</a>, and <a href="https://www.morganlewis.com/pubs/2026/03/singapore-announces-data-center-capacity-allocation-call">Singapore</a>)</li>
</ul>
<p>We could imagine a slowdown not financial... but physical. And we fall back on option 2. We won&#39;t just look at the datacenter, we&#39;ll look at the whole chain, all planned investments that won&#39;t be made.</p>
<p>This option is much more credible, in my opinion, but in the medium term. It seems difficult for me to imagine a significant event before 2028. However, I may be naive because relations with China keep degrading and datacenter construction refusals are already increasing. I therefore classify this lead as <strong>credible</strong>.</p>
<h3>Option 4: AI hits a ceiling</h3>
<p>This is a real issue. Imagine that Opus 8 is &quot;only&quot; 3% better than its predecessor? Investors pay to see exponential growth. This is exactly what motivates all the circus we usually see at each release from these giants&#39; marketing teams. They have to sell us the incredible, because they&#39;ll only be paid for the impossible.</p>
<p>What would happen if this rate of improvement in model performance slowed? Again, we come back to option 2. A major investor could decide to lower these datacenter expenses and you know the rest.</p>
<p>Is this option credible? The improvement over 1 year has been staggering and almost frightening. Despite this, I have the impression that the room for progress remains significant. But I say that being far from being a specialist. I would however tend to reject this option for at least the next 2 years.</p>
<h3>Option 5: A macro shock</h3>
<p>This option is more traditional. What if tomorrow a huge shock shook the economy with no relation whatsoever to AI. It could be an energy crisis, a political crisis (an open conflict between Europe and Russia for example), the Chinese real estate crisis that&#39;s been brewing for years.</p>
<p>This is typically the option where <a href="https://en.wikipedia.org/wiki/There_are_unknown_unknowns">unknown unknowns</a> are more numerous than others. Since this option is by nature completely unpredictable, I won&#39;t consider it either.</p>
<p>At this point you might tell me, &quot;ok but you haven&#39;t retained any option, so you don&#39;t think the bubble will burst?&quot;</p>
<p>That&#39;s not quite it. I think most of these causes are too predictable, or too long term.
Again, predicting the trigger is particularly difficult. It will maybe be a combination of factors with a domino effect we don&#39;t anticipate today. The trigger for the burst of the internet bubble in 2000, for example, was the Federal Reserve&#39;s rate hike.</p>
<p>In any case, I have trouble not imagining a trigger in the next 2/3 years.</p>
<p>On the other hand, the consequences won&#39;t necessarily be what everyone imagines.</p>
<h2>The consequences</h2>
<p>I&#39;m not done bothering you with multi-section chapters :)</p>
<p>We often imagine that the burst of a bubble is like the 2000 internet bubble or the subprime one: a huge market crash, lots of companies on the ground and done.</p>
<p>Well, not necessarily. Bubbles always end up bursting but it can be slow and smelly and we&#39;ll see again several scenarios.</p>
<h3>Scenario 1: The bubble bursts violently</h3>
<p>That&#39;s the easy scenario, the one we all have in mind. Valuations collapse, some major players go bankrupt, followed by layoffs in the tens of thousands and project shutdowns.</p>
<p>For this scenario to be as impressive as possible, we can imagine a Big Tech company going under, a sort of modern Lehman Brother, or Worldcom to draw the parallel with the internet bubble.</p>
<p>Beware, this scenario is obviously the most painful because it won&#39;t just affect &quot;just&quot; tech. We&#39;re talking about all hardware sellers, electricity suppliers, insurance companies that covered transactions, retirement savings plans, stocks etc... because yes, a large part of current investment is based on US values, particularly in tech.</p>
<p>I insist, it will be very painful even if you think you&#39;re far from AI. The burst of the internet bubble was between 60 and 80% loss of value of stock indices, millions of jobs lost.</p>
<h3>Scenario 2: A dilution</h3>
<p>We might not necessarily have as cinematic a scenario as the first. We could simply have a gradual decrease in investments but a maintenance of infrastructure and a reabsorption of large LLM publishers by hyperscalers.</p>
<p>It would potentially be the end of the game for Anthropic, OpenAI as independent entities and the losses would be largely absorbed by GAFAM.</p>
<p>(I&#39;m not talking about xAI which is already part of a consortium or Gemini which is part of Google)</p>
<p>It wouldn&#39;t be an explosion but a dilution of the AI bubble into the accounts of big techs</p>
<p>I speak of dilution but we could also speak of consolidation. We&#39;d certainly have fewer actors but a large part would be absorbed by the more resistant ones, Google, Amazon, Tencent for example.</p>
<p>It would be less spectacular but not without consequences either. Part (and only part) of the investments would be set aside. Heavy investments planned for in 5 years would be stopped, so with more time to rebuild correct budgets. There would still be layoffs but less massive.</p>
<p>My little pinch in the heart in these two scenarios is that I can hardly see a European player like Mistral survive this scenario without being completely absorbed, unless Europe decides to invest massively through public procurement. The gap is large and I find their strategy poorly lisible today, and even poorly anchored in the tech ecosystem. But I wish them the best, because we need a European champion on the subject. Even if at worst we&#39;ll cobble together things with open weight models.</p>
<p>Now you know what?</p>
<p>If we exclude the Mistral case, despite all this, I&#39;m almost hoping it happens and I&#39;ll explain why.</p>
<h2>Why it wouldn&#39;t be so bad</h2>
<p>A bubble, let&#39;s remember, is misallocated capital. Now, I&#39;m not saying that AI as a technology isn&#39;t worth it. It&#39;s completely redefining many professions. But is that reason enough to do anything and everything, I&#39;m not sure.</p>
<p>When Google questions its <a href="https://sustainability.google/reports/google-2024-environmental-report/">objective of carbon neutrality</a> 2030, it&#39;s a failure for everyone. And then, is it healthy to have this race to the bottom for datacenters that we know we can&#39;t all power with electricity, except to reopen gas power plants?</p>
<p>Besides, when I talk about misallocated capital, I&#39;m very happy for the people who created Lovable or Cursor, that&#39;s cool for them. But all this capital to create a tech that&#39;s already being competed with by tons of products vibe coded 2 years later, that&#39;s a shame. The same money could have funded something more useful.</p>
<p>Capitalistic irrationality, excesses on mineral resources that plunge us into a RAM and component crisis, increased tensions between countries, and simply the current climate around AI that&#39;s becoming unbearable between pros and antis, I find that&#39;s a lot of reasons to hope it stops.</p>
<p>If the bubble bursts it will sign a form of return to rationality. I don&#39;t believe in the disappearance of the tech, the same way the internet didn&#39;t disappear in 2000 and the train also survived <a href="https://fr.cointelegraph.com/news/5-biggest-economic-bubbles-in-history">the railway bubble</a> of the 1840s.</p>
<p>What disappears in a bubble isn&#39;t necessarily technologies: it&#39;s mainly absurd valuations, projects that had no viable business model and investments made because &quot;everyone&#39;s doing it&quot;.</p>
<p>More rationality means better thought-out investments, R&amp;D more focused on optimizing what we&#39;ve already learned: mixtures of experts, quantization, pruning, HBM, model optimization. We need to now do as much but with less. It&#39;s a necessity.</p>
<p>We already have enough to work with what we have in hand and it wouldn&#39;t be bad to pause a bit, think about the uses that work, and there are already some, find a real path to profitability and redirect capital, particularly toward the challenges of decarbonizing the economy (electrification of the vehicle fleet for example) or adaptation measures to climate change.</p>
<p>Will the burst of the AI bubble see the end of AI? Not so sure. It will be more of a landing. But whatever the scenario, it will be beneficial, a return to economic AND ecological fundamentals.</p>
<p>Don&#39;t be mistaken, given the sums already invested, the burst will hurt, a lot, but the longer it takes, the worse it will be. The band-aid needs to be ripped off, quickly.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My software stack to build products]]></title>
            <link>https://eventuallymaking.io/p/my-software-service-stack-to-build-products</link>
            <guid>https://eventuallymaking.io/p/my-software-service-stack-to-build-products</guid>
            <pubDate>Tue, 25 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[My European software radar: the complete list of software (hosting, payment, monitoring) that I use or recommend to launch a product in Europe.]]></description>
            <content:encoded><![CDATA[<p>I would like to list here the software that I use or recommend to create products.
I have an approach that deliberately aims to support the European market, so I prioritize, in order:</p>
<ul>
<li>European software</li>
<li>Non-US open source software (self hosting)</li>
<li>US open source software</li>
<li>Non-US software</li>
<li>US and Chinese software.</li>
</ul>
<p>(Despite this, you will see that I have 28% US software)</p>
<p>Here I only talk about the basic building blocks for creating a company, support software, observability, emailing, payment, etc…</p>
<p>::toc{open=&quot;true&quot;}
::</p>
<h2>Hosting</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Usage</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://www.scaleway.com/">Scaleway</a></td>
<td>French</td>
<td>S3 storage</td>
</tr>
<tr>
<td><a href="https://www.hetzner.com/">Hetzner</a></td>
<td>German</td>
<td>Dedicated machine to run Coolify.</td>
</tr>
<tr>
<td><a href="https://coolify.io/">Coolify</a></td>
<td>Hungary</td>
<td>PAAS I&#39;m thinking of switching to Scaleway which is more suited to infrastructure as code</td>
</tr>
<tr>
<td>Github</td>
<td>US</td>
<td>Git hosting Currently testing an alternative. Stay tuned :)</td>
</tr>
</tbody></table>
<h2>Payment</h2>
<p>Criteria: Merchant of record, metered billing, coupons, connect</p>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Comments</th>
</tr>
</thead>
<tbody><tr>
<td>Stripe</td>
<td>US</td>
<td>Sorry… For now I haven&#39;t been able to get around it</td>
</tr>
</tbody></table>
<p>Alternatives that I couldn&#39;t test:</p>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://www.creem.io/">creem.io</a></td>
<td>Estonia</td>
<td>Missing metered billing and connect part</td>
</tr>
<tr>
<td><a href="https://www.mollie.com/">Mollie</a></td>
<td>Netherlands</td>
<td>All pricing management and metered billing has to be done manually</td>
</tr>
<tr>
<td><a href="https://www.paddle.com/">Paddle</a></td>
<td>UK</td>
<td>no Stripe Connect equivalent</td>
</tr>
</tbody></table>
<h2>Analytics</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Usage</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://openpanel.dev/">Openpanel</a></td>
<td>Sweden</td>
<td>Web and product analytics</td>
</tr>
</tbody></table>
<h2>DNS - CDN</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Usage</th>
</tr>
</thead>
<tbody><tr>
<td><a href="http://Bunny.net">Bunny.net</a></td>
<td>Slovenia</td>
<td>DNS, CDN, WAF, Optimization, Edge</td>
</tr>
</tbody></table>
<h2>Support</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Usage</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://getfernand.com/">Fernand</a></td>
<td>France</td>
<td>Help desk</td>
</tr>
</tbody></table>
<p>alternative often cited: <a href="https://crisp.chat/">Crisp</a> (France)</p>
<h2>Monitoring - logging - observability</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Usage</th>
</tr>
</thead>
<tbody><tr>
<td><a href="http://Phare.io">Phare.io</a></td>
<td>Estonia</td>
<td>uptime</td>
</tr>
<tr>
<td>Sentry</td>
<td>US</td>
<td>error tracking (currently switching to bugsink)</td>
</tr>
</tbody></table>
<p>Alternatives currently being evaluated to replace Sentry:</p>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody><tr>
<td>BugSink</td>
<td>Self hosted (Europe)</td>
<td>error tracking</td>
</tr>
<tr>
<td><a href="https://openobserve.ai/">OpenObserve</a></td>
<td>Self hosted (US)</td>
<td>Observability</td>
</tr>
</tbody></table>
<h2>Feedbacks</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Usage</th>
</tr>
</thead>
<tbody><tr>
<td>Fider</td>
<td>Open source (country ?)</td>
<td>Feedback, changelog, roadmap</td>
</tr>
</tbody></table>
<p>European Alternatives: <a href="https://upvoty.com/">upvoty (FR)</a>, <a href="https://litefeedback.com/">LiteFeedback (FR)</a>, <a href="https://feedfa.st/">Feedfast (RO)</a>,</p>
<h2>Emails</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
<th>Usage</th>
</tr>
</thead>
<tbody><tr>
<td>Scaleway TEM</td>
<td>France</td>
<td>Transactional emails</td>
</tr>
<tr>
<td>AWS</td>
<td>US</td>
<td>Marketing emails</td>
</tr>
</tbody></table>
<p>No European actor allows me to send marketing emails at AWS prices. It&#39;s on average x10 on prices, which is totally prohibitive.</p>
<h2>Company blog</h2>
<table>
<thead>
<tr>
<th>Actor</th>
<th>Country</th>
</tr>
</thead>
<tbody><tr>
<td><a href="https://writizzy.com/">Writizzy</a></td>
<td>France</td>
</tr>
</tbody></table>
<p>Well yes, of course I use my own product, what did you think I was going to put? :)</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Social networks: what if we had the solution to escape US Big tech?]]></title>
            <link>https://eventuallymaking.io/p/social-networks-solution-escape-american-giants</link>
            <guid>https://eventuallymaking.io/p/social-networks-solution-escape-american-giants</guid>
            <pubDate>Wed, 19 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[What if the answer to Tech monopolies wasn't a new application, but a new way of designing the Web?]]></description>
            <content:encoded><![CDATA[<p>When you look at topics around privacy or sovereignty, one problem regularly stands out: social networks.</p>
<p>And this subject of networks is particularly sensitive. Because while they are often seen as simple leisure tools where you post cat pictures, they are actually real information highways. Media, politics, sports, culture, social and family ties, romantic relationships, everything goes through networks.</p>
<p>But as you should know, information is power.</p>
<p>What happens when a handful of people control these networks? When they can collect and analyze a considerable amount of information about us, decide what we see or don&#39;t see, based on their own interests?</p>
<p>In short, we would be wrong not to take them seriously, and it&#39;s an issue, particularly in Europe at a time when we regularly talk about sovereignty.</p>
<p>But it&#39;s difficult to create social networks. It&#39;s expensive in the first place. Few investors in Europe are willing to finance the next LinkedIn, the next Twitter, or the next Youtube. And most importantly, to hope for success, you need to convince you, but also convince your friends, your family, your colleagues because otherwise, it has no interest. This is what we call the network effect: <strong>the value of the product is proportional to the number of users using it</strong>, which makes the arrival of new players almost impossible.</p>
<p>And yet, <strong>there is today another way</strong>.</p>
<p>What if, instead of trying to build the next Twitter, we completely changed the way social networks work?</p>
<p>What if we returned, in a sense, to the origins of the Web: a more open and decentralized Web, where you could choose your provider without losing access to the rest of the network?</p>
<p>In short, let me introduce you to a protocol that could help us redefine our social networks and create opportunities, particularly in Europe: ATProto.</p>
<h2>Bluesky is not ATProto</h2>
<p>You may know <a href="https://bsky.app/">Bluesky</a>?</p>
<p>Bluesky is a new Twitter with around 43 million users. If its success remains modest compared to its predecessor, its growth has been rather dynamic over 4 years and varies depending on regular waves of departures from X. Thanks Elon…</p>
<p>But you might say, Bluesky is just another US company, so another monopoly in the making. Yes, certainly, but you need to look under the hood.</p>
<p>Bluesky is based on a protocol: AT Protocol. This protocol defines the data present on the network, how we store it, how we view it, how we can moderate it (label it), in short, how the network works.</p>
<p>More precisely, it means that Bluesky is not required to own your data to display it. On Twitter, Substack or Medium, the data is owned by these companies and can be filtered, modified, or monetized without your consent.</p>
<p>Here it&#39;s different. Your data is hosted on a PDS (Personal Data Server), and this PDS doesn&#39;t necessarily belong to Bluesky. For example, my data is hosted by <a href="https://eurosky.tech/">Eurosky</a>, a European PDS.</p>
<p>And I&#39;d like us to pause for a moment on the Eurosky homepage:</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1786351945081-db0vg4u.png?width=800" alt="Eurosky homepage" /></p>
<p>Eurosky is also behind <a href="https://mu.social/">mu.social</a>, an alternative Bluesky client, and mu is the first prefiguring <strong>thousands of other social apps.</strong></p>
<p>Because yes, the ATProto protocol is so open that each piece of the puzzle can be replaced or extended. And that&#39;s where we can start having fun.</p>
<p><strong>Everyone can build on top of it</strong>. We can define our data, so we can build alternatives to Instagram (<a href="https://www.flashes.blue/">flashes</a>, <a href="https://grain.social/">grain</a>), to Pinterest (<a href="https://currents.is/">current.is</a>), to Substack and Medium (<a href="https://leaflet.pub/">Leaflet</a>, <a href="https://leaflet.pub/">Writizzy</a>), to Tiktok (<a href="https://sprk.so/">Spark</a>, <a href="https://skylight.social/">Skylight</a>), to InoReader (<a href="https://glean.at/">Gleen</a>), or even to Github (<a href="https://tangled.org/">Tangled</a>), all based on the same architecture, but especially, already benefiting from a user base of 45 million people.</p>
<p><strong>The network effect is already there</strong>.</p>
<p>Bluesky is not ATProto, it&#39;s one piece of a much larger ecosystem: <strong>the atmosphere</strong>.</p>
<h2>The lexicons</h2>
<p>By default, the data present on ATProto is made to display short messages. It&#39;s the famous Bluesky message you already know: a message, an author, a number of likes etc…</p>
<p>But, at first, you can&#39;t post long messages and besides it&#39;s not really designed for reading blog articles, videos, or source code.</p>
<p>But we can extend all of this via <a href="https://atproto.com/specs/lexicon">lexicons</a>. A lexicon is a common language, a data schema, it&#39;s roughly the set of vocabulary on a network record, and that certain applications will use.</p>
<p>For example, the lexicon of a Bluesky post is defined by <code>app.bsky.feed.post</code> and we&#39;ll find fields like <code>text</code>, <code>createdAt</code>, <code>langs</code>, <code>embed</code> (when there&#39;s an image) etc…</p>
<p>But anyone can define a new lexicon. Obviously it won&#39;t be read by all applications. Bluesky won&#39;t read your lexicon but your application can.</p>
<p>And precisely not long ago I came across a lexicon that particularly interested me for blogging platforms: <strong><a href="https://standard.site">standard.site</a></strong>.</p>
<p>The initiative comes from three platforms that partnered together: Leaflet, pckt.blog and Offprint and they proposed this new format for long-form publications.</p>
<p>This format pleased so many that it is now available via a plugin in the WordPress ecosystem, for static blog generators via <a href="https://sequoia.pub/">Sequoia</a>, and now it&#39;s also becoming central in <a href="https://writizzy.com/">Writizzy</a>, the product I&#39;m building and which runs this blog (and probably soon also <a href="https://bloggrify.com/">Bloggrify</a> which I also maintain).</p>
<p>This integration therefore allows you to have <a href="https://atproto.com/blog/standard-site-bluesky-timeline">native understanding</a> of your Writizzy publication in Bluesky/muSocial. Note the &quot;view publication&quot; link which doesn&#39;t normally appear for a simple base link.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1786354182750-kzbs0s9.png?width=400" alt="Bluesky / mu.social integration" /></p>
<p>But most importantly, this allows all posts published on Writizzy to be visible in all readers that scan the atmosphere for blog articles: <a href="https://standard-reader.app/">standard-reader</a>, <a href="https://bsky.app/profile/heron.tunji.dev/post/3mlocbei6nkbw">Heron</a>, potatonet, <a href="http://docs.surf">docs.surf</a>, leaflet etc… In short, in one step, Writizzy becomes a member of the atmosphere and can expose a new article to millions of users.</p>
<p>And this example shows us that we can now create new apps, with their own vocabulary, on existing PDSs and benefiting from an already established network.</p>
<h2>The return of an open and decentralized web</h2>
<p>Beyond this specific example, ATProto offers many opportunities to return to a more decentralized web under your control. You could, for example, have your own PDS (personal data server) that participates in the AT Proto network.</p>
<p>And you can go even further. The entire protocol provides that each feature is composable and that includes moderation or feeds. It&#39;s not Bluesky that imposes them on you. Again, Bluesky provides a service, but it&#39;s not ATProto.</p>
<p>If you want to use another labeler (a tool that allows moderation), or if you want to create your own feed with your topics, you can. I could create in the future a feed of all Writizzy tech blogs for example.</p>
<p>In short, you can regain control over your data, the algorithms that push content to you, and the associated moderation.</p>
<p>But more than that, it&#39;s huge opportunities to rebuild all the social networks we&#39;re missing in Europe: LinkedIn, Youtube, Tiktok, Instagram to name a few.</p>
<p>Hoping that indeed, <a href="http://mu.social">mu.social</a> is only the first among thousands.</p>
<p>This open and composable web won&#39;t happen by itself, and it won&#39;t come from Silicon Valley. Today, the infrastructure is ready, the user network exists, and the foundational building blocks are in place. It&#39;s up to us, European developers, creators, and entrepreneurs, to seize ATProto to build tomorrow&#39;s platforms, on our own terms.</p>
<p>PS: oh yes, and if you comment below the post on Bluesky/mu.social, the thread should come back as a comment on the blog</p>
]]></content:encoded>
            <category>openweb</category>
            <category>indieweb</category>
            <category>atproto</category>
        </item>
        <item>
            <title><![CDATA[We must not pit ecology against sovereignty]]></title>
            <link>https://eventuallymaking.io/p/we-must-not-pit-ecology-against-sovereignty</link>
            <guid>https://eventuallymaking.io/p/we-must-not-pit-ecology-against-sovereignty</guid>
            <pubDate>Sat, 08 Aug 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Is it consistent to oppose sovereignty and ecology or are we replaying the battle against nuclear energy from the 2000s?]]></description>
            <content:encoded><![CDATA[<p>In France and across Europe, data center projects are facing growing opposition. From <a href="https://www.ege.fr/infoguerre/les-affrontements-informationnels-autour-des-data-center-en-france">local protests and legal proceedings</a>, to <a href="https://technoculture.kessel.media/posts/pst_3310fcd6252346bd85f443d1f9269da9">anti-digital, anti-AI, anti-data center political rhetoric</a>.</p>
<p>But this opposition reminds me of a bad memory: <strong>the fight against nuclear energy in previous decades</strong>. By trying to move away from the atom, part of the green political movement plunged Europe into dependence on fossil fuels and Russian gas. I fear that with data centers and AI, we are making the exact same strategic mistake.</p>
<p>Let’s be clear: energy consumption is a crucial issue. We must lower our consumption, our usage. But rejecting these infrastructures on our soil won&#39;t erase the need for computing power: it will only move it to where energy is carbon-intensive and environmental standards are non-existent. Pitting digital sovereignty against ecological transition makes no sense. <strong>Wanting a green future without controlling our digital infrastructure is choosing powerlessness</strong>.</p>
<h2>Growing digital consumption</h2>
<p>Some opposition to datacenter installations is based on one argument: we must stop increasing pressure on planetary resources and the digital sector, and the growing digital sector is the perfect scapegoat and the easiest target to hate.</p>
<p>Easy to hate because it symbolically represents, for many, screen addiction, automation, job losses, and the techno-fascism of Thiel and Musk. Even if, like any symbol, it&#39;s mostly an extreme oversimplification that ignores the other, positive side of the balance.</p>
<p>On the ecological front, we can only agree on the fundamentals. Our planet is pushed to its limits and we must lower our consumption. Yet digital usage is exploding in a world where every sector should aim for the opposite. Its share in <a href="https://ecoresponsable.numerique.gouv.fr/actualites/actualisation-ademe-impact/">France's carbon footprint has risen from 2.5 to 4.4% in recent years in France</a>. This growth is roughly identical on a global scale and <a href="https://www.carbon4finance.com/en/publications/numerique-deconnecte-climat">trend projections predict further increases</a>.</p>
<p>Can we afford this? Certainly not.</p>
<p>But is &quot;digital&quot; a homogeneous whole? Not so sure, as <a href="https://www.iea.org/reports/energy-and-ai/ai-for-energy-optimisation-and-innovation">this IEA study shows</a> (International Energy Agency).</p>
<ul>
<li>Digital technology, and especially AI, has positive impacts when it comes to optimizing energy systems, renewable energy management, weather forecasting models, and medicine.</li>
<li>However, digital technology and AI are also, unfortunately, accelerators for the fossil fuel industry, enabling better exploitation of existing deposits or the discovery of new ones.</li>
</ul>
<p>And what&#39;s missing from this IEA study is the environmental pressure linked to the AI industry&#39;s consumption of mineral resources to build increasingly powerful equipment and ever-more energy-hungry data centers</p>
<p>We could also mention the trend in the US to build <a href="https://www.texastribune.org/2026/02/02/texas-permian-basin-power-plant-project-data-centers/">new gas plants to power datacenters</a>.</p>
<p>Obviously for these reasons, I can only agree with opposition to datacenter installations. But opposing without nuance is also forgetting the positive impacts of digital, AI included, which is today necessary to optimize our logistics and energy flows in a world of 10 billion inhabitants.</p>
<p>And also, this opposition in Europe seems to me to overlook a key detail as <a href="https://www.linkedin.com/feed/update/urn:li:activity:7487907006578597888/">Charles Gorintin pointed out on LinkedIn</a>:</p>
<blockquote>
<p>Refusing a data center in France eliminates no requests. It will be served elsewhere, on a gas or coal network, with an economic loss for us. Every gigawatt we don&#39;t build here gets built where electricity is dirtier.</p>
</blockquote>
<p>I&#39;ll even go further, pitting sovereignty against ecology is counterproductive.</p>
<h2>Sovereignty vs Ecology: the false dilemma</h2>
<p>Ecology must take priority over the economy. Obviously. Because yes, having a rising stock portfolio in a burning world doesn&#39;t make much sense, which is what <a href="https://technoculture.kessel.media/posts/pst_3310fcd6252346bd85f443d1f9269da9">Mathilde Saliou essentially tells us</a>:</p>
<blockquote>
<p>make a small effort to break free from the economic reasoning to which we are all most accustomed. Take a step back to escape the reflex of direct competition with the United States and China. If it&#39;s about reproducing their model, in any case it&#39;s a losing game. And then what is this masochism, which consists of trying to &quot;catch up&quot; with countries that are examples of neither democratic nor environmental terms?</p>
</blockquote>
<p>However, I have another reading of this: <strong>failing to address sovereignty issues leaves us unable to control our own choices on ecology</strong>.</p>
<p>If you don&#39;t have your own champions, your own infrastructure and a strong market, you suffer the standards of others. Americans will prioritize profitability and hyper-consumption, while China will arbitrate according to its strategic interests alone.</p>
<p>When I speak of suffering, I&#39;ll clarify my point.</p>
<p>Our digital dependence is a huge flaw in the European model. We are dependent on more than 70% of US digital products in Europe. Our data is in the US and we pay a constant digital tax from our economy that goes there.</p>
<p>This vulnerability is not just economic. It&#39;s a sword of Damocles hanging over our political institutions. It&#39;s for example:</p>
<ul>
<li>direct attacks <a href="https://www.lemagit.fr/actualites/366624982/Microsoft-coupe-les-mails-de-la-Cour-Penale-Internationale-un-avertissement-pour-tous-les-Europeens">on the International Criminal Court to cut off access to American software</a></li>
<li><a href="https://fr.euronews.com/my-europe/2025/01/08-linterferences-delon-musk-dans-les-debats-nationaux-fachent-leurope">massive manipulation on social networks to influence voters' choices</a></li>
</ul>
<p>No, we&#39;re not just fighting to have a few more euros. <strong>Sovereignty is ensuring that we remain master of our choices</strong>. It&#39;s ensuring that we can still say no when the American administration tries to impose the abandonment of corporate diversity policies on us, or when it tries to influence French judges on trials.</p>
<p><strong>Economic power ensures independence and guarantees that our voice is heard when we speak about ecology or human rights</strong>.</p>
<p>Pitting sovereignty against ecology is a false dilemma. <strong>There is no world in which we can choose our future on ecology while being economically and politically dependent on other countries</strong>.</p>
<p>And AI, like the construction of data centers, is part of the keys to remaining sovereign. Saying &quot;Not in my backyard&quot; (see <a href="https://stm.cairn.info/l-environnement-question-sociale--9782738110480-page-91?lang=fr">NIMBY phenomenon</a>) makes no sense.</p>
<p>Because digital (and AI) are today tools of economic and political dominance. They are increasingly deployed in cyber warfare, network manipulation, and military drones that have become the new standard on modern battlefields. And I&#39;m not saying that these are perspectives that delight me, but remaining on equal footing will allow us to remain calmer with each new moment of madness from a foreign president who would seek to harm us.</p>
<p>But beyond this simple defensive posture, it&#39;s also giving ourselves alternatives.</p>
<h2><strong>Sovereignty as a lever for control and exemplarity</strong></h2>
<p>Sovereignty over data centers is the ability to regain control of digital infrastructure in Europe, a battle certainly lost in the last decade, but not beyond recovery.</p>
<p>Regaining control, having a hand on our tools allows us to impose our energy mix (decarbonized), our efficiency requirements and our eco-design rules. Impossible on a 100% American or Chinese cloud.</p>
<p>Sovereignty and more broadly, economic power, is giving ourselves the means to impose standards (eg environmental regulations) that foreign markets are forced to follow if they want to sell us their products. Because yes, as long as it remains attractive to sell to a market of 450 million inhabitants with good purchasing power. That gives us leverage.</p>
<p>And sovereignty is not necessarily &quot;producing more&quot;, it&#39;s giving ourselves the institutional power to say &quot;no&quot; for example if an industrial player wants to create a gas plant to run a data center, or to impose energy consumption caps.</p>
<p>Finally, sovereignty is not just industrial and economic muscle; it is resilience to climate, energy, and supply shocks. A form of sovereignty that destroys its own environment undermines its very conditions of existence in the long run.</p>
<h2>Deployments yes, but not at this speed</h2>
<p>We must regain control of our infrastructure. This involves datacenters in Europe and European development of AI to extract ourselves from our dependence on the US and China.</p>
<p>This is also the conclusion of the shift project in <a href="https://www.youtube.com/watch?v=WT67wMsEE2I&t=6766s">this 2-hour synthesis video that covers all their recent work on the subject</a>:</p>
<blockquote>
<p>we are not saying that you must not do AI, but not in this deployment trajectory</p>
</blockquote>
<p>Including a question about sovereignty at the end of the video which is answered in two parts:</p>
<ul>
<li>It&#39;s important to reduce our share of energy spent abroad, for dependence reasons (preferred term to sovereignty in their case) but also to be able to impose our arbitrations, on consumption or type of use.</li>
<li>It&#39;s important to have our own models developed in Europe, and/or to favor open weight models, less consumptive</li>
</ul>
<p>For these reasons, ++we need datacenters in Europe++ BUT managed by European actors.</p>
<p>So yes, even the shift project says so.</p>
<p>Now, what does it mean to be digitally sober? And are <a href="https://commission.europa.eu/topics/competitiveness/ai-continent_en">all the large European investment projects</a> realistic?</p>
<p>What is our energy consumption in Europe?
What is our capacity to increase energy production?
What are the necessary projections of electrical power needed for the construction of datacenters?
And most importantly, is it realistic? What trade-offs do we need to make?</p>
<p>It&#39;s not a question of being for or against a technology, I still think we must create our infrastructure. But is it <strong>physically</strong> possible?</p>
<h2><strong>The figures</strong></h2>
<p>It&#39;s good in theory but we need figures.</p>
<p>The current electricity consumption of datacenters in Europe is approximately <strong><a href="https://next.ink/5607/leurope-face-a-consommation-croissante-datacenters-et-lexplosion-services-cloud/">75 TWh/year</a></strong> (or nearly 2.5 to 3% of continental electricity).</p>
<p>Projections for 2030 (on consumption) envisage that <a href="https://www.reuters.com/technology/europes-data-centre-power-demand-expected-triple-by-2030-mckinsey-report-says-2024-10-23/">datacenter consumption will reach 150 to 170TWh</a> (4.5% of electricity produced).
For 2035, 230Twh is expected, or about 155Twh more than today.
<strong>First question, are we planning to increase our energy production by 155Twh?</strong></p>
<p>There&#39;s a physics problem. The increase in expected consumption is greater than the increase in production.</p>
<p><strong>On the production side:</strong> Between now and 2030, Europe plans to put into service approximately <strong><a href="https://ember-energy.org/latest-insights/european-electricity-review-2024/eu-electricity-trends/">150 to 200 TWh additional</a></strong> decarbonized electricity (solar, wind, nuclear). This will be the result of massive projects that take years to come to fruition.</p>
<p>::callout{type=warning}
Warning, this is a prediction of an increase but the IEA emphasizes in its Accelerated Case that the actual speed of deployment of networks and wind/solar farms struggles to maintain the necessary pace of ~25 to 30 TWh/year net growth across the entire continent.
::</p>
<p><strong>On the demand side</strong>: there is <strong>competition for use</strong>. Europe must electrify cars (moving to 100% electric), industry (decarbonizing steel mills) and heating (heat pumps). Datacenters enter into <strong>direct competition</strong> to capture each available decarbonized gigawatt.</p>
<p><strong>To be clear:</strong></p>
<ul>
<li>Datacenters alone are demanding <strong>+155 TWh</strong> over the same period.</li>
<li>But the ecological transition already requires powering heat pumps, industry and millions of electric vehicles, which already absorbs the entirety of the remaining 50 TWh (from the most optimistic scenario).</li>
</ul>
<p><strong>The balance:</strong> There is physically ++at least++ <strong>50 TWh</strong> missing in decarbonized energy by 2030 to satisfy both the objectives of the European Green Deal and the current trajectory of digital technology.</p>
<p>If we go slower on decarbonizing transport to fund digital, that would be a fundamental error.</p>
<p>Moreover, certain locations are already under enormous energy strain:</p>
<ul>
<li>Ireland, <a href="https://www.radiofrance.fr/franceinter/podcasts/l-info-de-france-inter/l-info-de-france-inter-5443609">20% of its electricity consumption is dedicated to datacenters</a> and had to put in place <a href="https://www.lemonde.fr/economie/article/2026/03/20/en-irlande-les-data-centers-devorent-desormais-le-quart-de-l-electricite-du-pays_6672716_3234.html">a de facto (imposed) moratorium</a> on the construction of new data centers</li>
<li>Cities like Frankfurt, London, Amsterdam, Paris, Dublin are under strain. In some places, <a href="https://www.sia-partners.com/system/files/document_download/file/2026-05/Les%20data%20centers,%20r%C3%A9v%C3%A9lateurs%20des%20tensions%20du%20num%C3%A9rique-vf.pdf">you can no longer build new homes due to lack of available energy</a>.</li>
<li>in Germany, the Netherlands and the United Kingdom), pending connection requests for energy and industrial infrastructure today represent <strong><a href="https://cms-production.auroraer.com/wp-content/uploads/2025/12/The-State-of-European-Power-Grids%E2%80%94A-Meta-Analysis-.pdf">more than 500 GW of power</a></strong> (equivalent to several times the total installed capacity of France).</li>
</ul>
<p>Not to mention grid connection issues. In Europe, it takes an average of <strong><a href="https://ember-energy.org/app/uploads/2025/06/Report-Grids-for-data-centres-in-Europe-PDF.pd">7 to 10 years</a></strong> to strengthen the electrical network and connect a large datacenter.</p>
<p>An infrastructure project filed today <a href="https://www.pv-magazine.fr/2026/01/09/plus-de-1-tw-de-capacites-renouvelables-en-attente-dautorisation-en-europe/">is assigned grid connection dates between **2032 and 2038**</a> in several European hubs. The demand is not only greater than production: it&#39;s growing <strong>3 times faster</strong> than the network&#39;s capacity to lay cables and build substations.</p>
<p>The 230 Twh trajectory <strong>is not physically realistic</strong>.</p>
<p>So can our network absorb it? <strong>No, and especially not at any cost, not by sacrificing the rest of decarbonization efforts.</strong> France has a unique advantage in Europe: electricity among the most decarbonized on the continent thanks to nuclear and renewables. But our production capacity is not infinite. Blindly accepting all datacenter projects would create a direct conflict of use with reindustrialization or the electrification of our transport.</p>
<p>So there are two possible scenarios:</p>
<p><strong>Choice 1, we suffer</strong>: we can indeed refuse these installations. Tech giants then create these capacities in the United States or elsewhere, sometimes by turning gas or coal plants back on, <strong>while selling us their services</strong>, imposing their terms on us, including environmental ones. Europe pays for the service, suffers the global footprint and loses control.</p>
<p><strong>Choice 2, we choose</strong>: Europe and France assume building datacenters on their soil, <strong>but since electricity is not infinite, they use sovereignty to arbitrate and ration.</strong></p>
<p>We will need <strong>digital sobriety</strong>. And being sober is not about refusing to build infrastructure at home out of ideological and moral posture. It&#39;s using our sovereignty to <strong>condition and select</strong>.</p>
<p>Being sober and sovereign means:</p>
<ol>
<li><strong>Rationing network access:</strong> Reserve our decarbonized electrical capacity for datacenters run by European actors or engaged in strategic uses (health, climate, research, industry), rather than to the overconsumption of foreign recreational services (yes, we can tell ourselves that Grok nudes and Ghibli-style images might not be the priority, right?).</li>
<li><strong>Impose drastic environmental standards:</strong> Prohibition of water-cooled systems, efficient PUE (energy efficiency for short), mandatory ecodesign (for example recovery of waste heat to heat neighboring homes)</li>
<li><strong>Bet on frugal models:</strong> Favor the development of smaller, specialized and &quot;open-weight&quot; AI models, far less greedy for computing power.</li>
</ol>
<p>The overconsumption predicted by Big Tech is not inevitable. It&#39;s based on a financial bubble and lots of investments in closed circuits that sell investors a growth plan. This overinvestment makes it possible to fund loss-making uses, uses that shouldn&#39;t be free (like Grok on X for example), a multitude of frontier models, hundreds of software to do the same thing, tensions on resources minerals, tensions on components (see the ram crisis) even though some mass public uses are already addressed. We won&#39;t sort our emails faster with Opus 72. Most open source models are already sufficient for the vast majority of uses.
We have already made enormous advances in optimizing training or inference costs. Technology continues to improve in energy efficiency but uses intensify. New chips have appeared, new algorithmic approaches have come to light. It&#39;s time to pocket our gains and invest now in these avenues.</p>
<p>I hope this bubble bursts to clean up the market. But on the other hand AI won&#39;t disappear with the bubble, any more than the internet disappeared after the internet bubble burst in 2000.</p>
<p>But I hope, for us, that a European actor remains after this explosion.</p>
<h3>What is the sustainable trajectory?</h3>
<p>So what&#39;s the limit? For digital to remain sustainable and not become an energy burden, Europe must impose a <strong>landing ceiling</strong>.</p>
<p>Instead of accepting the 230 TWh projections pushed by Big Tech and the current bubble, the sustainable trajectory for Europe is around <strong>80 to 100 TWh/year by 2030-2035</strong> (or about 10 to 12 TWh for France, which corresponds to the prudent scenarios of RTE). At this scale, the datacenter footprint would remain contained at <strong>less than 3% of European electricity</strong>.</p>
<p>This &quot;electricity budget&quot; of 80 to 100 TWh makes it possible to reconcile the two imperatives:</p>
<ol>
<li><strong>Fund sovereignty:</strong> Provide the computing power needed to develop our own champions, secure our data and run strategic industrial and scientific AI.</li>
<li><strong>Preserve climate:</strong> Don&#39;t siphon off the decarbonized gigawatts that our electric cars, heat pumps and factories urgently need to get out of oil and gas.</li>
</ol>
<h2>Conclusion</h2>
<p>Pitting ecology against sovereignty is a mistake. We won&#39;t chart a viable ecological course isolated in our own corner without economic and digital independence. But the other way around, we won&#39;t be able to continue increasing our uses indefinitely without hitting the wall of physical reality.</p>
<p>Building data centers is about rebuilding sovereignty and giving ourselves back the power to choose. It&#39;s not a blank check to build without limits. But <strong>it&#39;s the only political tool that gives us the right to say no, to set rules and enforce caps.</strong></p>
<p>Refusing datacenters on our soil under the pretext of ecology is an illusion. It only exports pollution to neighbors with a carbon-intensive energy mix, while depriving us of the keys to our future. If we want a digital world compatible with planetary boundaries, <strong>we must have the courage to build its infrastructure at home, to have the power to dictate its rules</strong>.</p>
]]></content:encoded>
            <category>ecology</category>
            <category>ai</category>
            <category>sovereignty</category>
        </item>
        <item>
            <title><![CDATA[The Price of Digital Sovereignty]]></title>
            <link>https://eventuallymaking.io/p/the-price-of-digital-sovereignty</link>
            <guid>https://eventuallymaking.io/p/the-price-of-digital-sovereignty</guid>
            <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[European digital sovereignty faces a reality: finding alternatives isn't enough, they must also remain economically competitive]]></description>
            <content:encoded><![CDATA[<p>I create a service in Europe and one of my principles is to try as much as possible to build it on a 100% European stack, or at least non-US. My servers run on Hetzner, my CDN is <a href="http://Bunny.net">Bunny.net</a>, I use Scaleway for several services, Hostinger for part of DNS… On paper, it&#39;s coherent.</p>
<p>In reality, it&#39;s a bit more complicated.</p>
<h2>The Compromises</h2>
<p>Sometimes there are services that I&#39;m so used to using that I&#39;ve forgotten they were US, I&#39;m thinking of Sentry for example. It&#39;s a service I&#39;ve been using for at least a decade and I really struggle to do without it. The worst part is that if I find an equivalent service, it&#39;s rather simple to get out of it but since it costs me 0 euros today, I tell myself it&#39;s not really an urgency either, I&#39;m not funding a US product for now.</p>
<p>I gladly accept suggestions ;)</p>
<p>(EDIT I’m currently testing BugSink)</p>
<h2>Critical Dependencies</h2>
<p>Then there are critical services, open source, but very much US, I&#39;m thinking of Let&#39;s Encrypt. One could tell me it&#39;s just plumbing, it&#39;s open source, we don&#39;t care etc… In reality, Let&#39;s Encrypt <a href="https://news.ycombinator.com/item?id=48453275">banned its use in Iran and Russia</a> as well. This is part of the basic building blocks we should have in Europe to remain sovereign.</p>
<p>Among other critical services, there&#39;s payment. I use Stripe, and even though there&#39;s an official branch in Europe it remains a US product. There isn&#39;t currently an equivalent of this quality but we&#39;re starting to see some rather interesting products emerging, I&#39;m thinking of <a href="http://Creem.io">Creem.io</a>, <a href="https://www.paddle.com/">Paddle</a>, or <a href="https://www.mollie.com/">Mollie</a>. There are always little features here and there that prevent me from really making the switch but the alternatives are now serious enough to be usable in many cases.</p>
<p>But as of yesterday I&#39;m facing a new obstacle, emails.</p>
<h2>The Email Problem</h2>
<p>Sending emails isn&#39;t as simple as it seems. So first, a quick vocabulary point, we&#39;re going to distinguish:</p>
<ul>
<li>transactional emails (password reset, address verification etc…).</li>
<li>marketing emails, sent in bulk to multiple recipients (for example a newsletter)</li>
</ul>
<p>Now that we know the difference, we need to understand that some operators refuse to send marketing emails for many reasons (desire to preserve their IP reputation to avoid being blacklisted, and to limit their exposure to certain legal risks related to how marketing emails are sent).</p>
<p>Unfortunately, Writizzy is a service that can be compared to Beehiiv and Substack. I send newsletters.</p>
<p>If I originally chose Scaleway, it was for two reasons:</p>
<ul>
<li>It&#39;s in Europe</li>
<li>The cost per thousand emails (<strong>CPM</strong>) is 0.25 euros.</li>
</ul>
<h2>The Economic Wall</h2>
<p>And that&#39;s where everything gets complicated.</p>
<p>CPM is the lifeblood. At this level, a few dozen cents difference completely changes the product&#39;s economics. All other competitors in Europe are between 0.4 and 1 euro in CPM. <strong>Between 2 and 4 times more expensive than Scaleway.</strong></p>
<p>At that price, it&#39;s impossible to be profitable against my competitors. I can&#39;t sell a competitive offer with a CPM above 0.25 if I choose a European solution.</p>
<p>At this point, three choices are available to me:</p>
<ul>
<li>Build my own operator.</li>
</ul>
<p>I can use an open source product (<a href="https://docs.postalserver.io/">postalserver</a> or <a href="https://relay.hyvor.com/">hyvor relay</a>), build what&#39;s missing on top and become an email operator myself. It&#39;s a titanic undertaking (really…)</p>
<ul>
<li>Switch to an American provider.</li>
</ul>
<p>There are solutions at 0.10 CPM, <strong>up to 10x cheaper than some EU products !!</strong></p>
<ul>
<li>Give up offering a competitive service.</li>
</ul>
<p>In the long term, the 1st option seems most sensible to me. But in the short term, I already have customers, and economic necessity will take over.</p>
<p>Do we really want that to be the price of sovereignty? Being less competitive internationally?</p>
<h2>And So?</h2>
<p>It pisses me off to have to choose between my values and economic viability.</p>
<p>If I wrote this article, it&#39;s not to say it&#39;s impossible to build a European SaaS. On the contrary, I think it&#39;s increasingly realistic. The problem is no longer really finding alternatives. They now exist in many domains.</p>
<p>But they need to be competitive, especially on certain critical services where margins are extremely tight. Don&#39;t tell me we can&#39;t do it cheaper than a US service. I know the reality of US companies, salaries are higher, their marketing costs are higher, there&#39;s nothing that justifies us being between 4 and 10x more expensive. And it&#39;s not a scale issue either, by selling more expensive than the market, it&#39;s normal not to have more customers.</p>
<p>I will continue to favor European solutions whenever possible. Not because they&#39;re European, but because I want them to become the best one day.</p>
<p>In the meantime, some decisions will be dictated by economics rather than my convictions.</p>
<p>And we also need to speak up when something blocks us. Not to complain, but to show where opportunities remain. And there are some.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My Software Factory in the Age of AI]]></title>
            <link>https://eventuallymaking.io/p/my-software-factory-in-the-age-of-ai</link>
            <guid>https://eventuallymaking.io/p/my-software-factory-in-the-age-of-ai</guid>
            <pubDate>Wed, 29 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How I oversee code written 100% by AI agents: context, skills, hooks, architecture tests and quality gates. The details of my software factory.]]></description>
            <content:encoded><![CDATA[<p>I&#39;m creating this page to document my &quot;software factory&quot;. It will be more of a reference page than an article and I will reference it on <a href="https://eventuallymaking.io/p/resources">the resources page</a> of the site.</p>
<p><strong>Context</strong>: several applications in monorepos (<a href="https://hakanai.io/">hakanai</a>, <a href="https://writizzy.com/">Writizzy</a>, <a href="https://bloggrify.com/">Bloggrify</a>), polyglot (Nuxt, Kotlin, JS), solo dev, code written largely by agents, continuous deployment to production.</p>
<p>::toc{open=&quot;true&quot;}
::</p>
<h2>The guiding idea</h2>
<p>Even though the latest generation of agents are now capable of producing quality code (much better than the majority of human developers), code production represents only part of what I call software quality. The rest includes:</p>
<ul>
<li>the intention (why, for whom)</li>
<li>does it satisfy the 4 risks identified by Marty Cagan:<ul>
<li>Value</li>
<li>Usability</li>
<li>Feasability</li>
<li>Viability</li>
</ul>
</li>
<li>we can add: performance and reliability</li>
</ul>
<p>Part of these risks is resolved with a good understanding of your market, benchmarks, interviews, manual testing, mockups. All of this is also part of my &quot;software factory&quot; even if I don&#39;t describe everything here.</p>
<p>The code produced is now almost 100% generated, but that doesn&#39;t mean it&#39;s vibe coding. Vibe coding as defined by Karpathy was experimentation and letting yourself be carried along by a dev session.
Here, I&#39;m going to talk about context engineering. The goal is to provide all the necessary context, at the right time, so that the software matches an intention and is systematically controlled.
Even though I don&#39;t write the code, I&#39;m responsible for it and I need to maintain control over it.</p>
<p>The tooling described here answers several questions:</p>
<ol>
<li><strong>What does the agent know?</strong> (context, memory, code graph)</li>
<li><strong>What can it do deterministically, without improvising?</strong> (skills, procedures)</li>
<li><strong>What stops it when it makes a mistake?</strong> (hooks, architecture tests, quality gates)</li>
</ol>
<h2>Layer 1: the context</h2>
<p>Here are the files read by agents before starting. Be careful, the size of the context must remain controlled. Too large a context costs money and degrades the quality of responses if it becomes too heavy. We want to save tokens and optimize when information is loaded.</p>
<table>
<thead>
<tr>
<th>File</th>
<th>Content</th>
</tr>
</thead>
<tbody><tr>
<td><code>CLAUDE.md</code> (root)</td>
<td>Architecture, cross-cutting conventions, specs index</td>
</tr>
<tr>
<td><code>.claude/rules/*.md</code></td>
<td>Thematic rules (commit, backend, front, long-term constraints). Often refers to a more complete skill, loaded only when needed</td>
</tr>
<tr>
<td><code>.agents/*.md</code></td>
<td>Non-technical context (product positioning, personas, tone)</td>
</tr>
</tbody></table>
<p>The separation matters: permanent context stays short, specialized context loads when it&#39;s useful.</p>
<p><strong>Long-term constraint as context.</strong> Concrete example: I plan to open-source part of the code. The rule &quot;code intended for open source should never depend on proprietary code&quot; is written in the rules <strong>and</strong> verified by a test (see layer 4). Writing a future constraint in the context avoids paying for a refactoring later.</p>
<p>You can also find constraints on:</p>
<ul>
<li>marketing copy (labels in the application)</li>
<li>how to write migrations</li>
<li>types to favor for database fields</li>
<li>asynchronism patterns</li>
<li>etc. (list far from exhaustive and enriched regularly)</li>
</ul>
<p>A constraint is specific to a project and a person. It&#39;s not a matter of software quality in the strict sense. It&#39;s not better or worse to do feature flagging for example, but it&#39;s my preference for partial deployment and feature activation in testing.</p>
<p>There&#39;s no point in telling an AI to &quot;write quality code&quot;, it doesn&#39;t make sense. You need to make your own constraints explicit.</p>
<p>Example of a rule that allows deferred loading depending on context:</p>
<pre><code class="language-markdown">Every time I ask you to commit, use the commit-convention skill
</code></pre>
<p>It&#39;s simple, but it avoids loading the entire skill in a rule (which would be loaded systematically).</p>
<p>Here&#39;s a more complex rule:</p>
<pre><code class="language-markdown">---
paths:
  - &quot;api/**/*&quot;
---

You act as a Senior Expert in Kotlin and Spring Boot (DDD, Spring, JPA).
You have patterns to follow. BEFORE writing code, you MUST invoke the skill corresponding to the task you are performing.

## Skills to invoke depending on the task

| Task                                                                           | Skill             |
|---------------------------------------------------------------------------------|-------------------|
| JPA entities, repositories, data model                                          | `kotlin-jpa`      |
| Database schema changes, Flyway migrations, and Hibernate/Kotlin entity mapping | `db-migration`    |
| Services, business logic, transactions                                          | `kotlin-services` |
| Controllers, REST APIs, DTOs                                                    | `kotlin-api`      |
| Unit or integration tests                                                       | `kotlin-tests`    |
| End of task, validation before confirming                                       | `kotlin-review`   |
| Feature gating by plan (offers.sql, FeatureService, quota, conditional access)  | `offers`          |
| Unleash feature flags (progressive rollout, admin-only, maintenance, runtime toggle) | `feature-flags` |
| RabbitMQ producers, consumers, outbox pattern, retry/quarantine, AMQP config    | `rabbitmq`        |
</code></pre>
<p>Here there are two important things:</p>
<ul>
<li>the activation pattern, which specifies that this rule only loads if you touch the <code>api</code> directory</li>
<li>the table that lists all available skills, to be opened only if needed. If the AI doesn&#39;t make schema changes, there&#39;s no point opening the <code>db-migration</code> skill</li>
</ul>
<h2>Layer 2: the skills</h2>
<p>A skill is a procedure written once, replayed identically. The agent loads it itself when the context matches.
This automatic loading can sometimes fail. In that case, you need to explicitly ask to use the skill.</p>
<p><strong>The criterion: am I repeating myself?</strong> If I explain the same thing a third time, it becomes a skill.</p>
<p>I have about thirty, grouped by family:</p>
<table>
<thead>
<tr>
<th>Family</th>
<th>What they encode</th>
</tr>
</thead>
<tbody><tr>
<td>Backend</td>
<td>Layer conventions (API, persistence, services, transactions), testing strategy, end-of-task checklist</td>
</tr>
<tr>
<td>Frontend</td>
<td>Architecture, typing, UI standards, getting up-to-date documentation (JS frameworks move faster than model training)</td>
</tr>
<tr>
<td>Data</td>
<td>Migrations, investigation queries</td>
</tr>
<tr>
<td>Product cycle</td>
<td>Spec writing, spec closing, implementing a theme mockup</td>
</tr>
<tr>
<td>Operations</td>
<td>Runbooks: handling a production error, moderating, auditing SEO</td>
</tr>
<tr>
<td>Writing</td>
<td>Commit convention, cleaning up AI writing quirks</td>
</tr>
</tbody></table>
<p>Two things I&#39;ve learned:</p>
<ul>
<li><strong>&quot;Multi-file procedure&quot; skills are the most profitable.</strong> Example: adding a block to the content editor touches three different rendering surfaces. Without a skill, the agent systematically forgets one.</li>
<li><strong>&quot;Up-to-date doc&quot; skills are very important</strong> on code that evolves quickly. It allows an agent to understand the entry points and intentions of a feature.</li>
</ul>
<p><strong>Sub-agents</strong>: for tasks that generate a lot of reading without much decision (audit, broad exploration, doc writing), I delegate to a sub-agent. It consumes its own context and gives me a conclusion, not a dump of files. I use them less and less, recent agents make their own fairly targeted delegations.</p>
<h2>Layer 3: the tools</h2>
<p>You often hear that an AI is non-deterministic and can make mistakes on trivial things that need to be deterministic, like calculating 2+2.</p>
<p>That&#39;s largely false now, and an AI is no longer &quot;just an LLM&quot;: it has many tools to control output. Nevertheless, the best way to ensure a form of reproducibility is to delegate to tools whose job it is.</p>
<p>Compilation, test execution, linters, all of that is delegation. You can delegate to MCPs, or to skills that use themselves a command-line tool (CLI).
I try to avoid MCPs which consume more context, but I have a few anyway.</p>
<h3>MCP</h3>
<table>
<thead>
<tr>
<th>Server type</th>
<th>What it unlocks</th>
</tr>
</thead>
<tbody><tr>
<td>IDE (JetBrains)</td>
<td>Build, inspections, refactorings, indexed search. Much faster and more structured than command-line build</td>
</tr>
<tr>
<td>Code graph (GitNexus)</td>
<td>See below</td>
</tr>
<tr>
<td>Business services (payment, error monitoring)</td>
<td>Read the actual state of the system instead of guessing</td>
</tr>
<tr>
<td>Database</td>
<td>Direct investigation, dev and prod</td>
</tr>
<tr>
<td>Browser</td>
<td>Reproduce a client-side bug, QA</td>
</tr>
</tbody></table>
<h3>GitNexus</h3>
<p>The repo is indexed in a graph (symbols, relationships, execution flow). This allows you to measure impact levels and find all links with the code being modified:</p>
<ul>
<li><code>impact(symbol)</code> <strong>before</strong> modifying: blast radius, callers, risk level</li>
<li><code>detect_changes()</code> <strong>before</strong> committing: did I only touch what I wanted to?</li>
<li>find an execution flow rather than grep a function name</li>
<li>rename via the call graph rather than find-and-replace</li>
</ul>
<p>The real issue isn&#39;t speed, it&#39;s detecting all side effects of a modification.</p>
<h3>Claude-mem, persistent memory</h3>
<p>I use two levels of memory:</p>
<ul>
<li>Claude&#39;s internal memory</li>
<li><a href="https://github.com/thedotmack/claude-mem">Claude-mem</a>, which allows capturing decisions between sessions</li>
</ul>
<p>What we want with these tools is to avoid repeating mistakes, document decisions, and not start over with an empty session each time.</p>
<p>Claude Code&#39;s internal memory mechanism has improved and becomes more relevant than before with the latest versions. However, you need to control it and not hesitate to ask it to delete rules it creates on its own which are sometimes a bit silly.
Claude-mem, I honestly have a hard time measuring the negative or positive impact. I don&#39;t have enough perspective on it yet.</p>
<h3>Output filtering</h3>
<p>A wrapper (here RTK) prefixes shell commands and only returns what&#39;s necessary. It remains very limited, only available for a few tools. The gain is sometimes canceled out because Claude runs the command twice. It doesn&#39;t hurt, but I think there&#39;s still room for improvement.
Note that Claude builds its own tools on the fly in Python or Bash, and also knows how to use filtering mechanisms with <code>grep</code>, <code>tail</code>, etc. to optimize the outputs of the tools it uses itself and save tokens.</p>
<h3>Debugging with access to logs and database</h3>
<p>I use two skills for incident resolution:</p>
<ul>
<li>a Sentry skill to read information on Sentry and retrieve stack traces</li>
<li>a <code>db-query</code> skill that gives <strong>read-only</strong> access to the database
(read/write access is possible directly via <code>psql</code> on the Docker container in local dev)</li>
</ul>
<p>I could also mention the Stripe MCP, read-only as well, which allows in certain specific cases to investigate Stripe configuration issues.</p>
<h2>Layer 4: executable guardrails</h2>
<p>Guardrails prevent the randomness associated with understanding and executing an instruction.
It happens that an LLM ignores a rule. You need to provide tools that execute automatically.</p>
<h3>Hooks</h3>
<p>Scripts triggered by the agent harness, not by the agent itself.</p>
<table>
<thead>
<tr>
<th>Trigger</th>
<th>Effect for me</th>
</tr>
</thead>
<tbody><tr>
<td>Before a shell call</td>
<td>Refuses native build command, redirects to IDE build (faster, structured errors) and explains the fallback</td>
</tr>
<tr>
<td>After file write</td>
<td>Runs the formatter/linter automatically on the touched file</td>
</tr>
</tbody></table>
<p>Other uses that work well: block editing of generated files, require a test alongside any new module, forbid a dangerous pattern.</p>
<h3>Architecture tests</h3>
<p>Structuring rules become tests that break the CI.</p>
<p>Real example, I have an architecture test that preserves the boundary between future open source code and the rest:</p>
<ul>
<li>no file on the &quot;open&quot; side references the &quot;proprietary&quot; side</li>
<li>every production file belongs to one of the two sides</li>
</ul>
<p>It&#39;s part of the automated tests, so it can&#39;t be bypassed, unlike a rule.</p>
<h3>Pattern linting</h3>
<p>I use several things:</p>
<ul>
<li>ESLint for syntax</li>
<li>ast-grep for <strong>architecture decisions</strong>, for example forbidding any call to <code>fetch</code> without going through the OpenAPI client</li>
<li>typecheck for typing</li>
</ul>
<h2>Layer 5: the factory</h2>
<h3>One blocking quality gate, per application</h3>
<p>Each app has its workflow on GitHub Actions.</p>
<pre><code>push to main
   └─&gt; quality gate: lint → pattern lint → typecheck → tests
        └─&gt; build docker image
             └─&gt; push registry
                  └─&gt; deployment webhook
</code></pre>
<p>The deployment job has a <code>needs:</code> on the quality job. Nothing goes to production without passing the gate. It&#39;s essential in general, even more so for automatically generated code.</p>
<h3>Test at multiple stages</h3>
<p>I shouldn&#39;t need to re-explain this, but just in case, I have several types of tests.</p>
<table>
<thead>
<tr>
<th>Stage</th>
<th>What it covers</th>
</tr>
</thead>
<tbody><tr>
<td>Unit</td>
<td>Pure logic, fast, massive</td>
</tr>
<tr>
<td>Integration with disposable containers</td>
<td>Real database and broker, no mocks</td>
</tr>
<tr>
<td>Architecture</td>
<td>Structural boundaries (layer 4)</td>
</tr>
<tr>
<td>Front components</td>
<td>Rendering and composables in a framework environment</td>
</tr>
<tr>
<td>End-to-end</td>
<td>Critical journeys only</td>
</tr>
</tbody></table>
<p>I give Claude instructions to explain the test hierarchy, gitnexus tells him what to replay to validate these modifications, and he has instructions to write them when he adds/modifies code.</p>
<h2>Layer 6: the product process</h2>
<p>As I said in the intro, the goal isn&#39;t just to produce code, it&#39;s to produce code that serves a purpose.</p>
<p>The process often starts with a spec, then a design, then an implementation.</p>
<p><strong>Spec first.</strong> I have a folder of numbered specs, one per functional domain, indexed in the permanent context. Two skills frame the cycle: one for writing the spec and its plan, one for closing it by updating it with what was actually built.</p>
<p>This spec and the discussions can rely on a &#39;product-marketing-context.md&#39; file that I create in each project and which summarizes my personas, my competitors, my positioning etc...</p>
<p><strong>The design.</strong> By design I mean two things: technical design and interface. Technical design is part of the spec phase. Most of the time a spec is enough, but some tricky cases require a spec dedicated to a technical component or a technology choice.
On the other hand, the design/mockup phase is separate. I do it in Claude Design. I make a functional mockup and iterate until it&#39;s perfect. I verify understanding, labels, usability. Then I can pass the result to Claude Code.</p>
<p><strong>The implementation.</strong> Claude starts from the spec and mockup. He follows the plan made in the spec phase. The spec is meant to be delivered in stages (protected by feature flag). This allows me to do several small implementation sessions rather than one large session, which tends to degrade in quality if it gets too full.</p>
<p>The closing step is important: without it, specs become obsolete in six months.</p>
<p>Explicit rule in the context: <strong>if a spec is vague or inconsistent with what exists, the agent should ask the question, not guess.</strong></p>
<p><strong>Progressive delivery.</strong></p>
<p>I work trunk based. However I use feature flipping and gating, which represent two different things:</p>
<table>
<thead>
<tr>
<th>Need</th>
<th>Mechanism</th>
</tr>
</thead>
<tbody><tr>
<td>Enable/disable without redeploying (rollout, kill-switch, maintenance)</td>
<td>Feature flags (Unleash for me)</td>
</tr>
<tr>
<td>Restrict by customer contract / plan</td>
<td>Configuration table + gating service</td>
</tr>
</tbody></table>
<p>I have skills that explain the difference, so agents don&#39;t do anything wrong and respect my working process.</p>
<hr>
<h2>Where to start</h2>
<p>If you&#39;re starting from 0, the first step is the quality gate if you don&#39;t have one. You need a control mechanism that runs tests, linters etc...
Then start light with a Claude.md that describes the essentials, the why.
Add rules as you go for important architecture patterns.
As soon as you see procedures that come back often, document them as skills.
And then equip yourself with cli and MCPs to interact with your main tools, jira, sentry, etc...</p>
<p>Be careful, any skill, MCP, code taken from outside must be scrutinized. These are dependencies that can be vectors of attack.</p>
<h2>Key takeaways</h2>
<ol>
<li><strong>What matters must be executable.</strong> An instruction is followed &quot;most of the time&quot;, but it can be forgotten. A hook or test is followed all the time.</li>
<li><strong>An error must be documented.</strong> Every error must be recorded in a skill or in memory.</li>
<li><strong>Context is a budget.</strong> Wrappers, filters, sub-agents, summaries: everything that reduces noise keeps reasoning on the problem.</li>
<li><strong>Measure impacts before and after editing.</strong> We want to avoid the effect &quot;1 bug fixed, 10 produced&quot;.</li>
<li><strong>Repetitive procedures don&#39;t improvise.</strong> One skill per procedure.</li>
<li><strong>Spec documentation dies if its closure isn&#39;t in the process.</strong> You need to plan the update and maintenance step.</li>
</ol>
<h2>To improve</h2>
<h3>Updating skills/rules</h3>
<p>You need to take into account that the technology is still very young, February 2025 if we consider agentic programming. Tooling is improving but you also need to constantly review it.
Mid-2025, some instructions in a Claude.md made sense, for example &quot;write a test for each new service&quot;. Today it&#39;s noise and Claude does it naturally.
So you need to be wary of your old rules, sometimes they&#39;re obsolete and create noise.
I have no way to measure and know if an old rule has become obsolete.</p>
<p>Latest versions of Opus are increasingly autonomous. AI takes the initiative on its own to build, look at produced content, read dependency code to understand calls, find bugs, run tests in the browser. It&#39;s almost creepy and more rigorous than 99% of humans.
Let&#39;s be honest, I&#39;m increasingly less useful in implementation phases, but I don&#39;t want to lose control of the produced code. I&#39;m torn between satisfaction at having an increasingly efficient software factory and the risk of losing knowledge. I need to find a way to control designs a posteriori, to appropriate the result.</p>
<h3>The rabbit hole problem</h3>
<p>I recently added a boyscout.md rule</p>
<pre><code class="language-markdown">Always leave code a little better than it was before. If you see flagrant errors, report improvements to me. If you notice gaps with documentation or information present in your skills, or in this file, same thing, report them.
</code></pre>
<p>But I find myself having endless sessions. I think I&#39;ve never worked on a codebase that maintains itself as much. I&#39;ve rarely improved the product at this level of detail. But it comes with a cost, cognitive overload.</p>
<p>I think I&#39;d rather automatically note these elements and categorize them in an online TODO list (trello, todoist etc...). I think the workflow for maintenance should move elsewhere, and be partially automated.</p>
<h3>Lack of standardization</h3>
<p>I still copy and paste my skills/rules etc… from one project to another. And sometimes it&#39;s dependent on my station based on a skill installed locally.</p>
<p>I need to find a way to package my skills to deploy them where relevant and to centralize maintenance.</p>
<h3>The rest</h3>
<p>In other pending improvement points:</p>
<ul>
<li>my dependency on Claude. I want to test open weight models but I don&#39;t have the hardware for it. Moderate risk in my opinion, the entire ecosystem is moving upward</li>
<li>the IDE is becoming obsolete compared to this new workflow. I still use Intellij but I no longer find it suited to our time. I haven&#39;t seen an interesting alternative yet.</li>
</ul>
]]></content:encoded>
            <category>ai</category>
            <category>software engineering</category>
        </item>
        <item>
            <title><![CDATA[Why I'm Not Making Writizzy Open Source]]></title>
            <link>https://eventuallymaking.io/p/why-i-am-not-making-writizzy-open-source</link>
            <guid>https://eventuallymaking.io/p/why-i-am-not-making-writizzy-open-source</guid>
            <pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Making your product open source: an obvious path to sustainability or an economic and mental trap? Experience and dilemmas through the Writizzy case.]]></description>
            <content:encoded><![CDATA[<p>Why do open source today?</p>
<p>Or… why not?</p>
<p>I&#39;m developing a product, <a href="http://writizzy.Com">writizzy.com</a> and I started asking myself this question by wondering <a href="https://eventuallymaking.io/p/what-if-your-favorite-platform-died-how-i-m-trying-to-build-software-that-lasts">how to make sustainable software</a>? Is open source a path for that?</p>
<p>Beyond sustainability, I&#39;ve been working since the early 2000s and overall my profession has drastically changed. One of the main reasons is linked to the rise of open source.</p>
<p>Sure, when I started my computer science studies in 1997, we were already working on linux with many open source software, but my first experiences in the working world looked more like archaeology. My mission was to find the scattered documentation CDs on the floors, and to question the right experts to understand why the software we used reacted in such or such a way. Without access to the source code, I had to guess how it works and especially I had to reinvent the wheel constantly for pretty much everything, which resulted in very questionable quality software.</p>
<p>I saw my profession change and open source become one of the foundations of all modern computing. So yes, I want to contribute in turn.</p>
<p>But I&#39;m concerned about the constraints that come with it.</p>
<p>I&#39;m torn between the desire for a return to a more open web and, basically, economic imperatives.</p>
<p>It&#39;s this dilemma I want to explore here. Through the example of Writizzy, here&#39;s why I&#39;m hesitant to open my code, what I would nevertheless like to do, and what I&#39;m considering for the future.</p>
<h2>The benefits of open source</h2>
<p>Well first, why do open source? Off the top of my head I&#39;d say:</p>
<ul>
<li>to contribute to an ecosystem</li>
<li>for wider distribution</li>
<li>for contributions and serendipity</li>
<li>for transparency</li>
<li>for a more open web</li>
</ul>
<p>But as we&#39;ll see, it&#39;s not that simple.</p>
<h2>Simplified marketing and distribution</h2>
<p>Let&#39;s be honest, open source is a communication lever. Open source allows wider use and thus gets known through word of mouth. It&#39;s the possibility of having providers that would offer Writizzy as white label, or users who could make their own themes/plugins and sell them on a marketplace (<a href="https://ghost.org/themes/">like Ghost</a>). It seems like nothing, but once an economy is established around your product, it guarantees it a certain notoriety. It&#39;s free &quot;advertising&quot;.</p>
<p>Ok but, at what cost?</p>
<p>Whether it&#39;s Wordpress, Ghost or Gitlab, how many really use the commercial service offered by the publisher? And how many commercial services have attached themselves to these software, while avoiding contributing directly to the open source project?</p>
<p>Here are the estimated annual revenues for several competitors of Writizzy:</p>
<ul>
<li>Substack: $45M</li>
<li>Beehiiv: $30M</li>
<li>Ghost: $10M</li>
</ul>
<p>Ghost is the only open source platform of the 3. It&#39;s estimated that the economy revolving around Ghost creates approximately between $15 and $25M.</p>
<p>That is to say that approximately <strong>$20M is captured outside of Ghost</strong>.</p>
<p>Let&#39;s imagine that Writizzy works, let&#39;s be crazy, don&#39;t I have the risk of having actors who commercially exploit Writizzy, don&#39;t contribute to the open source project, benefit from my advertising investments, and leave me to manage all the difficulty of software maintenance?</p>
<p>Yes open source is noble, but it doesn&#39;t put food on the table and I don&#39;t want to end up like one of these countless open source projects that <a href="https://stackoverflow.blog/2021/01/07/open-source-has-a-funding-problem/">survives poorly</a> and eventually closes.</p>
<p>Two options are possible, having a restrictive license that prevents commercial use, or just… not care.</p>
<p>Ghost doesn&#39;t care. Because it&#39;s a company without shareholders to pay and they&#39;re not seeking to maximize their profit.</p>
<p>But if I think about it well, it&#39;s the same for me. Well first, I would be very happy to have even just one tenth of Ghost&#39;s success. If I manage it, in part, because the open source model allowed the product to be talked about, I can also tell myself that I&#39;ve achieved my goal, right? And besides, it would be hypocritical of me, I also use open source building blocks to go faster, right?</p>
<p>I&#39;m creating a commercial product, I&#39;m not going to hide it. But I&#39;m not aiming to create a multinational company with 400 people, so having an ecosystem that&#39;s created around the project and that lives on its own but that also increases the visibility of the project, why not?</p>
<p>But anyway, I don&#39;t want to make you think that &quot;open source = success&quot; magically. If the project interests no one, it will maybe be the same even in open source. It&#39;s kind of what happened to me on <a href="https://bloggrify.com/">Bloggrify</a>.</p>
<h2>(Unexpected) Community Contributions</h2>
<p>You know how a product improves? Through feedback from its users.</p>
<p>I&#39;m used to saying, &quot;you&#39;re never right on your own&quot;.</p>
<p>You can be an expert in your own software, it&#39;s when confronting it with real users that this software becomes truly perfect.</p>
<p>Because each user can come with new ideas, because you can measure what matters most to people and therefore better prioritize what needs to be done or because you can have direct contributors.</p>
<p>If someone improves your product, it&#39;s a useful contribution for everyone.</p>
<p>But that comes with a cost, having to respond day and night to hordes of users, not always respectful of the work provided for free. Remember:</p>
<ul>
<li>Jacob Thornton, co-creator of Twitter Bootstrap <a href="https://www.youtube.com/watch?v=-Adsk22-IsE">who clearly ended up burned out</a></li>
<li>Salvatore Sanfilippo, <a href="https://www.infoworld.com/article/2258588/what-does-an-open-source-maintainer-do-after-burnout.html">creator of Redis who also ended up cracking</a></li>
</ul>
<p>Finally, that&#39;s when there&#39;s success. The vast majority of the time, your project will just have 0 users and almost no feedback.</p>
<p>In the past, I had created two projects that fell pretty much into this category:</p>
<ul>
<li><a href="https://eventuallycoding.com/p/2016-03-07-connecteur-mongo-postgresql">pg-mongo-streamer</a>: a connector to feed pgsql by replicating mongo events in real time</li>
<li><a href="https://bloggrify.com/">Bloggrify</a>, a static blog generator, a kind of equivalent to Jekyll in the Nuxt ecosystem</li>
</ul>
<p>In both cases, the user base was very small so feedback was almost nonexistent. In the case of Bloggrify, it mostly became a burden of trying to implement certain open source project standards for virtually no results.</p>
<p>In any case, yes, this dimension scares me. I can only hope that Writizzy has traction and find myself in the first case. And at the same time, I&#39;m afraid I won&#39;t be able to keep up.</p>
<p>I&#39;ll admit I largely understand Ben Johnson (litestream) who chose to <a href="https://www.youtube.com/watch?v=M4qyL0acD0U">limit the opening to contributions</a> to protect his mental health and the viability of the project, in other words, choose open source but limit contributions. Today, my issue isn&#39;t going faster in terms of code production anyway.</p>
<p>Now when I talk about contributions, I also think in terms of ecosystems. It&#39;s the opportunity that things are created unexpectedly. It could be theme marketplaces, community hosting, plugins, … things… by definition if it&#39;s unexpected I can&#39;t really list them anyway :)</p>
<h2>Transparency: Exposing Your Weaknesses</h2>
<p>An open source project inspires trust, in theory. It gives the illusion that, being open, all of its code has been blessed by a community of experts.</p>
<p>In reality, open doesn&#39;t mean being read. I doubt you&#39;ve read the source code of the vast majority of tools you use under linux, for example, and you&#39;re not alone. We could cite <a href="https://en.wikipedia.org/wiki/XZ_Utils_backdoor">the xz backdoor affair</a> or the <a href="https://en.wikipedia.org/wiki/Log4Shell">log4shell CVE</a>.</p>
<p>In any case, I remain convinced that it&#39;s preferable to closed software. Does security through obscurity really work? Not really, and sometimes <a href="https://www.inkl.com/news/windows-has-a-hidden-device-id-that-tracks-you-beyond-any-vpn-a-uk-privacy-warning-for-firms">it's the publisher itself who places backdoors in their software</a>.</p>
<p>But precisely, if I open Writizzy&#39;s code tomorrow, I&#39;m not entirely confident. I did everything possible to make it well-designed and secure software, but let&#39;s be honest, am I 100% sure that no one will find security flaws? Not at all. <a href="https://eventuallymaking.io/p/securing-file-imports-fixing-ssrf-and-xxe-vulnerabilities">A friend had actually detected flaws in Writizzy</a> a few months ago. I have users in production, what happens if malicious individuals actively search for flaws in my code with each release? That&#39;s clearly part of my concerns.</p>
<p>As for the &quot;quality&quot; of the code, that&#39;s another topic. I would always find people to criticize it, but I&#39;ve been working for 25 years, it slides off me a bit. Criticism is easy, art is difficult. But for security, that&#39;s another matter, impossible to ignore.</p>
<p>And today I don&#39;t have a sense of versioning. I deploy to production continuously. Should I abandon this principle to leave a rest period before deploying a new version? It would be extra burden I&#39;d impose on myself and I don&#39;t necessarily have the luxury to do so.</p>
<p>So yes, partially today I&#39;m counting on the fact that no one can read the errors I may have made before I fix them. If it were open source, that would no longer be the case. It would impose another way of working on me, heavier, and more dangerous for my users. That&#39;s clearly a brake.</p>
<h2>Is Writizzy&#39;s Architecture Compatible with an Open Source Project?</h2>
<p>Another point that worries me, once I open the code, is that Writizzy has certain architectural complexity. To run the application today it&#39;s:</p>
<ul>
<li>1 Kotlin API</li>
<li>1 front app for the CMS part</li>
<li>1 front app that runs the blog</li>
<li>a PostgreSQL database</li>
<li>a RabbitMQ message queue</li>
</ul>
<p>A user might want to have <strong>a single application</strong> and I understand that.</p>
<p>All my architecture is based on the fact that I run all the clients on the same instance in multi-tenant and I have the entire commercial site that exploits my users in the &quot;CMS&quot; application.</p>
<p>How can I offer that as open source? It&#39;s very far from a standard like Ghost or Wordpress.</p>
<p>Well, that wouldn&#39;t be the only software like that. I recently installed PostHog and you just need to use a <strong>Docker compose</strong> to hide this complexity, so I suppose we can find a solution. I even want to say that it&#39;s become the norm, nowadays the unit brick for installing is the docker compose.</p>
<p>On the other hand, I imagine I would really need to separate the admin part and commercial site from the CMS (EDIT: that&#39;s been done as of today). That part would remain proprietary. And we&#39;d need a &quot;mono-tenant&quot; mode to hide all the complexity of multi-tenancy so that a user can just launch their app for themselves.</p>
<p>If I have some ideas, they remain additional constraints nonetheless.</p>
<h2>So what&#39;s the plan for Writizzy?</h2>
<p>Well then, what&#39;s the plan? I&#39;m building Writizzy with a desire to also find a more open web, to get out of US platforms, to encourage people to write too. Because writing, reading, informing, is more than necessary in today&#39;s world.</p>
<p>In a previous article I was questioning whether to create <a href="https://eventuallymaking.io">sustainable software</a>, open source was part of the solutions.</p>
<p>So yes, I&#39;m torn. I&#39;d like at some point to make it an open source product. Concretely, I&#39;ve started making significant modifications to the software to separate the &quot;commercial&quot; part from the application itself.
I have a trajectory in mind to isolate what belongs to my application that allows me to sell and host Writizzy, from the rest, the CMS and the blog.</p>
<p>It&#39;s in progress. It also allows to reflect on dependencies, to simplify. But maybe it won&#39;t work out.</p>
<p>I don&#39;t want to repeat the mistakes of Bloggrify (too much burden for not much). And maybe I should wait to see that Writizzy has more hype behind it? Many questions, few answers :)</p>
<p>In any case, if you have experience with opensource projects, I&#39;d be interested in your feedback.</p>
<p>a+</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AI and Ecology, Fantasy or Convenient Scapegoat?]]></title>
            <link>https://eventuallymaking.io/p/ai-and-ecology-fantasy-or-convenient-scapegoat</link>
            <guid>https://eventuallymaking.io/p/ai-and-ecology-fantasy-or-convenient-scapegoat</guid>
            <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[It's hard to talk about AI these days. I've rarely, if ever, seen a subject so polarized in tech.]]></description>
            <content:encoded><![CDATA[<p>It&#39;s hard to talk about AI these days. I&#39;ve rarely, if ever, seen a subject so polarized in tech.</p>
<p>You could tell me I have a short memory. The internet sparked plenty of criticism around the destruction of brick-and-mortar retail, print media, and the end of human interaction. Same for mobile, with added, legitimate reproaches about addiction and the ease of surveilling individuals. We could also mention crypto, a massive Ponzi scheme for some, a way to reclaim power from central banks for others.</p>
<p>And yet, with AI, I feel like we&#39;ve crossed a threshold. There would be only two possibilities:</p>
<ul>
<li>The Doomers (declinists) who envision an ecological apocalypse, total destruction of employment and placing public opinions under the guardianship of Big Tech controlling AI.</li>
<li>And the Bloomers (accelerationists), who advocate blind faith in progress, convinced that AI will liberate humanity, eradicate diseases and generate infinite growth, and for whom slowing research is the real crime.</li>
</ul>
<p>Pick a side, friend, and if you don&#39;t, others will do it for you. The &quot;safest&quot; bet is not to talk about it at all, but burying my head in the sand feels cowardly, if not impossible when you work in tech.</p>
<p>Simply put, I need to stick my head out and try this exercise without resorting to clichés. And since we&#39;re in the middle of a heat wave, it seems obvious that the first subject to address is ecology. Is AI as catastrophic as people say? Is the impact of an AI query truly astronomically higher than a Google search? How does it compare with other digital uses? Let&#39;s take some time to look at all this.</p>
<h2>Ecological Impact of AI</h2>
<p>First, let&#39;s establish some basics about what we call ecological impact.</p>
<p>This impact falls into several categories:</p>
<ul>
<li>Electricity consumption (which translates into CO2 emissions)</li>
<li>Water consumption for cooling data centers</li>
<li>Resource extraction, required to build the data centers and user devices themselves</li>
</ul>
<p>To keep things simple, an AI consumes energy at two distinct stages: during <strong>training</strong> (when the model is created, like Gemini, Llama, Claude, etc.) and during <strong>inference</strong> (when users actually query the model).</p>
<h3>Electrical consumption during training</h3>
<p>When looking at carbon footprints, models vary wildly, but the estimated range for training a single major model sits between 500 and 12,000 tonnes of CO2 equivalent.</p>
<p>To put that into perspective:</p>
<table>
<thead>
<tr>
<th>Model</th>
<th>CO2 Equivalent</th>
<th>Paris-New York Round Trips</th>
<th>Annual US Household Consumption</th>
<th>Annual French Household Consumption</th>
</tr>
</thead>
<tbody><tr>
<td>Smaller/open modelDeepseek, Lama etc…</td>
<td>~500 tonnes</td>
<td>370</td>
<td>130</td>
<td>2,100</td>
</tr>
<tr>
<td>Claude, Codex etc…</td>
<td>~12,000 tonnes</td>
<td>8000</td>
<td>3,200</td>
<td>50,000</td>
</tr>
</tbody></table>
<p>::callout{type=primary}
The massive gap between US and French household equivalents stems from the fact that France’s energy mix relies heavily on nuclear power, which is virtually carbon-free.
::</p>
<h3>Electricity Consumption During Usage</h3>
<p>Operational consumption is another moving target. It depends on the complexity of the prompt, the location of the data center (and its corresponding energy mix), the model being used, and so on.</p>
<p>But it&#39;s estimated to vary between <a href="https://projetcelsius.com/blog/combien-consomme-requete-chatgpt/">0.03g</a>, and <a href="https://mistral.ai/news/our-contribution-to-a-global-environmental-standard-for-ai/">1g of CO2</a> per request. We&#39;ll see below how that compares with internet, gaming, streaming etc…</p>
<h3>Water consumption</h3>
<p>To talk about water consumption, we must first address a common misconception: <strong>No, we don&#39;t destroy water</strong>.</p>
<p>Earth’s water operates in a closed loop. When water is used in a cooling system, whether in a data center, nuclear power plant or anything else, it&#39;s not destroyed. When water evaporates, it eventually falls back as rain.</p>
<p><strong>However</strong>, evaporation causes water to displace. If water moves more than 800km, the region where it was drawn from has effectively lost it, temporarily but lost nonetheless.</p>
<p>In ecology, we distinguish <strong>water</strong> <strong>withdrawal</strong> (borrowing water and returning it to the same place after use) and <strong>water</strong> <strong>consumption</strong> (drawing water and evaporating or releasing it elsewhere, making it unavailable locally). AI <em>consumes</em> water.</p>
<p><strong>On a planetary scale</strong>, it&#39;s not necessarily a problem. <strong>On a local scale</strong>, however, it can trigger severe water stress, creating direct competition between residents, agriculture, and data centers.</p>
<p>To be fair, technology is advancing. The majority of new data center projects use closed-loop water systems so water isn&#39;t evaporated. Some countries (Ireland, Sweden, Finland) take advantage of their cold climate to reduce water needs by 90% and we see other systems emerging. But to look at the flip side, the vast majority of <strong>existing</strong> data centers use evaporation systems and in any case, these systems require electricity which creates tensions, for example in Sweden or Ireland.</p>
<p>Now that we&#39;ve said all that, what&#39;s the consumption for evaporation data centers?</p>
<p>Training a recent model is estimated to consume approximately 40 to 80 million liters (a small lake). In a water-stressed region, that can make a difference.</p>
<p>And if we look at usage, for a request, it&#39;s between <a href="https://www.eesi.org/articles/view/data-centers-and-water-consumption">2 and 6.5ml</a> of water per request.</p>
<h3>Resource extraction</h3>
<p>::callout{type=warning}
This section is the trickiest for me because it’s the one I’m least familiar with, and honestly, it probably deserves an entire article of its own. So, while we will only scratch the surface here, I promise to dive much deeper into this specific topic in a future post.
::</p>
<p>We often focus on electricity and water, but the environmental footprint of mining is one of AI&#39;s biggest blind spots.</p>
<p>To run AIs or train models, you need ultra-powerful equipment and colossal infrastructure that will require copper, aluminum, cobalt, lithium, nickel, rare earths and I imagine I&#39;m forgetting some.</p>
<p>Well, these resources are in limited quantities on earth but I&#39;ll discuss that in a future article, recycling in this sector is currently negligible but moreover, the extraction itself is extremely polluting.</p>
<p>To make matters worse, we must add that current equipment becomes obsolete much faster. In the AI race, we replace equipment much faster. Certainly, new equipment is more efficient, particularly in terms of energy but this ultra-rapid rotation creates a volume of electronic waste we don&#39;t know how to manage.</p>
<p>Despite everything, I don&#39;t yet know from which angle and with which figures to illustrate all this, especially since these subjects also pull along many other geopolitical subjects (tension over Taiwan, tension over rare earths etc…), so we&#39;ll set that aside for future publication. We already have plenty to do with the first two subjects.</p>
<h2>AI vs. Other Digital Habits</h2>
<p>With these orders of magnitude in mind, is AI &quot;<strong>stratospherically</strong>&quot; different from the rest?</p>
<p>How does it compare with a Google search for example? Or with streaming, video call, an online video game?</p>
<h3>AI vs Internet</h3>
<p>By comparison, a query to a search engine (Google) is approximately <a href="http://news.bbc.co.uk/2/hi/technology/7823387.stm">0.2g of CO2</a>.</p>
<p>Depending on the complexity of the question and the model used, an AI prompt can cost slightly less than a Google search, or up to <strong>five times more</strong>. </p>
<p>So, it is not &quot;stratospherically&quot; higher than a standard web search.</p>
<p>Furthermore, if a topic requires you to do multiple Google searches and open several websites to find your answer, the gap quickly narrows, and can even reverse.</p>
<p>But we must separate <strong>simple</strong> uses: &quot;give me the strawberry pie recipe&quot;, from <strong>complex</strong> uses: &quot;analyze this PDF document of several megabytes for me and create an application that displays results with charts&quot;.</p>
<h3>AI vs gaming vs streaming vs video call</h3>
<p>I propose we do an exercise and compare 1 hour of streaming, 1 hour of gaming, 1 hour of video call, and one hour of AI-assisted software development (a relatively power-consuming use).</p>
<table>
<thead>
<tr>
<th>1 hour of gaming</th>
<th>1 hour of streaming</th>
<th>1 hour of video call</th>
<th>1 hour of dev with AI</th>
</tr>
</thead>
<tbody><tr>
<td>50g CO2 (source <a href="https://greenly.earth/blog/secteurs/quelle-est-l-empreinte-carbone-des-jeux-video">greenly</a>)</td>
<td>55 to 100g of CO2 (source <a href="https://www.carbonbrief.org/factcheck-what-is-the-carbon-footprint-of-streaming-video-on-netflix/">IEA</a> and <a href="https://about.netflix.com/en/news/the-true-climate-impact-of-streaming">netflix</a>)</td>
<td>30 to 60g of CO2 (source <a href="https://about.netflix.com/en/news/the-true-climate-impact-of-streaming">ubigreen</a>)</td>
<td>30 to 140g of CO2 (source <a href="https://www.idleforest.com/carbon-footprint/claude">idleforest</a>)</td>
</tr>
</tbody></table>
<p>::callout{type=primary}
Why such strong variations when considering AI-assisted development? Because it encompasses vastly different habits. Consumption will be drastically different between an &quot;amateur&quot; coder copy-pasting a few lines from a browser, a &quot;pro&quot; user partially delegating tasks within their code editor, and an &quot;intensive&quot; power-user running automated tools where code generation is almost entirely outsourced.
::</p>
<p>In other words:</p>
<ul>
<li>There is only a <strong>2x ratio</strong> between gaming and <strong>professional</strong> AI-assisted development.</li>
<li>video call is what consumes the least</li>
<li><strong>Streaming</strong> is remarkably close to <strong>professional</strong> AI development usage</li>
</ul>
<p>No matter how you look at the data, it is hard to find evidence of a &quot;stratospheric&quot; gap.</p>
<h3>What About Creation Costs?</h3>
<p>And to go further, we could look at the impact of AI model creation compared to the ecological impact of creating a video game, or a movie.</p>
<p>An <strong>AAA video game</strong> (big-budget), developed by a team of 150 people, costs between <strong>500 and 3,000 tonnes of CO2</strong> depending on development time, travel, and motion-capture filming. To this, we must add the annual maintenance for live-service games that push out continuous updates and DLCs (like <em>World of Warcraft</em> or <em>Overwatch</em>).</p>
<p>For a big budget film, we can estimate a carbon cost <a href="https://www.youtube.com/watch?v=9oOjjwagGP8">between 3,000 and 4,000t of CO2</a>, including transport, filming locations, generators, set construction.</p>
<p>Granted, training a massive AI model can cost more than a single movie, but the difference isn&#39;t orders of magnitude apart. More importantly, we must remember that <strong>the world releases thousands of films and video games every year</strong>, whereas the creation of new foundational AI models remains relatively rare.</p>
<h2>So, is AI Not That Serious After All?</h2>
<p>Let&#39;s be careful here. It would be <strong>lazy whataboutism</strong> to simply say, <em>&quot;Sure, AI is bad, but look at how much worse everything else is.&quot;</em> That is missing the point. The real goal here is to question our consumption habits as a whole.</p>
<p>What is certain, however, is that the reality is far more nuanced than the mainstream narrative suggests. Today, the hyper-focus on AI serves as a very convenient distraction, allowing us to forget the environmental cost of our other digital habits. But you don&#39;t earn <strong>moral virtue points</strong> by campaigning against AI while actively indulging in online gaming, streaming blockbusters, or flying to international sports events.</p>
<p>If you&#39;ve followed the numbers well, the ecological impact of AI is relatively close to other impacts in digital (streaming and gaming for example).</p>
<p>That doesn&#39;t mean it&#39;s good. In the world we live in, <strong>each additional tension on the planet is to be questioned</strong>.</p>
<p>But it forces us to realize that <em>all</em> of our digital behaviors need to be reassessed, not just the fact that <em>&quot;I asked ChatGPT a question.&quot;</em></p>
<p>I don&#39;t pretend to be able to rank these activities against one another. Comparing gaming, streaming, and professional workloads is highly complex. And even within professional uses, And I certainly won&#39;t decide, <strong>on my own</strong>, what constitutes a &quot;good&quot; or &quot;bad&quot; use of technology. But collectively, <strong>we might soon be forced to make those choices</strong>, <strong>not out of kindness, but by constraints</strong> (See next chapter). </p>
<p>The core issue isn&#39;t about outright banning AI. This is precisely what organizations like <a href="https://www.youtube.com/watch?t=4013&v=WT67wMsEE2I&feature=youtu.be">Shift Project</a>, France’s leading think tank on the energy transition, are trying to convey: we need to look at data volumes and digital use cases in their entirety. The argument isn&#39;t that we should abandon AI altogether, but rather that we cannot afford its current, unchecked trajectory</p>
<p>Let&#39;s take an example: the FIFA World Cup generates between 9 and 15 million tonnes of CO2, which is roughly equivalent to the annual energy consumption of <em>all</em> US data centers combined..</p>
<p>Again, the idea isn&#39;t to say, they do worse. We&#39;ll get nowhere with that mindset.</p>
<p>But I like this example because of the contrast it highlights. Playing football doesn&#39;t cost much. Gathering thousands of people across 3 countries and having them fly everywhere is absurd, as is air-conditioning football stadiums, or trying to organize winter games in a desert country.</p>
<p>AI operates on the exact same spectrum. There is a massive gulf between a professional, high-utility application, like using AI in biochemistry, mathematics, meteorology, drug discovery, medical imaging, satellite analysis, or precision agriculture, and a purely recreational use aimed at generating thousands of <strong>Ghibli-style images</strong> just to dump them on social media. Yes, we can, and should, question the latter (and that’s an understatement).</p>
<p>Ultimately, understanding these orders of magnitude is what empowers us to make informed choices instead of just parroting the absurdities we hear on TV. Once you know the real numbers, you can weigh your choices accurately.</p>
<p>I said earlier that one hour of video call was between 30 and 60g of CO2. Ok, but that might replace a Paris Lyon trip. By car it&#39;s between 60 and 90kg of CO2 saved. By train it&#39;s about 1kg.</p>
<p>Similarly, one hour of streaming costs about 100g of CO2. But if it prevented you from driving 20km to the local movie theater (which would cost around 4.4kg of CO2 in car emissions), streaming turns out to be &quot;not so bad&quot; after all.</p>
<p>In the end, once we have the data, it is up to each of us to make those choices.</p>
<h2>What About the Explosion of Data Centers?</h2>
<p>A question I asked myself before writing this article was:</p>
<blockquote>
<p>If the carbon footprint of AI is actually pretty close to our other digital habits, and assuming it replaces some of them (if I’m using AI, I’m not doing something else), why on earth are we building so many new data centers?</p>
</blockquote>
<p>Ok, this question might seem naive but it&#39;s estimated that data center electricity consumption could double, or even triple by 2030 (See <a href="https://www.bcg.com/press/19february2025-data-centers-vers-une-hausse-de-la-demande-energetique-mondiale-de-16-par-an-dici-2028">BCG</a> study and this <a href="https://www.iris-france.org/les-nouvelles-technologies-ia-data-centers-sont-elles-compatibles-avec-les-objectifs-de-durabilite-environnementale/">IRIS</a> article). So why? Is it linked to AI?</p>
<p>According to articles, partly yes, but only partly. The majority of electricity consumed by data centers (about 2/3) should be dedicated to historical digital uses and acceleration of cloud migrations.</p>
<p>Yes AI plays a role, but it&#39;s mainly that digital is taking up more and more space. The share of digital in global CO2 emissions went from 2% in 2010 to about 4% today, with an annual increase of about 6% <strong>even though the global objective is to reduce our emissions by 5% per year to hope to ++stabilize++ the climate</strong>.</p>
<p>Where AI genuinely worsens the problem compared to other tech is its rapid hardware obsolescence. However, the root cause is the massive scale-up of <em>all</em> our digital habits: the ubiquity of 4K/8K streaming, cloud gaming, high-fidelity music streaming, and the explosion of connected IoT (Internet of Things) devices.</p>
<h3>Forecasts vs. Financial Bubbles</h3>
<p>Of course, we should take these data center growth forecasts with a grain of salt. They remain predictions. They could easily be overestimated, just like the predicted &quot;tidal wave&quot; of data that was supposed to arrive with 5G but never quite materialized.</p>
<p>Many of these projections are pushed by tech giants that have bet their entire financial futures on these exact growth scenarios. If you are Nvidia, Google, or Oracle, you have no choice but to reassure your shareholders by guaranteeing this growth will happen to justify the colossal investments already made. Honestly, if the AI financial bubble were to burst tomorrow, it might actually be good news for the planet, as it would instantly ease the pressure on our resources.</p>
<p>That being said, we are looking at contracts that are already signed, budgets locked in, and massive public announcements, like the <a href="https://openai.com/index/announcing-the-stargate-project/">Stargate</a> project or <a href="https://investir.lesechos.fr/marches-indices/enquetes/la-commission-europeenne-annonce-200-milliards-dinvestissements-pour-stimuler-le-developpement-de-lia-et-du-cloud-souverain-sur-le-continent-2235590">Europe's future investments</a>. Every current scenario predicts a 2x to 3x increase in demand. Digital consumption is going up, and AI-related infrastructure is leading the charge.</p>
<p>Will these digital habits replace physical ones (like my earlier example of a video call replacing a car trip)? Or are they purely <strong>additive</strong>? Evidence suggests they are additive. While some AI applications will certainly accelerate decarbonization in specific industries, that impact remains relatively marginal for now.</p>
<p>And, according to the Shift Project, it&#39;s mainly that the electrical consumption needed to run all these data centers will exceed our infrastructure capacity, and thus <strong>force using thermal sources (gas power plant) to compensate or <a href="https://www.theguardian.com/world/article/2024/jul/23/ireland-datacentres-overtake-electricity-use-of-all-homes-combined-figures-show">create usage conflicts</a></strong>.</p>
<p>So yes, it&#39;s alarming. Again, it&#39;s not about banning AI, the subject is much more global than that. How do we make our consumption and pressure on the planet decrease?</p>
<p>At our individual scale, we have to audit our own habits. We need to question our obsession with upgrading devices, over-equipping our homes, and engaging in mindless, heavy recreational uses (like generating endless Ghibli images just for a laugh).</p>
<p>At a collective level, we will eventually be forced, likely much sooner than we think, to make hard choices. We will have to decide whether to route precious electricity to a data center or to <strong>power and heat local homes</strong>.</p>
<p>But let’s remember one crucial thing: the future isn’t set in stone. If we collectively choose to consume less, we won&#39;t need the electricity these companies are dying to sell us. If data centers are multiplying, it&#39;s only because there is a planned demand for them. To paraphrase a famous French comedian: <em>&quot;To think that if people just stopped buying, it wouldn&#39;t sell anymore!&quot;</em></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How I Do Design as a Backend Developer]]></title>
            <link>https://eventuallymaking.io/p/how-i-do-design-as-a-backend-developer</link>
            <guid>https://eventuallymaking.io/p/how-i-do-design-as-a-backend-developer</guid>
            <pubDate>Wed, 24 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[From Bootstrap in 2011 to Claude Design in 2026, a look back at 15 years of web design evolution and design systems, seen through the eyes of a backend developer.]]></description>
            <content:encoded><![CDATA[<p>Imagine the place. It&#39;s dark, it&#39;s only 6pm but winter and cold have arrived.</p>
<p>We are in a classroom, unhygienic and unheated, like all suburban Paris classrooms, because the high priests of &#39;Macronomics&#39; decided it was more interesting to pay millions of Euros for McKinsey PowerPoints than to <em>actually</em> invest in our future! ... I&#39;m getting off track</p>
<p>Briefly, a circle of people gathers, on small wooden chairs that hurt like hell. I&#39;m present, looking grim. Actually no I wasn&#39;t listening to Jean-Michel who just spoke but I&#39;m still trying to understand how the Spurs managed to mess up so badly in the last games of the 2026 NBA Finals.</p>
<p>And then I get up and introduce myself.</p>
<p><em>&quot;Hello I&#39;m Hugo Lassiège, I&#39;m first and foremost a backend developer and here&#39;s my first version of Malt in 2012&quot;</em></p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781337106330-t7giy22.png" alt="Malt version from 2012 (never shown publicly, and we can understand why)" /></p>
<p><em><strong>Basically, I&#39;m terrible at design.</strong></em></p>
<p>So how in 2026 do I manage to propose designs like this blog&#39;s? That&#39;s what I propose to show you in this post.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781338183757-789wt64.png?width=400" alt="thumbnail of the eventuallycoding.com blog" /></p>
<h2>2011, the army of clones</h2>
<p>::callout{type=primary}
If the somewhat historical part doesn&#39;t interest you that much, you can skip directly to the next sections to go to my current workflow which is described further down.
::</p>
<p>2012 was quite a long time ago and at the time I was using <a href="https://getbootstrap.com/">Bootstrap</a> primarily, which explains that little very characteristic style from the first screenshot (mixed with frankly questionable aesthetic tastes, I&#39;ll grant you).</p>
<p>Because yes, in 2011 a framework came out, Bootstrap if you&#39;ve been following, which offered to make available the official UI kit used at Twitter. Inside we found the guidelines for making buttons, forms, progress bars, all in the spirit of the blue bird. We also found all the tools to more easily build responsive websites with the famous grid system that would last a long time. A very long time.</p>
<p>For backend devs like me, that is to say those with more than modest taste for design, it was an opportunity to start with simple bases to finally make websites that don&#39;t look like they came out of a koala&#39;s acid trip imagination.</p>
<p>Following Bootstrap several other libraries came out, <a href="https://get.foundation/index.html">Foundation</a>, <a href="https://materializecss.com/">Materializecss</a>, and so on but always with that little syndrome for sites using them of &quot;but damn, what is this army of clones&quot;.</p>
<h2>From atomic design to design systems</h2>
<p>Now it was nice to have a standard grid and buttons, but you still had to assemble them together. If buttons, input fields, text blocks were atoms, you needed to give a structure to assemble them in the form of molecules.</p>
<p>::gallery
<img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781340823200-qj40ghz.webp" alt="" />
<img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781340845121-az55kfv.webp" alt="" />
::</p>
<p>This is exactly this analogy that would be progressively pushed starting in 2013/2014 by Brad Frost, under the name of <a href="https://atomicdesign.bradfrost.com/">Atomic Design</a>.</p>
<p>This notion of molecules is really what you might call a component. A component fixes the assembly of our molecules as well as a behavior. And that&#39;s exactly what we find in several frameworks released in the same period, React (2013), Vue (2014) and even more generally Web Components (2011).</p>
<p>As an aside, in my previous company (Malt) we grew in the same period, we thought it would be a great idea to mix all of this. We did Bootstrap, then we grouped all of that with an in-house framework (HopModules), we added Vue around 2015, then built Web Components, then used Nuxt a bit later to finally realize around 2023 that actually, that was a lot of everything...</p>
<p>(But <a href="https://eventuallymaking.io/p/the-singapore-project-migration-to-nuxt">it's another story I tell here</a>).</p>
<p>Briefly, we started building &quot;components&quot; that we assembled, standardized to finally arrive at what we call today, <a href="https://www.figma.com/blog/design-systems-101-what-is-a-design-system/">a design system</a>, that is to say sorts of Lego bricks that you can assemble together and that guarantee a certain identity, a voice for a site. Design systems that are even often public and that you can <a href="https://designsystemsrepo.com/design-systems">find</a> and <a href="https://adele.uxpin.com/">study</a> on different sites.</p>
<h2>Tailwind and design tokens</h2>
<p>To build a design system, there was a missing brick. It&#39;s nice to say for example that your buttons have a border radius of 4px. 4, not 2, not 6 but 4.</p>
<p>And it&#39;s rather simple to express globally:</p>
<pre><code class="language-css">.button { border-radius: 4px; }
</code></pre>
<p>But imagine you also want to align this radius on all your cards?</p>
<p>Imagine you want to define a global padding, a &quot;primary&quot; color for your main buttons, the possible font sizes across the entire site.</p>
<p>If the button is the atom, in reality there was a missing element below, how do you create our atoms?</p>
<p>During the 2010s (perhaps via <strong>Jina Anne</strong> at Salesforce in 2014), someone introduces a new term: the design token.</p>
<p>A design token is the definition of the interface structure by these tokens.</p>
<p>For example:</p>
<ul>
<li><code>#0055ff</code> becomes the color-brand-primary token</li>
<li><code>16px</code> becomes the spacing-medium</li>
</ul>
<p>etc...</p>
<p>And that&#39;s exactly the approach of <a href="https://tailwindcss.com/">Tailwind</a> in 2017 which arrives with definitions of design tokens via a bunch of utility classes that will become very very used in current websites.</p>
<p>So, Tailwind doesn&#39;t get unanimity for many reasons and it was never introduced at Malt. But for my new projects, it became the default solution. And now we can talk about my design workflow :)</p>
<h2>My pre-2024 workflow, Tailwind and its component libraries</h2>
<p>Pre-2024 (soon we&#39;ll talk about the pre-AI agent era...) I launched <a href="https://hakanai.io/">Hakanai.io</a>. Let&#39;s not fool ourselves, it&#39;s better than what I was doing in 2012, but it&#39;s also as cheerful as an autumn day in Melun.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781343183085-nw0p52a.png?width=400" alt="hakanai.io interface created in 2024" /></p>
<p>Despite this, here we find my 2024 design workflow, the use of Tailwind and component libraries such as <a href="http://preline.io">preline.io</a> or <a href="http://Flowbite.com">Flowbite.com</a>. It&#39;s an assembly of more or less visually coherent blocks but which have the advantage of having structural coherence through Tailwind&#39;s design tokens.</p>
<p>It seems like nothing but it&#39;s already good. The spacing and breathing are consistent, the colors give an identity, the fonts are uniform, in short, it&#39;s a design system properly used. So yes, even Harry Potter drained of his soul by a Dementor looks better, but it works.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781343596032-0f4jqg2.png?width=400" alt="a Dementor expressing its love for Harry" /></p>
<p>And that&#39;s broadly the spirit of most &quot;indie&quot; sites released in that period. Correct. But nothing to write home about.</p>
<h2>And then came AI</h2>
<p>Starting in 2024 through early 2025, my workflow became less manual. I started building interfaces by asking Claude to do it. It was still copy-paste between the chat in the browser and my IDE. It was only HTML/JS/CSS and then I did the adaptation by hand.</p>
<p>And then Claude came into the IDE, so it could directly create mockups in my code. However Claude reproduces the style it sees in the other pages, so since the site was created pre-2024, well it reproduced my somewhat &quot;meeehhh&quot; style from before.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781343991407-k36dyw0.png?width=800" alt="the broadcast.hakanai.io dashboard" /></p>
<p>So already in 2025, I started changing my workflow for certain pages and especially the first <a href="https://writizzy.com/themes">themes available</a> on writizzy.com. I started from a blank slate, giving some constraints but making sure Claude didn&#39;t rely on existing work.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781344831253-wyx9geb.png?width=400" alt="forge theme on writizzy" /></p>
<p>Sometimes I asked it to draw inspiration from known software, here with Notion:</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781344881522-ve5j1fy.png?width=400" alt="notion theme on writizzy" /></p>
<p>Despite this, Claude has a certain tendency after a while to produce pretty much the same patterns and you can increasingly recognize an interface made by an AI. It&#39;s clean, it&#39;s better than what I produce alone, but it lacks originality. For admin interface in a SAAS it&#39;s not a big deal but to stand out on the internet, you have to make more effort.</p>
<p>I started seeing skills appear to avoid the &quot;slopification&quot;: <a href="https://www.tasteskill.dev/">tasteskill</a> and <a href="https://impeccable.style/">impeccable</a> but which I haven&#39;t personally tested. On the other hand, for some time I&#39;ve been systematically using <a href="https://www.anthropic.com/news/claude-design-anthropic-labs">Claude Design</a> and there, I see a significant improvement in what I produce.</p>
<p>First, what is Claude Design?</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781345330244-c0mqd9v.png?width=800" alt="Claude Design interface" /></p>
<p>Claude Design is specially optimized for interface creation, whether for its system instructions which are optimized for UI (but not UX!!), and through its tooling.</p>
<p>CD will indeed be able to visualize the result and iterate autonomously via screenshots. You&#39;ll be able to have a &quot;tweaks&quot; panel to visualize options, make low fidelity mockups or finished interfaces, comment on areas, etc...</p>
<p>But especially CD can start from a screenshot to get a vibe. So if I take the tux theme we can see in the screenshot above, I started from <a href="https://www.mux.com/">a site whose graphic vibe I appreciated</a>, I gave it an image and instructions for it to capture the essence: the grids, the particularly bright accents in certain places, the thick and tilted underlines etc... I had to iterate, the first draft had issues but the result is rather interesting.</p>
<p>The big limitation is that CD can&#39;t understand animations (except to copy paste the code from the html page), yet that&#39;s one of the strengths of the original site and for now it remains a weakness of my workflow.</p>
<p>Another use case is to start from a design system. You can define one directly, or iterate based on the model that seems most relevant to you. Here for example, it&#39;s the Writizzy dashboard in its new style. And now each new page starts from this one which serves as a &quot;design system&quot; to build the next ones.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781345865727-sr54icq.png?width=800" alt="Writizzy design system" /></p>
<p>In short my workflows are as follows:</p>
<ul>
<li>creating a mockup with Claude Design with 3 options:<ul>
<li>from a brief</li>
<li>from a screenshot</li>
<li>from a design system</li>
</ul>
</li>
<li>implementation in my own code via an &quot;implement-mockup&quot; skill that explains how to transcribe the html code produced by Claude in my technologies (nuxt-ui, tailwind)</li>
</ul>
<p>And more recently, I&#39;m testing:</p>
<ul>
<li>use of agent-browser or playwright to test the interface, especially in responsive</li>
</ul>
<p>So don&#39;t be mistaken, I much prefer working with a designer and I would when Writizzy gets bigger. But to get started, for an indie site, it remains much better than what I could do before and the level of expectations from users has become so much greater now that anyway, it&#39;s no longer really an option to do &quot;like before&quot;. Because yes, design gives a voice to a site, an identity. That and of course the text, on the page, the way you address readers. Without identity, a site, an application, doesn&#39;t hold your attention.</p>
<p>Of course it&#39;s less true on a blog post, you come to read the content, not the container, or on an admin interface of a software. But still, you don&#39;t want to be punished visually and give the impression of &quot;meeehhh&quot;.</p>
<p>Now let&#39;s take a step back, is it perfect? No.</p>
<p>Yes, if you look at the path traveled in 15 years, it&#39;s easier to build websites. Since Bootstrap we&#39;ve sought order, structure, standardization and it works.</p>
<p>But at what cost? We&#39;ve classified components, documented margins, frozen systems. We&#39;ve rationalized beauty. The problem is that by wanting to systematize everything, we&#39;ve created an incredibly clean web, but terribly boring. A web without friction, but without soul. And AI, by its very nature, is the absolute queen for reproducing this kind of lukewarm consensus. If you ask it for &quot;clean&quot;, it will give you clean.</p>
<p>Do I sometimes feel a little nostalgic for the ugly web of the early 2000s? Maybe.</p>
<p>Well, not always.... It depends! I don&#39;t know!!!</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781348423472-5zwur3z.png?width=400" alt="yorkshire breeding site from the 2000s" /></p>
<p>But maybe that&#39;s exactly it, if AI relieves us of the plumbing, if the technique is automated, it&#39;s an opportunity for us to put back intention, identity, emotion (I didn&#39;t think I&#39;d write that one day). Maybe that&#39;s what the evolution of the coming years looks like, breaking the rules, and making ugly things again, but with a beautiful voice.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What I Learned Spending €100 on Online Ads]]></title>
            <link>https://eventuallymaking.io/p/what-i-learned-spending-100-euros-online-ads</link>
            <guid>https://eventuallymaking.io/p/what-i-learned-spending-100-euros-online-ads</guid>
            <pubDate>Fri, 19 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How I spent my first 100 euros on Reddit Ads for my SaaS Writizzy. My mistakes, the impact on traffic, my metrics and the results.]]></description>
            <content:encoded><![CDATA[<p>Yes, we&#39;re going to talk about online advertising. Don&#39;t run away :) I know it&#39;s not really the typical topic of this blog but it will be an excuse to talk about analytics, conversion, marketing, customer acquisition strategy and I promise, it&#39;s rather interesting.</p>
<p>Building a product, an application, a website, that&#39;s good. It&#39;s already not given to everyone but it&#39;s actually the simplest part. Because yes, the difficulty comes after, when it comes to getting known.</p>
<p>A good product that nobody uses is about as useful as an election platform the day after the election. Everyone couldn&#39;t care less.</p>
<p><em>(I hope this joke will please the person who criticized me for talking politics in my last blog post :))</em></p>
<p>Anyway, in this post we&#39;re going to talk about online advertising.</p>
<h2>Paid acquisition</h2>
<p>Paid acquisition consists of spending money to try to create traffic to your site.</p>
<p>Inside we can categorize several things (non-exhaustive list): </p>
<ul>
<li>SEA (Search engine advertising) which consists of placing ads on search engines via Google Ads or Bing Ads</li>
<li>SMA (Social Media advertising) for ads on social networks (Linkedin Ads, Reddit Ads, Meta Ads etc..)</li>
<li>Retargeting: targeted advertising, the thing that shows you diaper ads on all the websites you visit because you had the misfortune of looking at an ad somewhere once</li>
<li>Sponsoring, which consists of paying for space in a newsletter, a video, a podcast etc… Yes, it&#39;s the famous VPN ads we see on all YouTuber channels for example.</li>
</ul>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781875355471-8d6xn3b.png?width=800" alt="different acquisition channels" /></p>
<p>I&#39;m starting out, I have a small budget, so SEA and SMA are the two most affordable channels for me.</p>
<p>So I isolated Google Ads and Reddit Ads but not everything went as planned.</p>
<h2>Conversion tracking</h2>
<p>Most tools like Google Ads, Reddit Ads and the like will try to optimize the display of content to the audience that is supposed to &quot;convert&quot; best. </p>
<p>Yes, because, selling diapers to teenagers for example, that&#39;s not the most effective.</p>
<p>You&#39;re going to pay for displaying an ad but at any given time, many people also want to display an ad so you&#39;re in competition with them on a bidding mechanism. </p>
<p>By default you can just say &quot;on this keyword, I want to bid a maximum of €3&quot; and that&#39;s it. </p>
<p>But for several years now, most ads platforms offer you to put tracking mechanisms on your site to determine if the conversion really happened, if the user really made a sale, or a signup. And this signal will then be used by the platform to decide whether to bid or not. </p>
<p>In short, before we used to say: &quot;I&#39;ll pay a maximum of €3 for this keyword&quot; but now we give a maximum budget over a period of time and ask the platform to spend it and figure out on its own to make it as effective as possible. Platforms will analyze thousands of signals in real time to decide whether they bid €1, €5 or nothing at all because the user is unlikely to convert.</p>
<p>Except that, bad luck, on <a href="http://Writizzy.com">Writizzy.com</a> I don&#39;t want to put <strong>any overly intrusive tracking tools</strong> that store private information and cross it on multiple sites. This is what allows me not to put cookie banners because I&#39;m fed up with cookie banners everywhere and also because I don&#39;t want to base my product on selling my users&#39; data. </p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781876172629-ypwxnnd.png?width=400" alt="Cookies are only meant to be eaten" /></p>
<p>Now I&#39;m not saying I don&#39;t do any tracking, simply my objective is not to send private data to a third party and to calculate the conversion myself to adjust my budgets.</p>
<p>::callout{type=warning}
Not sending conversion information to platforms has many limitations. You have to manually cut off campaigns that aren&#39;t working and the algorithm of these platforms won&#39;t be able to adapt to the right audience. I&#39;m well aware that in this specific case, my ethics handicap me. And I will probably look for solutions in the future to give conversion signals without sending private data. At some point you have to make a choice.
::</p>
<h2>Conversion metrics</h2>
<p>Here we&#39;re going to be interested in several metrics: </p>
<ul>
<li><strong>raw traffic</strong>: the number of visits related to an ad campaign</li>
<li><strong>traffic conversion</strong>: are these visitors doing something useful for me</li>
<li><strong>customer acquisition cost (CAC)</strong>, that is the ratio between the budget and the number of new users</li>
</ul>
<p>For example if I spend 100 euros to get 1 customer, then my CAC is 100 euros.</p>
<p>It becomes interesting when CAC is less than LTV.</p>
<p>Ok, this sentence is cryptic. </p>
<p>The <strong>LTV</strong> (lifetime value) represents the value of a customer over their lifetime, basically the revenue generated by your customer.</p>
<p>For example, imagine a subscription at 9 euros per month. If the average duration of a user on your platform is 12 months, then the average LTV is 108 euros. In reality it&#39;s less, since you would need to subtract operating costs (the server for example) but let&#39;s simplify it like that for now.</p>
<p>Ideally you estimate that you should have <code>LTV = 3 x CAC</code> </p>
<p>For <a href="http://Writizzy.com">Writizzy.com</a>, I only have 6 months of history so my LTV is necessarily limited to 6 months but I still have customers who took annual subscriptions. </p>
<p>Stripe tells me my LTV is <strong>181 euros</strong>. </p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781879448646-fxgnpew.png" alt="LTV provided by Stripe" /></p>
<p>Ok, this might seem weird since I told you I only had 6 months of history and therefore not enough hindsight to have customers who spent this amount.<br>Stripe actually uses this formula: </p>
<p>$$LTV = \frac{ARPU}{Churn}$$</p>
<ul>
<li><strong>ARPU</strong> (Average Revenue Per User) represents the average revenue per user per month.</li>
<li><strong>Churn</strong> is the percentage of customers who cancel each month.</li>
</ul>
<p>So it&#39;s more of a prediction than a reality. </p>
<p>I still think my history will greatly evolve this value. We&#39;ll see later but overall it means that already if <strong>by spending 100 euros I can sign a customer, then I&#39;m winning</strong>.</p>
<h2>Reddit Ads</h2>
<p>I preferred to start with Reddit Ads to spend my first 100 euros. I tried to use Google Ads but without success and the fact that I didn&#39;t have tracking active on my site created lots of errors for me. It&#39;s theoretically possible to do without it but Google refused to spend my money :)</p>
<p>Reddit, if you don&#39;t know, is a sort of mega forum where people talk about pretty much everything. It&#39;s estimated to represent between 1 and 2 billion monthly active users. It&#39;s colossal.</p>
<p>Reddit is organized as sub-forums, the subreddits. Each subreddit talks about a topic, for example <a href="https://www.reddit.com/r/Raclette/">raclette</a>, <a href="https://www.reddit.com/r/BreadStapledToTrees/">people who photograph slices of bread attached to trees</a>… or <a href="https://www.reddit.com/r/SubSimulatorGPT3/">channels reserved for AI</a>. Ok…</p>
<p>And it&#39;s possible to display ads on subreddits, so in theory to well-targeted populations, like, people who like writing blog articles and sending newsletters, which works well for me for Writizzy.</p>
<p>I set up two campaigns to test two approaches: </p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781880942231-h3xqdwc.png" alt="my reddit campaigns" /></p>
<p>One campaign emphasizes the price difference with Substack. </p>
<p>The second emphasizes that we must remain masters of our data. </p>
<p>I&#39;ll spoil it right away, I changed the ads and actually I focused everything on price after 3 days. </p>
<p>Here&#39;s the graph of impressions and the amount spent per day provided by Reddit: </p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781881150779-bsorujx.png" alt="graph of impressions provided by Reddit" /></p>
<p>We note: </p>
<ul>
<li>that I spent exactly 100 euros, at 20 euros per day for 5 days</li>
<li>that my number of impressions increased drastically on the 4th day.</li>
</ul>
<p>Because yes, I made some big mistakes…</p>
<h2>Campaign setup</h2>
<p>First mistake is that I thought it wasn&#39;t working. That is, I started the campaign on June 9. I did see things happening on the 9th and then for 2 days I thought Reddit wasn&#39;t doing anything anymore.</p>
<p>In fact each day I would come back with the same date filter so I didn&#39;t see more than June 9 and until June 11 I thought Reddit wasn&#39;t working…</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781881508798-bxuqgsh.png?width=400" alt="facepalm" /></p>
<p>To be honest, I also thought it wasn&#39;t working because I saw barely any additional traffic arriving at my site. </p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781881606561-qyjgoyx.png" alt="no significant traffic until June 12." /></p>
<p>And then I fixed it and traffic arrived. Here&#39;s what I changed:</p>
<ul>
<li>I switched from a Free form ad type to Image</li>
<li>I strongly restricted the audience by removing many countries from geographic targeting</li>
</ul>
<p>The Free form ad looks like a post and then the person has to click on the link placed in the text. Whereas the &quot;Image&quot; ad sends traffic directly to you when people click. Let me tell you the difference is gigantic. You can see it in the traffic, nobody came with the Free-form ad.</p>
<p>Audience restriction has other benefits, two for my case: </p>
<ul>
<li>my product uses a payment platform that doesn&#39;t allow payments from all countries, so it&#39;s pointless to target unsupported countries</li>
<li>I&#39;m subject to a lot of spam attacks from certain countries, might as well stay quiet about them…</li>
</ul>
<p>It&#39;s not a problem to target fewer people as long as they&#39;re the ones ready to convert and pay. </p>
<p>So I reduced the audience to North America and Europe.</p>
<h2>Landings and conversion</h2>
<p>Starting from June 11, I finally had traffic and we&#39;re talking about significant visits, between 5 and 7 times more than my usual traffic. Reddit became my number 1 traffic source at that point:</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1781882319958-cb4ntj3.png" alt="writizzy traffic by source" /></p>
<p>But it&#39;s nice to have visits, but it still needs to be useful.</p>
<p>At first I was sending <a href="https://writizzy.com/compare/substack">to the comparison page with Substack</a>. But this page isn&#39;t adapted for conversion, it&#39;s oriented for SEO. It doesn&#39;t match the ad that was on Reddit and which talked about the price difference with Substack.<br>(Plus here you see the latest version of the comparison page which was worse at that time).</p>
<p>So I quickly made <a href="https://writizzy.com/lp/substack">another page just to be a landing page</a> for the Reddit campaign. </p>
<p>The difference between a SEO-oriented page and a landing page is that the second can have conversion-oriented messaging and must limit the number of exit points outside the signup button. Whereas the &quot;SEO&quot; page should on the contrary participate in the internal linking of the site and should be more neutral to hope that the indexing bots propose it in search results. </p>
<h2>The bottom line</h2>
<p>Over these 5 days, I spent 100 euros, 20 euros per day.</p>
<p>In reality only 2 days were really effective because of my startup errors.</p>
<p>My tracking in openpanel was a bit off and I had to improve it to better see the origin of signups. I can hardly say that the signups from the period are linked to my campaigns. But it will be more the case for the next ones.</p>
<p>I had 1000 unique visitors over 2 days, on a population rather interested in my product. For info, I was doing 2000 unique visitors per month before, so adding 1000 visitors is a 50% increase in traffic. If I had properly configured my campaign from the start I could have aimed for 1500 more visits. </p>
<p>90 people clicked on signup, 44 made it all the way through.  That&#39;s still a very good number!</p>
<p>I have no paying conversions so far. Sure, a person can decide to convert their account in the future but for now it&#39;s not the case. So my CAC is not calculable and I&#39;m not profitable versus my LTV.</p>
<p><strong>A single paying customer would have made the campaign profitable</strong> but I can still convert free users in the future.</p>
<p>So will I try again? Yes certainly.</p>
<p>With the same budget I could have doubled or even tripled my monthly traffic if I hadn&#39;t made mistakes.</p>
<p>And then it&#39;s up to me to better manage my conversion on site. </p>
<p>I&#39;ll try to see how I could send the conversion signal to Reddit without sacrificing privacy, if it&#39;s possible. Apparently I should look at <a href="https://business.reddithelp.com/s/article/Conversions-API">Reddit's conversion API</a>.</p>
<p>And I&#39;ll try other angles for future landings.</p>
<p>It&#39;s definitely far from my comfort zone. But actually it&#39;s interesting to play with all these parameters and especially to see results. I&#39;m very numbers-oriented so this game is likely to be very addictive on the contrary.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Transactional Outbox Pattern with PostgreSQL and RabbitMQ]]></title>
            <link>https://eventuallymaking.io/p/the-transactional-outbox-pattern-with-postgresql-and-rabbitmq</link>
            <guid>https://eventuallymaking.io/p/the-transactional-outbox-pattern-with-postgresql-and-rabbitmq</guid>
            <pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[How do you secure your writes between PostgreSQL and RabbitMQ without penalizing your performance? Discover the Transactional Outbox pattern]]></description>
            <content:encoded><![CDATA[<p>How do you write to two different systems, for example RabbitMQ and PostgreSQL?</p>
<p>You might say it&#39;s pretty straightforward.</p>
<pre><code class="language-kotlin">@Transactional   
fun doSomething() {
    ... 
    // save in database through JPA
    myRepo.save(myEntity)
    // post message
    broker.publishEvent(event)
    ...
}
</code></pre>
<p>But what happens if there&#39;s an error, if the SQL transaction fails? You end up with a message published but for an operation that never actually took place.</p>
<h2>Two-phase commit transactions</h2>
<p>This is a relatively common problem and we&#39;re used to handling it with <a href="https://en.wikipedia.org/wiki/Two-phase_commit_protocol">2 Phase commit</a> transactions. The idea being to introduce a transaction across all operations to external systems, including RabbitMQ here.</p>
<p>It&#39;s a somewhat complex mechanism that requires an additional coordinator to ensure everything goes well before validating the write across all systems.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1780731744816-woxokv4.png?width=400" alt="2 phase commit workflow" /></p>
<p>But there are several problems.</p>
<p>The first is that it&#39;s not possible to do <a href="https://docs.spring.io/spring-amqp/reference/amqp/transactions.html">2PC transactions with RabbitMQ</a> (also called XA transactions). Which, you&#39;ll agree, is already a relatively significant problem in itself.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1780733931608-l51ra7c.png" alt="excerpt from documentation confirming absence of XA transactions with RabbitMQ" /></p>
<p>We could use ActiveMQ which supports 2PC transactions. But on the other hand, it would be a shame to write an article about PostgreSQL and RabbitMQ just to conclude that you need to use ActiveMQ instead, right?</p>
<p>The second problem is that in any case, a 2PC transaction penalizes the overall system performance. To synchronize two or more systems, not only will the total operation time never be less than the minimal time of the slowest system, but you also add a cost related to coordination.</p>
<p>The last problem is that you degrade overall availability. Availability being the multiplication of the average availability of each system. For example with two systems with 99% availability, the total system achieves 98% availability.</p>
<p>$0.99 \times 0.99 = 0.9801$</p>
<p>And that was basically the state of my knowledge until yesterday. I had already used XA transactions, I had already dealt with distributed systems issues and I&#39;ve worked on plenty of mitigation scenarios for this type of problem.</p>
<p>Yesterday I added RabbitMQ to Writizzy&#39;s stack and I used another solution: the <a href="https://microservices.io/patterns/data/transactional-outbox.html">Transactional Outbox</a> pattern.</p>
<h2>The transactional outbox pattern</h2>
<p>While the underlying concept isn&#39;t necessarily new, this specific pattern was popularized by Chris Richardson between 2014 and 2016.</p>
<p>The concept is &quot;simple&quot;:</p>
<ul>
<li>rely only on the database to publish an event (step 1)</li>
<li>read the table in an asynchronous job (step 2)</li>
<li>publish to the message queue from the job (step 3)</li>
</ul>
<p>The code becomes</p>
<pre><code class="language-kotlin">@Transactional   
fun doSomething() {
    ... 
    // save in database through JPA
    myRepo.save(myEntity)
    // save in database
    outboxRepo.save(event)
    ...
}
</code></pre>
<p>We now have only <strong>a single transaction</strong>, and the <strong>guarantee that the event is published only if the transaction succeeds</strong>. Event that will be sent to RabbitMQ later.</p>
<p>Now, to actually send to RabbitMQ, you need a job to read the table:</p>
<pre><code class="language-javascript">@Scheduled(fixedDelay = 500)
@SchedulerLock(name = &quot;outbox_publisher&quot;, lockAtMostFor = &quot;PT30S&quot;, lockAtLeastFor = &quot;PT0S&quot;)
fun run() {
    outboxPublisherService.publishPending()
}
</code></pre>
<p>Note the use of <a href="https://www.baeldung.com/shedlock-spring">SchedulerLock</a> here which allows the use of schedulers in a multi-node context, to avoid simultaneous reading by multiple applications. This allows replacing Quartz which I frequently used until now.</p>
<p>And you need the publication service code</p>
<pre><code class="language-javascript">
    fun publishPending() {
        val events = outboxEventRepository.findTop20ByOrderByCreatedAtAsc()
        events.forEach { event -&gt; publishEvent(event) }
    }

    private fun publishEvent(event: OutboxEvent) {
        try {
            rabbitTemplate.invoke { t -&gt;
                t.convertAndSend(event.exchange, event.routingKey, event.payload) { message -&gt;
                    message.messageProperties.messageId = event.id
                    message.messageProperties.headers[HEADER_ORIGINAL_EXCHANGE] = event.exchange
                    message.messageProperties.headers[HEADER_ORIGINAL_ROUTING_KEY] = event.routingKey
                    message
                }
                t.waitForConfirmsOrDie(5_000)
            }
            outboxEventRepository.delete(event)
        } catch (e: Exception) {
            logger.error(&quot;Failed to publish outbox event ${event.id} (${event.eventType})&quot;, e)
        }
    }
</code></pre>
<p>Note that we&#39;ve enabled RabbitMQ&#39;s <a href="https://www.rabbitmq.com/tutorials/tutorial-seven-java">publisher confirms</a> mode and we&#39;re waiting for write confirmation: <code>t.waitForConfirmsOrDie(5_000)</code></p>
<p>But you could say to me: &quot;you have the problem of double write to two systems again&quot;.</p>
<p>And... you&#39;re not wrong.</p>
<p>But it&#39;s simpler here. I only have 3 cases:</p>
<ul>
<li>Everything goes well, nothing to say, it&#39;s perfect.</li>
<li>RabbitMQ fails =&gt; we go into the exception, we log, we exit, the message stays in the table and will be retried</li>
<li>The PostgreSQL transaction fails. We go into the exception but the message is already sent!!</li>
</ul>
<p>The 3rd case is important, it will happen so you need to handle it. This implies that each consumer must be able to be <strong>idempotent</strong> on message reception. That is, each consumer must be able to accept the same event twice without incident.</p>
<p>Here strategies are multiple:</p>
<ul>
<li>read the message ID and store it somewhere to check that we don&#39;t do the operation twice, ideal for calls to external services</li>
<li>trigger idempotent operations (Example: set status = pending, even if we do it twice, it doesn&#39;t pose a problem)</li>
</ul>
<p>etc...</p>
<h2>And error handling?</h2>
<p>But there&#39;s an issue, if RabbitMQ goes down, if it&#39;s unreachable, if the disk is full, we&#39;re going to log the exception and with a batch running every 500ms I&#39;ll let you imagine the astronomical amount of logs that will produce. So we need a <a href="https://en.wikipedia.org/wiki/Circuit_breaker_design_pattern">Circuit Breaker</a>. Conveniently, we can use <a href="https://resilience4j.readme.io/docs/getting-started">resilience4j</a>.</p>
<p>With a circuit breaker, we&#39;ll cut off sending to Rabbit in case of error and wait a bit before retrying. I&#39;ll leave the code here but won&#39;t detail it, that would be the subject of another article.</p>
<pre><code class="language-javascript">
init {
    circuitBreakerRegistry.circuitBreaker(&quot;rabbitmq-outbox&quot;).eventPublisher
        .onStateTransition { event -&gt;
            logger.warn(&quot;RabbitMQ circuit breaker: ${event.stateTransition}&quot;)
        }
}

@CircuitBreaker(name = &quot;rabbitmq-outbox&quot;, fallbackMethod = &quot;skipOnOpenCircuit&quot;)
fun publishPending() {
    val events = outboxEventRepository.findTop20ByOrderByCreatedAtAsc()
    for (event in events) {
        publishEvent(event)
    }
}

private fun skipOnOpenCircuit(e: CallNotPermittedException) {
    // Circuit open — state transition already logged via eventPublisher
}

private fun publishEvent(event: OutboxEvent) {
    try {
        rabbitTemplate.invoke { t -&gt;
            t.convertAndSend(event.exchange, event.routingKey, event.payload) { message -&gt;
                message.messageProperties.messageId = event.id
                message.messageProperties.headers[HEADER_ORIGINAL_EXCHANGE] = event.exchange
                message.messageProperties.headers[HEADER_ORIGINAL_ROUTING_KEY] = event.routingKey
                message
            }
            t.waitForConfirmsOrDie(5_000)
        }
        outboxEventRepository.delete(event)
    } catch (e: AmqpException) {
        throw e  // broker error → propagates to circuit breaker
    } catch (e: Exception) {
        logger.error(&quot;Failed to publish outbox event ${event.id} (${event.eventType})&quot;, e)
    }
}
</code></pre>
<h2>Challenging your own developer beliefs with AI</h2>
<p>As I said earlier, I was well acquainted with the XA transaction mechanism and the state of my knowledge for solving this problem stopped there.</p>
<p>I wondered with curiosity if Claude would propose a more elegant implementation and I was rather surprised. In this specific kind of case, it was the perfect opportunity to try learning <strong>with</strong> AI instead of just suffering code we don&#39;t understand.</p>
<p>Letting AI write code without oversight, unsurprisingly it&#39;s rarely good. You need an expert eye and ultimately the code produced remains our responsibility and we must be able to understand it. So you need to find a middle ground between letting it do its thing and micro-managing the AI.</p>
<p>By giving it my constraints (stemming from my experience), it was the agent that came up with the Transactional Outbox pattern proposal. And while I was initially a bit skeptical, I tried to understand each part of the code to make it my own by asking multiple questions. The code wasn&#39;t perfect, it was following these exchanges that was added:</p>
<ul>
<li>the publish confirm pattern</li>
<li>resilience with resilience4j</li>
<li>the scheduler lock to avoid multi-node issues</li>
<li>the addition of messageid in headers (for deduplication)</li>
<li>claude had added a state management on messages that wasn&#39;t relevant</li>
</ul>
<p>So yes, it wasn&#39;t a smooth plan but it was a good way for me to force myself to get updated, do some research and in short, learn new things.</p>
<p>Beyond the technical aspect of this post, I mainly wanted to illustrate the method I use to code with an agent, which allows me to combine productivity AND craft.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What is a Hacker Residency?]]></title>
            <link>https://eventuallymaking.io/p/what-is-a-hacker-residency</link>
            <guid>https://eventuallymaking.io/p/what-is-a-hacker-residency</guid>
            <pubDate>Fri, 12 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Between hackerspaces and artist residencies, discover the concept of "Hackers in residence".]]></description>
            <content:encoded><![CDATA[<p>This week I&#39;m participating in a <a href="https://www.uneed.best/residency">Hackers residency</a> in Nantes. But what exactly is a &quot;hackers residency&quot; or &quot;Hackers in residence&quot;?</p>
<p>It&#39;s simple: you take a place, preferably a cool one, a group of hackers (I&#39;ll come back to this term), you let it brew for a short period and you get… something, in principle a product but we could simply talk about artifacts, prototypes, applications, physical machines, etc… But not just slides. Otherwise we&#39;d call it a McKinsey seminar.</p>
<p>When I talk about hackers, be careful I&#39;m not talking about the person who hacked your credit card last month. For lack of a more appropriate term, we&#39;d rather talk about tinkerers. People who seek to solve problems by sometimes taking a few shortcuts.</p>
<p>A hacker residency is, in spirit, a direct descendant of <a href="https://fr.wikipedia.org/wiki/Hackerspace">hackerspaces</a>, shared community spaces that emerged in the 1980s/90s. In essence, there are already Hackers who move from one place to another to share, test and experiment. For Hackers residencies, the concept is strengthened with a principle: what if we invited a hacker from another country, gave him an access badge, a couch to sleep on and let him code, hack hardware or volunteer to give workshops for a month? The concept of <em>Hacker-in-Residence</em> was born.</p>
<p>And even if the lineage isn&#39;t direct, we find a historical kinship with the <strong><a href="https://fr.wikipedia.org/wiki/R%C3%A9sidence_artistique">artist-in-residence</a></strong> model. The principle remains the same: invite artists, provide them with a place to express themselves, often with other artists. In short, the same fight—to create places, sometimes temporary, dedicated to creation.</p>
<p>Anyway, I&#39;m in Nantes for the week with 13 other people to discuss, build things, test, and incidentally, have fun!</p>
<p>::gallery
<img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1779954519848-eyyuv1q.png" alt="" />
<img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1779954537284-akg53g7.png" alt="" />
<img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1779954473841-ctynyuc.png" alt="" />
::</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Are We in the Era of Shitty Code?]]></title>
            <link>https://eventuallymaking.io/p/are-we-in-the-era-of-shitty-code</link>
            <guid>https://eventuallymaking.io/p/are-we-in-the-era-of-shitty-code</guid>
            <pubDate>Wed, 10 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[There isn't a day that goes by without discovering a major security flaw or data breach somewhere. Is this the beginning of a shitty code era ?]]></description>
            <content:encoded><![CDATA[<p>There isn&#39;t a day that goes by without discovering a major security flaw or data breach somewhere.</p>
<p>Just yesterday, it was Github, which apparently opened <a href="https://www.varonis.com/blog/github-breach">part of its code as open source</a>. Unintentionally, of course, but we can still appreciate the gesture.</p>
<p>Meanwhile, in France, it&#39;s <a href="https://www.lecanardenchaine.fr/technologie-sciences/53846-lecornu-debranche-l-anssi-accusee-de-ne-pas-avoir-securise-des-sites-sensibles-de-l-etat">3 data thefts per day on average</a> according to this article. But don&#39;t worry, apparently our prime minister has a solution: fire the director of the national cybersecurity agency (ANSSI)…</p>
<p>That said, the massive breach of France&#39;s <strong>secure</strong> identity document agency (ANTS) by a 15-year-old hacker via <a href="https://www.frandroid.com/culture-tech/securite-applications/3086647_cest-inquietant-le-piratage-de-lants-france-titres-viendrait-dune-faille-absurde">a trivial vulnerability</a> was kind of the straw that broke the camel&#39;s back.</p>
<p>And according to some, AI would be responsible for the general decline in software quality, for example at GitHub where uptime would be in constant decline since GPT3 on this chart (and the arrival of Microslop but let&#39;s focus on just one culprit).</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1779385294823-sr0yejx.png" alt="Github uptime since Microsoft acquisition" /></p>
<p>Okay, that&#39;s trolling. But some people wonder seriously: is AI really the source of all these problems?</p>
<p>That&#39;s what we&#39;re going to try to see. We&#39;re going to talk about the real reasons for the CVE surge but it will mostly be a pretext to wonder if we&#39;re really at the dawn of an era of AI-generated shitty code.</p>
<h2>The Rise in CVEs</h2>
<p>First, why am I talking about CVEs, and what is a CVE anyway?</p>
<p>A CVE (Common Vulnerabilities and Exposures) is a standard that catalogs all known vulnerabilities in a large database. Each CVE is listed under a super sexy little name, like <a href="https://nvd.nist.gov/vuln/detail/CVE-2024-12345">CVE-2024-12345</a>.</p>
<p>(Yes, it&#39;s quite thrilling, isn&#39;t it?)</p>
<p>So you&#39;re going to tell me, in the software world we talk about bugs, not CVEs, and you&#39;d be quite right. But there&#39;s no catalog of bugs for all known software.</p>
<p>So here I&#39;m taking the number of annual CVEs as a kind of indicator of the number of bugs in software because I think there&#39;s a small correlation between a decline in quality and an increase in security holes. At first glance anyway, but we&#39;ll come back to that.</p>
<p>And if we look at it, well the acceleration could date from 2022 with however a first step <a href="https://www.cvefind.com/en/cve-statistic-date.html">around 2017.</a></p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1779461611189-zigeu3z.jpg" alt="CVE increase since 1998" /></p>
<p>If we take 2017 as the turning point, it becomes hard to blame AI for the problem even with the bad faith of a a Marseille football fan (hey Max, if you&#39;re reading this, you know how you guys love to exaggerate).</p>
<p>Broadly speaking, the CVE increase since 2017 is probably explained by a mix of factors:</p>
<ul>
<li>greater pressure on software which is now expected to have a new version every day</li>
<li>a general explosion of digital technology</li>
<li>many more security programs (bug bounties)</li>
<li>an increase in the number of software dedicated to cybersecurity.</li>
<li>major geopolitical conflicts and more frequent cyber attacks</li>
</ul>
<p>Actually, it&#39;s not unlikely that we&#39;re measuring the number of thermometers (and not just the temperature), so the rise of the cyber industry, and on the other hand, the rise of digital technology which is becoming an economic and geopolitical stake in a rather unstable context for years.</p>
<p>Now we can still question the post-2022 period because the slope seems to be climbing as fast as Trump&#39;s court cases.</p>
<p>However, I&#39;d say that CVEs aren&#39;t the best proxy for measuring software quality because as we&#39;ve seen, CVEs can increase for rather exogenous reasons. It&#39;s not because we&#39;re controlling things better than before and scrutinizing more that there are really more bugs.</p>
<p>So we&#39;re going to go back to the starting point and look at a sentence I hear very often: AI is the death of craft.</p>
<h2>With AI, It&#39;s the Death of Craft</h2>
<p>Craft, for those not following along, is kind of an umbrella term to group together a whole set of practices aimed at producing &quot;quality&quot; software. Assuming we can define what quality software is, but that&#39;s another subject.</p>
<p>With AI we wouldn&#39;t be crafting anymore and technical expertise, the appeal of the profession for many, would have disappeared.</p>
<p>Wait, here we have two different subjects:</p>
<ul>
<li>the appeal of the profession would disappear because we wouldn&#39;t be crafting anymore</li>
<li>the code produced by AI would be to computing what English cuisine is to world gastronomy, i.e., not great.</li>
</ul>
<p>(Well, let&#39;s set the record straight on the second point: no, English cuisine is vastly worse)</p>
<p>So some people have tried to determine whether code produced by AI was necessarily less &quot;sustainable&quot; than code produced by a human, in short, whether we were really building mountains of technical debt at light speed.</p>
<h2>AI Slop and Software Maintenance</h2>
<p>Do you know <a href="https://www.linkedin.com/in/dave-farley-a67927/">Dave Farley</a>?</p>
<p>Dave Farley is notably one of the authors of the book Continuous Delivery released in 2010.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1779465841179-gjslvso.png?width=400" alt="Continuous Delivery book cover" /></p>
<p>It was one of my reference professional books for years at a time when there was a lot of talk about software factories, quality, and continuous deployment. I worked for years on these subjects, particularly from 2006 on distributed CI concepts. I then worked from 2010 on industrialization themes, then from 2012 on continuous deployment.</p>
<p>(okay grandpa but continue your story)</p>
<p>Well <a href="https://www.youtube.com/watch?v=b9EbCb5A408">Dave Farley participated in a study</a> that aimed precisely to determine which code was more maintainable between code produced by AI or code produced by humans. Was there more <strong>technical debt</strong> in AI-produced code? And the answer is… <strong>no</strong>.</p>
<p>To be frank, even I&#39;m surprised, and yet not at all.</p>
<p>I&#39;m surprised because I know the engineering effort required for AI to work well. Without that effort, the code quickly looks like a slightly lopsided Frankenstein.</p>
<p>But, I imagine the study is about professionals who had time to set up their usual tools.</p>
<h2>Building an Agentic Software Factory</h2>
<p>I told you, I love building software factories, I&#39;ve been working on this subject for years.</p>
<p>A software factory is nothing more than a manufacturing process, more or less industrialized and automated.</p>
<p>A code generator, however powerful, <strong>is not a software factory, it&#39;s just one of the factory&#39;s machines</strong>.</p>
<p>And if you just let <strong>one</strong> machine run, it&#39;s not enough.</p>
<p>When a dev only does copy-paste from ChatGPT from a browser, it&#39;s barely 10% of the work and yes, the result isn&#39;t great and often requires a lot of manual adjustments.</p>
<p>Now, being a bit provocative, I&#39;d say that tweaking the generated code is a failure. Imagine the same thing in a car factory. If artisans had to retouch every car produced, it would be a bit surprising. And, I&#39;m no specialist, but I don&#39;t think that&#39;s how it works.</p>
<p>Anyway, you need the other tools.</p>
<p>In our profession, this consists of building test and validation harnesses, defining rules to follow and finding ways to verify they&#39;re being followed, creating skills to guide AI agents&#39; work and prevent them from crashing, allowing them to verify themselves with tools and therefore correct themselves, etc…</p>
<p>And that, actually, <strong>is craft</strong>. Using AI agents makes those famous best practices mandatory that everyone talks about but you don&#39;t see so often in practice.</p>
<p>All the people I see right now in the <a href="https://www.devw.ai/">DevWithAI</a> community are craftspeople trying to improve their software factory. They&#39;re people working on token compression tools like <a href="https://www.rtk-ai.app/">rtk</a>, tools to simplify and standardize usage at team scale like <a href="https://packmind.com/">packmind</a>, <a href="https://cc.bruniaux.com/">usage guides like Florian's</a>.</p>
<p>Craft hasn&#39;t disappeared. It has changed.</p>
<p>For a company, there&#39;s substantial effort required to introduce these tools, build a software factory on top, create tooling, do platform engineering, and you need people for that, the same way you need people to design, maintain, and evolve production chains in factories.</p>
<p>Briefly, no, the appeal of the profession hasn&#39;t disappeared in my view, for people who love craft and technical work.</p>
<p>And if we talk about quality, I&#39;m going to surprise you but, at my scale, I see significant quality leaps in my applications.</p>
<h2>The Writizzy Example</h2>
<p>I develop several products, <a href="https://hakanai.io/">Hakanai</a> and <a href="https://writizzy.com/">Writizzy</a>. I recently put <a href="https://bloggrify.com/">Bloggrify</a> in maintenance mode.</p>
<p>Bloggrify started in 2022, Hakanai in 2023 and Writizzy in 2025.</p>
<p>For the first two, I barely used AI at first then gradually introduced some copy-paste from very discreet use of inline agents. So more than 90% of the code was produced by hand.</p>
<p>Well today I&#39;d say that it shows.</p>
<p>Wait, I&#39;m proud of what I did with Hakanai and Bloggrify. But to build an application solo you have to be <strong>very</strong> good at everything: building the application, its logic, its ergonomics, its UI, its robustness. But that&#39;s not my case. So sometimes there are places where it&#39;s a bit less good and it shows.</p>
<p>And beyond that, doing everything very well takes time. When building a product, you always have to choose between &quot;perfect&quot; and &quot;good enough for most uses&quot;. The difference between the two being the time available.</p>
<p>Sometimes you give up, you know it&#39;s not perfect, but you&#39;ve just spent 1 week on it, and frankly for a 5% quality improvement, forget it, we&#39;re not spending another week on it. That will be for next time. That famous next time that never comes.</p>
<p>Actually the quality of Hakanai and Bloggrify was variable. There were shortcuts taken, pages with ergonomics straight out of the 2000s web, and it doesn&#39;t matter, that&#39;s how we used to build products.</p>
<p>With Writizzy, that&#39;s completely different. I don&#39;t take shortcuts. First and foremost because to produce correct code with AI, you need a proper software factory, and that includes safeguards like tests, linters, etc… So it&#39;s non-negotiable, whereas ultimately it was negotiable before for Hakanai and Bloggrify.</p>
<p>Plus, the cost of refactoring has become almost zero. The small thing missing for a feature to be perfect, now I can do it.</p>
<p>Actually today I can take the time to handle edge cases, those famous little exceptions that before you&#39;d leave aside because &quot;that never happens&quot;. I can use the time saved on dev to think more about security, robustness, scalability.</p>
<p>Producing code has become a commodity. So I take advantage of it to produce very good code.</p>
<p>Briefly, I&#39;m still crafting, but its nature has changed.</p>
<p>And what I produce is better quality. So I&#39;m not convinced we&#39;ve entered an era of shitty code.</p>
<p>Now there&#39;s still a nuance to add. AI drastically lowers the barrier to entry. That&#39;s good, but it means we end up with a flood of stillborn software, things that won&#39;t survive longer than a shitcoin promoted by a Dubai influencer, and companies that are going to cut hard on R&amp;D costs because… laziness, and what if we increased margins. So yes, under those conditions, we&#39;re going to have an increase in the number of poorly produced software, software that will die after 3 months because their creators will get bored very quickly faced with the reality of actually managing an IT product. But good products will on the other hand be much better because craft will be a sine qua non condition for not crashing in a world where everything will move much faster.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[My AI stack for developing products without breaking the bank]]></title>
            <link>https://eventuallymaking.io/p/my-ai-stack-for-developing-products-without-breaking-the-bank</link>
            <guid>https://eventuallymaking.io/p/my-ai-stack-for-developing-products-without-breaking-the-bank</guid>
            <pubDate>Mon, 08 Jun 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Can you build an app with AI for 20€/month? Here's a field report to optimize these uses: token optimization, specs and agentic workflow.]]></description>
            <content:encoded><![CDATA[<p>Can you really build applications today with AI AND only spend 20 euros a month?</p>
<p>I&#39;m currently developing two projects: <strong><a href="https://broadcast.hakanai.io/">Hakanai</a></strong> (for static blogs) and <strong><a href="https://writizzy.com/">Writizzy</a></strong>, which just passed 550 users in 6 months. But combined, I don&#39;t make more than 250 euros a month and my principle is not to spend more than what I earn.</p>
<p>So I have a big constraint: budget. I try to build my applications without burning tokens at the speed of light. And I wanted to share with you how I do it.</p>
<h2>What is Writizzy?</h2>
<p>Quick reminder to set the context: Writizzy is an equivalent to Medium or Substack. A platform to write, send newsletters and monetize your content. I think it&#39;s vital to have spaces for expression outside the GAFAM (and outside the US). It&#39;s the software that runs the blog you&#39;re reading.</p>
<p>Code-wise, we have three big pieces:</p>
<ul>
<li>An <strong>API</strong> in Kotlin.</li>
<li>An <strong>Admin App</strong> in Nuxt.</li>
<li>A <strong>&quot;blog&quot; App</strong> (that serves the content) in Nuxt as well.</li>
</ul>
<p>To work, I mostly use <strong>Claude</strong>. Why? Because it remains the best-rated model on the code benchmarks.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1778777417711-qfyj55a.jpg?width=800" alt="Claude's ratings on the SWE leaderboard" /></p>
<p>But I&#39;m thinking about an alternative. I&#39;ll tell you more about it at the end.</p>
<h2>Context Engineering: Constraining the AI</h2>
<p>The idea to work effectively is to give the LLM the necessary and <em>sufficient</em> context to limit its solution space. We want to give it guidelines and ways to verify itself that it stays within the lines. If you don&#39;t do that, don&#39;t be surprised when the AI hallucinates APIs or uses old doc versions. It&#39;s normal.</p>
<h3>The Claude.md file</h3>
<p>It&#39;s the entry point. You&#39;ll find the project objective, the general structure to prevent the AI from browsing through all the code randomly, and especially the list of <strong>specs</strong>.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1778777528645-wcuy3ff.png" alt="list of writizzy specs" /></p>
<p>This list is fundamental in my development process, I&#39;ll come back to it later. It also serves as an index for Claude.</p>
<p>Note that I have other <a href="http://claude.md">claude.md</a> files in subdirectories, these files are loaded by Claude if it enters them. I have one per application (app, blog, and api). I use it to list available technologies but I tend to use rules more and more.</p>
<h3>The Rules (.claude/rules)</h3>
<p>These are rules that can be loaded conditionally. For example here, if Claude enters the <code>/app</code> directory, it loads the Nuxt rules.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1778777745407-iavgjhu.png" alt="header that defines loading conditions" /></p>
<p>In this rules file I define the patterns I want to see used, for example:
obligation to use Nuxt UI, to run a <code>typecheck</code> or <code>eslint</code> pass before finishing, etc.</p>
<p>These rules, I built them empirically. That is, the file was empty originally, then I added rules based on the errors I saw coming back. More recently I&#39;m trying to limit Claude&#39;s exploration so I systematically ask him if he saw patterns he should document in the rules to avoid spending tons of tokens exploring. Plus I don&#39;t really like him guessing based on the code he encounters.</p>
<p>Example of a question I recently asked him:</p>
<blockquote>
<p>I&#39;m looking to improve the rules I&#39;ve already put in place. I find that you had to read a lot of files to understand the context and patterns. Why? Give me a summary of the patterns you were looking to understand to see if we can make them into rules</p>
</blockquote>
<p>Actually, building these rules files is a kind of <strong>safety harness</strong>. But you also need to understand that it&#39;s not a guarantee because LLMs will regularly ignore rules. So you need to strengthen control means: tests, linter, CI quality gates, etc…</p>
<p>I note that it&#39;s easier for those used to developing with good practices to work correctly with AI. These practices serve as safeguards but for many companies, it was a bit of window dressing but not very effective in practice. And precisely, in companies where these methods aren&#39;t mature, AI doesn&#39;t take off. One wonders why... Or not…</p>
<h3>The &quot;Analyst&quot; command</h3>
<p>A command is a sort of pre-prompt. I use an <code>analyst</code> command for brainstorming. I ask him to be a specialist in blogging, IndieWeb and decentralization. I ask him to challenge my needs, detect inconsistencies and most importantly <strong>to write the specs</strong>.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1778778898711-yzwuiwu.png" alt="analyst command file" /></p>
<h2>Specs before code</h2>
<p>Earlier I talked about specs that are listed in the claude.md file.</p>
<p>Let&#39;s talk a bit about my dev cycle.. I systematically go through a spec before any significant piece of code.
(Funny when I think back to when I launched <strong>Malt</strong>, there wasn&#39;t much written at first…)</p>
<p>With AI, the spec has two major interests:</p>
<ol>
<li><strong>Frame the expected result</strong>. We first define the direction, user flows, etc.</li>
<li><strong>Save tokens in the future</strong>: By listing the technical entry points and key files in the spec, Claude doesn&#39;t need to search everywhere.</li>
</ol>
<p><img src="https://writizzy.b-cdn.net/blogs/3d2c312a-df80-4b93-b164-0dfd3902f0f8/1778779441925-pkekdx3.png" alt="list of technical entry points" /></p>
<p>Indeed, when Claude reworks a feature that already exists, he&#39;ll use the spec file to understand how it works and especially easily get back to the key files. With these specs, he&#39;ll save a lot of time on that, and especially it will be more accurate than letting him guess.</p>
<p>Once the spec is validated, I create an <strong>implementation plan</strong> (well, Claude creates a plan). For that, I have a skill that imposes my practices: each step must be deployable, it must use feature flags if necessary, etc...</p>
<h2>The art of managing your context window</h2>
<p>Here I need to come back to the notion of context window because it&#39;s important for optimizing your monthly budget. What costs a lot is endless sessions. With each exchange, you send back the entire history. After a while, a simple &quot;Ok&quot; can cost tens of thousands of tokens. So already, that costs a lot.</p>
<p>But the second cool side effect, the fuller the window, the &quot;dumber&quot; the AI becomes. So I try never to exceed <strong>50% capacity</strong>. That&#39;s the whole point of implementation plans. The idea is to break it down into small autonomous tasks and change sessions regularly.</p>
<h2>Skills vs MCP: The efficiency battle</h2>
<p>I mentioned skills before. I use them heavily to be more efficient. And there&#39;s a real parallel between efficiency and cost so I need to talk about it here.</p>
<p>A <strong>Skill</strong> is a competency loaded on demand. For example, my Nuxt skill forces Claude to go read the doc online (in Markdown format) rather than relying on his outdated training data.</p>
<p>I have skills for different things:</p>
<ul>
<li>APIs that specify my design patterns: api-design, db-migration, write-spec</li>
</ul>
<p>It&#39;s sometimes a bit more than &quot;just&quot; specifying patterns, for example the db-migration skill lists exactly which tools to use (Flyway), the location of migration files, the file format. And on the pattern side we find my key principles of deployment strategy (rolling update, etc…)</p>
<ul>
<li>bento, nuxt, nuxt-content, nuxt-ui to specify how to fetch the doc</li>
<li>skills that explain how to use a CLI, for example sentry-fix-issues which explains how to use the sentry CLI to get information, diagnose, and fix</li>
</ul>
<p>On the other hand, we have <strong>MCP</strong> (Model Context Protocol). It&#39;s powerful too, but it takes up more space in the context because each method of the MCP is included in the context window. Where a skill, it&#39;s only the skill description that&#39;s included.</p>
<p>So I prefer Skills, except for:</p>
<ul>
<li><strong>MCP IntelliJ</strong>: To properly navigate code and compile.</li>
<li><strong>MCP Stripe</strong>: To debug configuration.</li>
<li><strong>Claude-mem</strong>: supposed to remember key decisions between sessions (I&#39;m still testing, the gain isn&#39;t clear yet).</li>
</ul>
<h2>What about design?</h2>
<p>Recently, I switched to <strong>Claude Design</strong>. It became my tool of choice. I brief, I comment on areas, I modify on the fly, and once the HTML is clean, I give it to my Claude agent for implementation. It&#39;s well above what I was doing before in simple prompting. The results are really stunning.</p>
<h2>Balance sheet: How to stick to the budget?</h2>
<p>In short, with all that I manage to get by for 20€ a month but I still have a few extra tricks:</p>
<ul>
<li><strong>Token compression</strong>: I use compression strategies (like <a href="https://www.rtk-ai.app/">rtk</a>) or I create my own tools to only send LLMs what&#39;s necessary.</li>
<li><strong>Online AIs</strong>: If I want to brainstorm &quot;for free&quot;, I go to Gemini. I&#39;m generally less of a fan but it can serve as a relay before going to really work with the analyst for example.</li>
</ul>
<p>But mostly, I have an incredible trick… I close my work session when Claude tells me I&#39;ve exceeded my quota. Plain and simple.</p>
<p>When it&#39;s done, I stop. I go do woodworking, cooking, I write an article (that&#39;s exactly what I&#39;m doing right now ^^).</p>
<p>It seems like nothing but this discipline is actually healthy. I don&#39;t see it only as a constraint but also as an opportunity to do something else, think, consolidate what I&#39;ve learned, etc… It joins what I wrote in a recent article, it&#39;s good <a href="https://eventuallymaking.io/p/coding-10x-faster-what-s-the-real-benefit">to save time, but you have to know how to make the most of it</a>.</p>
<p>Next step: I&#39;m testing local models. The idea is to delegate small implementation tasks to my machine and keep Claude only for strategic planning. It&#39;s really just the beginning so I&#39;ll talk about it more later.</p>
<p>I&#39;m far from being as advanced as possible on these topics and especially I&#39;m in a solo context. But if you have your own tips to share, don&#39;t hesitate in the comments, they&#39;ll be read carefully.</p>
]]></content:encoded>
            <category>ai</category>
            <category>productivity</category>
        </item>
        <item>
            <title><![CDATA[Day 181: What I learned with a Claude SEO Skill]]></title>
            <link>https://eventuallymaking.io/p/day-181-what-i-learned-with-a-claude-seo-skill</link>
            <guid>https://eventuallymaking.io/p/day-181-what-i-learned-with-a-claude-seo-skill</guid>
            <pubDate>Mon, 04 May 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[I tested Claude-SEO (MCP) to audit Writizzy after days of declining traffic. My deep dive into technical optimizations (JSON-LD, E-E-A-T, Nuxt) and the mystery of Google's 'Discovered - Currently Not Indexed' status]]></description>
            <content:encoded><![CDATA[<p>Alright, I’ve barely posted anything for the past 181 days, but you know how it is… procrastination.</p>
<p>Anyway, it’s been 181 days since I launched <strong><a href="https://writizzy.com">Writizzy</a></strong>. It’s the blogging platform I’m using for this very article. I’m the first one convinced by my own product, which is already a small victory :)</p>
<p>With a bit of exaggeration, I could tell you that in 181 days, Writizzy has managed to reach the same level as Substack, Medium, or Beehiiv in terms of features.</p>
<p>Obviously, on the usage side, we&#39;re not quite there yet. About 480 users have tested it, with around 130 of them being truly active.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1777916090289-68dtysn.png" alt="Real stats from the Writizzy platform:" /></p>
<p>And above all, it&#39;s far from being a smooth ride. I have a huge thorn in my side: very few people are discovering the product. Even worse, my traffic is decreasing.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1777916107500-uknv0m5.png" alt="Continuous traffic drop over the last 2 months:" /></p>
<p>With 1,850 unique visitors in April, it’s my second worst month since the beginning. And one of the reasons (though not the only one) is SEO.</p>
<h2>SEO is Failing</h2>
<p>&quot;SEO is Failing&quot;, that sounds like it could be the title of a gritty <strong>Liam Neeson</strong> thriller.</p>
<p>With 1,850 unique monthly visitors, I’m getting almost 3 times less traffic than my own personal blog (the one you’re reading right now). That’s… room for improvement :)</p>
<p>Most of the traffic comes from social media, Reddit, Facebook (?? I don&#39;t know why), Uneed (a product launch platform), and various blogs already using Writizzy.</p>
<p>There is some traffic coming from Google, but it’s what we call &quot;Brand&quot; traffic. These are people typing &quot;Writizzy,&quot; so they already know the product. In that case, you can&#39;t really call it new user acquisition.</p>
<p>So, a few weeks ago, I wanted to self-audit to see if I could find what was wrong. To do that, I found a set of skills for Claude: <strong><a href="https://github.com/AgriciDaniel/claude-seo">claude-seo</a></strong>.</p>
<p>Claude-SEO consists of about twenty skills that test several areas: content quality, JSON-LD markup, GeoSearch (AI search optimization), technical SEO, etc.</p>
<p>There are 21 of them, so I won&#39;t list them all, you&#39;ll have to excuse me...</p>
<p>Once installed, I ran the command <code>/seo audit [https://writizzy.com](https://writizzy.com)</code> and here is the first result:</p>
<table>
<thead>
<tr>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody><tr>
<td><strong>Category</strong></td>
<td><strong>Weight</strong></td>
<td><strong>Weighted Score</strong></td>
</tr>
<tr>
<td><strong>Technical SEO</strong></td>
<td>22%</td>
<td>52/100 (11.4)</td>
</tr>
<tr>
<td><strong>Content Quality (E-E-A-T)</strong></td>
<td>23%</td>
<td>38/100 (8.7)</td>
</tr>
<tr>
<td><strong>On-Page SEO</strong></td>
<td>20%</td>
<td>45/100 (9.0)</td>
</tr>
<tr>
<td><strong>Schema / Structured Data</strong></td>
<td>10%</td>
<td>68/100 (6.8)</td>
</tr>
<tr>
<td><strong>Performance (CWV)</strong></td>
<td>10%</td>
<td>55/100 (5.5)</td>
</tr>
<tr>
<td><strong>AI Optimization (GEO)</strong></td>
<td>10%</td>
<td>41/100 (4.1)</td>
</tr>
<tr>
<td><strong>Images &amp; Social</strong></td>
<td>5%</td>
<td>35/100 (1.75)</td>
</tr>
<tr>
<td><strong>TOTAL</strong></td>
<td></td>
<td><strong>47 / 100</strong></td>
</tr>
</tbody></table>
<p>47/100 isn&#39;t great, but at the same time, it’s actually good news. It means there’s work to be done and the tool will be able to help me.</p>
<h2>Insights from the First Run</h2>
<p>Claude-SEO tests many things, especially technical SEO.</p>
<p>In theory, this is the easiest part since it involves structural optimizations, titles, performance, JSON schemas, etc.</p>
<p>I received some very relevant advice, particularly regarding home page image optimization and pre-connection directives for my Bunny CDN.</p>
<p>HTML</p>
<pre><code class="language-javascript">&lt;link rel=&quot;preload&quot; as=&quot;image&quot; href=&quot;/herobg.webp&quot; fetchpriority=&quot;high&quot;&gt;
&lt;link rel=&quot;preconnect&quot; href=&quot;https://writizzy.b-cdn.net&quot;&gt;
</code></pre>
<p>I also got a lot of feedback on the JSON-LD schemas used on the page.</p>
<p>::callout{type=info}
About JSON-LD: You have to understand that a bot indexing a site doesn’t read it like we do. We can help it better understand what the site is about by giving it structured data in JSON-LD format. It’s invisible to the human reader but very practical for the crawler.
::</p>
<p>You can see the entire JSON-LD structure of the home page that I modified thanks to this site (which I invite you to use for yourself): <a href="https://validator.schema.org/#url=https%3A%2F%2Fwritizzy.com">validator.schema.org</a></p>
<p>Claude-SEO also allowed me to realize there was a bug in the <strong>nuxt-seo</strong> library I use, which was impacting all the titles and meta descriptions of my site. Every page had the same attributes!</p>
<p>(By the way, Claude also helped me <a href="https://github.com/harlan-zw/nuxt-seo/issues/534">diagnose the bug to open an issue</a>, which has since been fixed).</p>
<p>But most importantly, Claude-SEO suggested several relevant additions:</p>
<ul>
<li>Adding an <a href="https://writizzy.com/llms.txt">llms.txt</a> file to improve my ranking for AI assistants.</li>
<li>Adding dedicated pages for the <a href="https://writizzy.com/about">founding team</a>, pricing, and specific features.</li>
</ul>
<p>Usually, we tend to create landing pages that group all this information together, but apparently, it can be beneficial to have separate pages to answer specific search intents, like &quot;Writizzy pricing.&quot;</p>
<p>As for the &quot;About&quot; page, it&#39;s about reinforcing the site&#39;s authority based on <strong>E-E-A-T</strong> criteria (Experience, Expertise, Authoritativeness, and Trustworthiness), criteria Google uses to assess the trust they can place in a site.</p>
<p>Once all that was in place, I ran a second test and got a <strong>64/100</strong>.</p>
<h2>An Instructive Second Run and a Few Bugs</h2>
<p>Claude-SEO is not a deterministic tool. In other words, new relevant problems can appear that weren&#39;t noted in the first run.</p>
<p>Second issue: sometimes page crawling fails. For example, during this second run, the <code>llms.txt</code> file was still considered missing even though it was there. Same for the blog, which wasn&#39;t detected.</p>
<p>However, there was still clear progress between the two executions, and some new problems were totally valid:</p>
<p><strong>No security headers</strong> were present. It’s not crucial for SEO, but it’s still a bad signal. I installed <a href="https://nuxt.com/modules/security">nuxt-security</a>, which resolved this very quickly.</p>
<p>More annoying: <a href="http://writizzy.com">http://writizzy.com</a> was returning a 200 and <a href="https://www.writizzy.com">https://www.writizzy.com</a> was sending an SSL error because the only valid URL is <a href="https://writizzy.com">https://writizzy.com</a>. That’s normal, but bad for crawling. HTTP must redirect to HTTPS, and &quot;www&quot; as well if you don&#39;t want to manage it. This was all handled directly at the Bunny and Coolify levels.</p>
<ul>
<li>Claude-SEO suggested several additions for <strong>Cache-Control</strong> directives and even gave me the configuration for Nuxt since it knew I was using it.</li>
</ul>
<p>I&#39;ll skip other minor or less interesting detections, which brings us to the 3rd execution: <strong>71/100</strong>.</p>
<p>This 3rd run mainly detected implementation errors on what had already been done, encoding errors in JSON-LD, logos with formats not accepted for Open Graph, and a few suggestions for additional pages.</p>
<h2>The Verdict?</h2>
<p>This Claude plugin was super interesting. I learned things (like E-E-A-T or certain JSON-LD entities I didn&#39;t know), it highlighted problems I could have seen myself (like security headers, lack of HTTP to HTTPS redirects), and it allowed me to better configure my Nuxt framework.</p>
<p>I highly recommend testing it on your own site.</p>
<p><strong>Now, did it work? Has my SEO become the best in the world?</strong></p>
<p>Well, not really. For a reason I can&#39;t explain, Google refuses to index the pages of my site except for the Home page. If you look on Google with <code>site:writizzy.com</code>, only the home page shows up. And this is confirmed in the Google Search Console, which lists all other pages as &quot;Discovered - Currently Not Indexed.&quot;</p>
<p>And there, it’s a mystery.</p>
<p>Especially since I have the exact same problem on <strong><a href="https://hakanai.io">hakanai.io</a></strong> (another product I&#39;m building), only the home page is indexed once again.</p>
<p>At this stage, I’m a bit lost. I think I’ve truly improved the SEO from a technical standpoint, but I must be missing a massive issue that I don’t understand.</p>
<p>For some unknown reason, my site is considered untrustworthy or lacking interest, even though I have a <strong>Domain Rating of 47</strong> and 3,000 backlinks.</p>
<p>In short, SEO isn&#39;t just about tech, and for now, I don&#39;t have all the keys yet :)</p>
<p>If you have SEO knowledge and ideas, feel free to share, I’m all ears.</p>
<p>Next steps: I’m going to go through every page one by one. If Google deems my content &quot;uninteresting,&quot; I need to understand why.</p>
<p>In the meantime, if you want to help me send positive signals to Google (or just test a pretty cool blogging tool), don&#39;t hesitate to start your blog on Writizzy with a little backlink, it’s a boost that could really help me ^^</p>
]]></content:encoded>
            <category>writizzy</category>
            <category>seo</category>
        </item>
        <item>
            <title><![CDATA[Why Open Source Won’t Be Enough to Free Us from Big Tech]]></title>
            <link>https://eventuallymaking.io/p/why-open-source-won-t-be-enough-to-free-us-from-big-tech</link>
            <guid>https://eventuallymaking.io/p/why-open-source-won-t-be-enough-to-free-us-from-big-tech</guid>
            <pubDate>Mon, 27 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[264 billion euros flow out of Europe every year. Why open source, without a genuine digital commons strategy, won’t save us.]]></description>
            <content:encoded><![CDATA[<p>Let’s play a game. A management game, SimCity-style.</p>
<p>Here’s the setup: You manage a country. Actually, let’s increase the difficulty: You manage a federal state made up of several countries.</p>
<p>This state is losing money every year because it buys more from neighboring countries than it sells to them.</p>
<p>This drain has several consequences: your companies sell less, so they under-invest. Your citizens have fewer jobs and lower wages.</p>
<p>You depend on imported products. The states selling them take advantage of this to impose their own conditions for continued business.</p>
<p>As you’ve probably guessed, this game already exists. It’s called Europe, and the products I’m talking about are essentially digital services.</p>
<p>And apparently, a solution is currently being studied to counterbalance this slow digital colonization: <strong>Open Source</strong>.</p>
<p>Okay, let’s explore this path and try to understand where it might lead us.</p>
<h2>264 Billion Euros and 1 Million Jobs</h2>
<p>264 billion euros and 1 million jobs, that’s what Europe lets slip away every year to major American Tech companies (Cloud, AI, etc.).</p>
<p>This figure hides massive blind spots. Digital technology means direct AND indirect jobs, <a href="https://www.business-humanrights.org/fr/derni%C3%A8res-actualit%C3%A9s/pega-committee-draft-report-reveals-rampant-spyware-abuse-in-europe/">risks of espionage</a>, and <a href="https://www.ege.fr/infoguerre/2018/12/linfluence-de-cambridge-analytica-brexit">proven cases of public opinion manipulation</a>.</p>
<p>It’s also a constant weight on our diplomatic relations, because it’s hard to resist our digital dealer when they impose conditions, for instance, <a href="https://www.lemonde.fr/international/article/2025/03/28/les-etats-unis-reclament-a-des-entreprises-francaises-de-se-conformer-aux-lois-federales-anti-discrimination_6587269_3210.html">demanding we abandon inclusion policies within our own companies</a>.</p>
<p>In this context, Europe wants to rely on the <a href="https://ec.europa.eu/info/law/better-regulation/have-your-say/initiatives/16213-European-Open-Digital-Ecosystems_en">European Open Digital Ecosystem</a>.</p>
<p>So, is Open Source the solution?</p>
<h2>Open Source and Geopolitics?</h2>
<p>If money has no smell, does Open Source? Not necessarily.</p>
<p>An open license tells us nothing about a project&#39;s governance, meaning, who decides and who captures the revenue.</p>
<p>A huge number of major open-source projects are simply funded by large American corporations (e.g., Kubernetes, React, VS Code). GitLab, for instance, sees a vast majority of its contributions coming from salaried engineers.</p>
<p>Another part of these projects is managed by foundations that may also be based in the US (Apache, Linux, Mozilla).</p>
<p>In the event of a conflict, even if Open Source is &quot;open,&quot; Europe could find itself penalized.</p>
<p>We could be excluded from major distribution platforms, like GitHub, which has restricted usage in Iran in the past.</p>
<p>A project could unilaterally decide to stop supporting local standards or legislation (such as privacy regulations).</p>
<p>A <a href="https://www.zdnet.fr/blogs/l-esprit-libre/selon-le-pere-de-linus-torvalds-la-nsa-a-bien-demande-un-acces-derobe-dans-linux-39795598.htm">state could influence contributors to insert backdoors</a>.</p>
<p>But it’s open source, you might say. We could just create our own fork and maintain it in Europe, right?</p>
<p>It’s not that simple.</p>
<p>That would imply finding, mobilizing, and funding armies of contributors in Europe. Contributors who would spend a portion of their time &quot;just&quot; catching up with the original code and verifying that no backdoors were introduced to target us.</p>
<p>In short, it requires resources and people willing to maintain projects built elsewhere.</p>
<p>Then there’s the concept of the ecosystem. Take Huawei, for example: they forked Android but couldn&#39;t access the Play Store or Google Play Services, which severely limited its appeal.</p>
<p>You might argue that we also have foundations in Europe. <a href="https://www.lembarque.com/article/la-fondation-eclipse-devient-une-organisation-pleinement-europeenne">Eclipse moved to Europe in 2020</a>, making it the largest European open-source foundation.</p>
<p>True, but a foundation lives off membership fees, and the main contributors to Eclipse are American (IBM, Oracle, Microsoft, Intel, Amazon, Google). Not to mention that the Eclipse Foundation isn&#39;t the most advanced on current topics like AI or Cloud.</p>
<h2>A Structural Fragility in Open Source</h2>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1777314792515-fw3vuuu.png" alt="" /></p>
<p>This isn&#39;t just a hunch; it all circles back to the question of resources.</p>
<p>Until now, we’ve mostly discussed massive projects, but the vast majority of projects rest on fragile foundations.</p>
<p>Open source is underfunded. Countless projects are simply too small to be visible, even though they likely power 99% of modern digital software (source: myself, but I doubt I&#39;m far off).</p>
<p>Between maintainer burnout and the lack of resources to keep up with current demands, it’s easy to connect this fragility to cyber risks. Log4Shell, Heartbleed, and XZ are perfect examples of vulnerabilities and cyberattacks targeting open source.</p>
<p>Relying on such fragile actors without funding them is hypocrisy.</p>
<p><a href="https://tech.eu/2025/07/25/chronic-underfunding-of-open-source-software-poses-strategic-risk-to-europes-digital-sovereignty/">But this conclusion is widely shared</a>, and Europe <a href="https://goodtech.info/commission-europeenne-strategie-open-source-souverainete-2026/">is planning to put money on the table to fund open source</a> as an alternative to major US software.</p>
<p>We’re talking about funding programs in the billions of euros and policies favoring open-source solutions.</p>
<h2>Digital Commons</h2>
<p>Of course, we return to the problem mentioned earlier: open source does not mean neutrality. Therefore, Europe is setting criteria and, above all, defining the concept of a <a href="https://en.wikipedia.org/wiki/Digital_commons_(economics)">Digital Common</a>:</p>
<p>A digital common is not just software (code); it is a triad of inseparable elements:</p>
<ul>
<li><strong>A digital resource:</strong> Software, a database, a technical standard.</li>
<li><strong>A community:</strong> Developers, contributors, companies, and users who maintain the resource.</li>
<li><strong>Governance:</strong> A set of rules defining who can contribute, how decisions are made, and how to prevent the resource from being captured by a single actor (&quot;vendor lock-in&quot;).</li>
</ul>
<p>An open-source project &quot;dictated&quot; by a single American multinational is not a digital common, because the community has no real decision-making power.</p>
<p>And &quot;digital commons&quot; created in Europe do exist: OpenStreetMap, VLC, and even Linux and the Web.</p>
<h2>Toward a Fragmented Open Source?</h2>
<p>The primary fear in a <strong>digital cold war</strong> is seeing <a href="https://goodtech.info/geopolitique-fragmentation-open-source-tendances-2026/">a fragmentation of open source</a>: license wars, targeted exclusion of contributors by country, and a decline in international collaboration. It’s already becoming difficult to get visas for international events, and refusing certain foreign travel is becoming both a political and ecological act.</p>
<p>While this outlook is somewhat grim, it is relatively inevitable. In a closing world, open source will not live in an isolated bubble. And this will force us to create our own digital identity.</p>
<h2>A European Digital Identity</h2>
<p>It’s true: open source alone is not the solution because it is a fragile, underfunded, and inherently non-neutral ecosystem.</p>
<p>A large portion of US Open Source is funded by big US companies, often serving as a digital Trojan horse to capture revenue.</p>
<p>But how many companies in the US actually run on &quot;Free Software&quot;?</p>
<p>Relatively few.</p>
<p>This is less true in Europe. The International Criminal Court (ICC) runs on OpenDesk. Several French administrations have just announced their migration to &quot;<a href="https://lasuite.numerique.gouv.fr/">La suite numérique</a>&quot;.</p>
<p>We could see a European digital identity taking shape, based on standards like <strong>interoperability</strong> (open formats), <strong>reversibility</strong> (the ability to easily retrieve one’s data), and the <strong>digital commons</strong> I mentioned earlier.</p>
<p>We could see industrial consortiums joining forces to create digital standards, such as <a href="https://eclipsesdv.org/">Eclipse SDV (for Software Defined Vehicles)</a>.</p>
<p>We could imagine conditions in public tenders that de facto eliminate US products—for example, an extraterritorial immunity clause to protect us by default against laws like the Cloud Act.</p>
<p>Finally, we can imagine Europe becoming a hub for digital ethics, attracting global talent who want to contribute to projects serving the general interest rather than the stock price of a giant.</p>
<p>In short, open source is not a magic wand for Europe to stop being a digital colony. We will have to go further. This will require courageous public procurement, massive funding of digital commons, and strict legal protection against extraterritorial laws. European digital identity will not be a gift from Tech giants, but an infrastructure we must build ourselves.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[AI & Layoffs: What if Artificial Intelligence Is Just an Excuse?]]></title>
            <link>https://eventuallymaking.io/p/ai-layoffs-what-if-artificial-intelligence-is-just-an-excuse</link>
            <guid>https://eventuallymaking.io/p/ai-layoffs-what-if-artificial-intelligence-is-just-an-excuse</guid>
            <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[273,000 job losses expected in the tech sector: Is AI already replacing us, or is it being used as a cover for opportunistic layoff plans? An analysis of a market shift where productivity isn’t always where you’d expect it to be.]]></description>
            <content:encoded><![CDATA[<p>Well, here we are—tech layoffs are exploding. According to <a href="https://www.rationalfx.com/">RationalFX</a>, the total number of departures is expected to reach 273,000 by the end of the year.</p>
<p>And while this figure alone doesn&#39;t mean much, know this: it represents roughly 10 times the annual volume of pre-COVID layoffs.</p>
<p>So, can we really say that humans are being progressively replaced by AI <a href="https://www.businessinsider.com/list-companies-replacing-human-employees-with-ai-layoffs-workforce-reductions#hp-4">as so many claim</a>?</p>
<table>
<thead>
<tr>
<th>Year</th>
<th>Average Annual</th>
</tr>
</thead>
<tbody><tr>
<td>2010-2019</td>
<td>15,000 to 30,000</td>
</tr>
<tr>
<td>2020-2021</td>
<td>85,000</td>
</tr>
<tr>
<td>2022</td>
<td>165,000</td>
</tr>
<tr>
<td>2023</td>
<td>264,000</td>
</tr>
<tr>
<td>2024</td>
<td>153,000</td>
</tr>
<tr>
<td>2025</td>
<td>245,000</td>
</tr>
<tr>
<td>2026</td>
<td>273,000 (forecast)</td>
</tr>
</tbody></table>
<p>In France, <a href="https://bsky.app/profile/insee.fr/post/3miax6xpogc23">INSEE speaks of a contraction in the job market directly linked to the rise of AI</a>. </p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1775308608839-go6oa5y.png" alt="" /></p>
<p>But correlation doesn&#39;t imply causation, so we&#39;re entitled to wonder if there&#39;s something else hiding behind all the hype.</p>
<p>So I wanted to dig deeper and explore the root causes to understand this wave. And it turns out AI might not be our biggest concern.</p>
<h2>Large waves of departures blamed on AI</h2>
<p>If you read the latest news, there&#39;s plenty to worry about:</p>
<ul>
<li>Oracle just <a href="https://www.bbc.com/news/articles/cm296jzzl9yo">laid off 30,000 people</a> (20% of its workforce)</li>
<li>Block cut <a href="https://www.theguardian.com/technology/2026/mar/03/jack-dorsey-block-ai-worker-jobs">40% of its headcount</a></li>
</ul>
<p>And I could&#39;ve cited Meta, Amazon, Klarna, ASML, Ericsson, Salesforce—the list goes on.</p>
<p>In most cases, AI is cited as one of the reasons. And this narrative has a major advantage because on paper, these companies say: we&#39;re automating, we&#39;re gaining productivity, and we&#39;re cutting fixed costs. Which tends to reassure shareholders.</p>
<p>Block&#39;s stock price, for example, recovered a bit in February following the announcements.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1775308667790-dgggjru.png" alt="" /></p>
<p> Same with Oracle&#39;s stock price (announcement made March 30th).</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1775308674411-363ss2q.png" alt="" /></p>
<p>Now doubts linger, and <a href="https://www.linkedin.com/pulse/ai-revolution-here-turns-out-its-just-layoff-better-pr-maren-hogan-hb4qc/">as one article put it</a>: &quot;Isn&#39;t this just layoffs with better marketing—AI washing?&quot;</p>
<h2>Block is really compensating for past management mistakes</h2>
<p>Block is the new name for Square, a payments company you might know from its little payment terminal that&#39;s now fairly ubiquitous:</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1775308701210-tklj01j.png" alt="" /></p>
<p>But Block isn&#39;t just a payment terminal—it&#39;s also companies in crypto because its founder, Jack Dorsey, is a big believer in cryptocurrencies.</p>
<p>Jack Dorsey is also the former founder of Twitter, which he sold to Elon Musk a few years ago.</p>
<p>And Jack tends to think big. Twitter had 8,000 employees when he sold it—a company that now runs with 2,800 people.</p>
<p>At Block, the company <strong>tripled</strong> its headcount post-COVID. We&#39;re talking about a 12,000-employee company that had just 4,000 pre-2020.</p>
<p>Sure, you can understand it by looking at the COVID effect on Block&#39;s stock.</p>
<p>Except the return to reality in 2022 hit hard. The company stagnated, and with an explosion in the payroll, things couldn&#39;t end well.</p>
<p>So we started seeing performance improvement plans emerge.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1775308736523-hd1tayq.png" alt="" /></p>
<p>Because if <a href="https://joshbersin.com/2026/03/is-blocks-decision-to-layoff-40-of-its-workforce-a-bellwether-or-not/">you look at the economic fundamentals, as this article does</a>, you realize that Block is far less profitable than its competitors, with gross margins that are half theirs.</p>
<p>Today, AI is mostly a &quot;pretty&quot; way to hide management mistakes and reassure investors.</p>
<h2>Oracle isn&#39;t cutting jobs for productivity gains</h2>
<p>Oracle&#39;s case is a bit different. Officially, it&#39;s not about cuts driven by productivity gains, but a reorientation of investments toward infrastructure to support AI.</p>
<p>In their case too, the stock price is rather concerning, but it&#39;s not the main driver of changes.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1775308763507-3o1k54g.png" alt="" /></p>
<p>As <a href="https://www.bbc.com/news/articles/cm296jzzl9yo">one article puts it, it's primarily about investment</a>:</p>
<blockquote>
<p>The job cuts at Oracle come as it has invested heavily in AI, spending both on its own infrastructure and on partnerships with other companies like OpenAI. It plans to spend at least $50bn on infrastructure this year, and it has also raised $50bn in debt in order to &quot;meet demand&quot; for even more AI infrastructure. Oracle is also part of the Stargate initiative, alongside OpenAI, SoftBank and MGX, an AI investment fund backed by US President Donald Trump.</p>
</blockquote>
<p>Here, it&#39;s really about reorienting capital from a traditional activity that&#39;s flagging to one that&#39;s supposed to replace it in a few years.</p>
<p>In reality, I won&#39;t criticize it. It&#39;s a strategy, a bet. A huge bet, but one that falls into the same category as what Kodak should&#39;ve done when digital arrived. <strong>And Oracle doesn&#39;t want to be the next Kodak.</strong></p>
<h2>The market is anticipating unrealized gains</h2>
<p>And that&#39;s really the issue—nobody wants to be the next Kodak.</p>
<p>When a leader (like Block, Google, or Meta) lays off 10% of its workforce and its stock goes up the next day, every other company is tempted to do the same.</p>
<p>Laying people off because you mismanaged your company would be an admission of failure. But laying people off because you&#39;re &quot;transforming through AI&quot; is a vision of the future.</p>
<p>And this FOMO—fear of missing out—explains a lot of the current departure plans. Gartner <a href="https://www.gartner.com/en/articles/future-of-work-trends">calls it "RIFs before reality", the anticipation of unrealized gains</a>:</p>
<blockquote>
<p>The employment deal is being rewritten in real time. CEOs are making bold moves based on AI&#39;s promise rather than its proven impact. Layoffs linked to AI dominated headlines last year, but Gartner data shows fewer than 1% were due to actual productivity gains.</p>
</blockquote>
<p>This anticipation drives investment reorientations. Oracle&#39;s case is representative here. Not everyone is investing in infrastructure, but many are reinvesting in engineering to automate other business functions and, most importantly, to be ready for the future.</p>
<blockquote>
<p>AI is no longer just a growth story; it&#39;s a cost-reduction tool, and firms are restructuring accordingly. What we&#39;re witnessing is a shift from headcount-driven expansion to automation-led productivity, a transition that will define the tech sector in the coming years. —Alan Cohen, analyst at RationalFX</p>
</blockquote>
<p>Now, this isn&#39;t new, and I notice a certain hypocrisy among some developers who are discovering today that their profession has always been about automating others&#39; jobs. It&#39;s a shame to discover it when it touches us personally.</p>
<p>Anyway, what&#39;s certain is that companies are anticipating cuts without yet having proof of the gains to come. It&#39;s not just a few layoffs—we&#39;re seeing signs, <a href="https://www.linkedin.com/posts/zuhayeer_companies-arent-just-laying-people-off-due-activity-7440136301531705344-7Ngq">notably raised by levels.fyi's founder</a>: we&#39;re witnessing a simplification of career paths.</p>
<p><img src="https://writizzy.b-cdn.net/blogs/48b77143-02ee-4316-9d68-0e6e4857c5ce/1775308842239-o61bj6x.png" alt="" /></p>
<p>A layoff plan is temporary. But when you start eliminating rungs in career ladders, it signals you&#39;re anticipating a durable, global reduction in headcount.</p>
<p>And yet, once again, the gains aren&#39;t that obvious so far.</p>
<h2>Productivity gains aren&#39;t widely demonstrated yet</h2>
<p>We all have our opinion on this.</p>
<p>I consider myself more productive with AI. But not everyone agrees.</p>
<p>But in any case, these are just opinions.</p>
<p>There are studies on the topic of productivity, but there&#39;s no consensus.</p>
<p>You can find <a href="https://arxiv.org/abs/2507.09089">studies showing we're less productive</a>, but you <a href="https://www.pwc.fr/fr/espace-presse/communiques-de-presse/2024/mai/ai-jobs-barometer.html">can also find others saying the opposite</a>.</p>
<p>The causes are multiple. The first is what&#39;s called the <a href="https://en.wikipedia.org/wiki/Productivity_paradox">productivity paradox</a>:</p>
<blockquote>
<p>You can see the computer age everywhere but in the productivity statistics</p>
</blockquote>
<p>Yes, back then we wondered if computers really made us more productive. It was far from certain.</p>
<p>This paradox is explained two ways.</p>
<p>First, companies spend more time configuring tools, training people, and reorganizing workflows than actually producing more.</p>
<p>Second, a new technology requires a learning period that can be quite long to master. And that&#39;s what we&#39;re seeing today—AI usage is totally new. Many are just faster at doing what they did badly before.</p>
<p>And it&#39;s not like we know how to measure developer productivity anyway. I&#39;ll remind you that this question still hasn&#39;t found a universal answer since we started asking it.</p>
<p>Now, I&#39;ve also heard plenty of CTOs and IT directors privately say they have the means to prove it. <strong>But they don&#39;t want to</strong>. Because proving it would mean making decisions they don&#39;t want to make.</p>
<p>And I can tell you that in this period, I&#39;m glad I&#39;m no longer a CTO.</p>
<h2>Deeper economic reasons</h2>
<p>Still, as we&#39;ve seen, productivity gains or not, can we really say all current layoffs are AI-related? Probably not.</p>
<p>A <a href="https://www.resume.org/the-great-turnover-9-in-10-companies-plan-to-hire-in-2026-yet-6-in-10-will-have-layoffs-2/">recently cited study shows that 59% of HR leaders admit that AI was used as a "cover" to justify budget cuts that were actually driven by</a>:</p>
<ul>
<li>Over-hiring post-COVID</li>
<li>Investor pressure to increase margins</li>
<li>Internal strategy mistakes</li>
</ul>
<p>But I think that would be overly reductive.</p>
<p>It&#39;s mostly the nth demonstration that we&#39;ve entered a new era post-COVID. Between rising inflation, ongoing trade wars, endless debates about tariffs, skyrocketing energy costs, various conflicts that paralyze parts of international commerce—<strong>we&#39;re really in a recession</strong>.</p>
<p>AI is a facade to hide the rest. When Trump gets excited about his Stargate project (building datacenters), it&#39;s storytelling to hide the mess, even if it&#39;s true that AI is probably one of the drivers of the military sector in coming years and the US losing ground on it is probably making them nervous.</p>
<p>Yes, because the worst part is that even on AI, it&#39;s not certain the people leading the dance will be American.</p>
<p>Recent Chinese models like Ernie, DeepSeek, Qwen, and Kimi are largely on par with Gemini or ChatGPT, without necessarily costing the same. Kimi and DeepSeek reportedly cost 10% of their American counterparts during training phases.</p>
<p>Which, incidentally, is encouraging but mostly logical—technology improves, and we&#39;ve never seen tech stay this inefficient over time. The computer that sent a rocket to the moon was less powerful than our smartphone despite consuming far more energy.</p>
<p>And for all these reasons, US companies are in full downsizing mode. Players in AI need to become more competitive. They&#39;re investing heavily while cutting payroll at the same time.</p>
<p>Other tech companies are following suit, further constrained by hyper-unfavorable economic conditions and in a context where saying you&#39;re laying off to increase productivity is more sellable than admitting reality.</p>
<h2>A new era?</h2>
<p>And us in the middle of all this? Well...</p>
<p>I&#39;ll be honest—I really wondered how to conclude this piece. I always try to end on a positive note, but the exercise is difficult here. I&#39;ll try anyway.</p>
<p>Is this the end of an era? Probably the era of unreasonable hyper-growth, which isn&#39;t so bad. This forced downsizing might help us get back to basics instead of just chasing vanity metrics (like headcount).</p>
<p>It&#39;s also a global economic shift and a US bloc that seems to be faltering. I want to see some positivity in thinking that Europe has cards to play. We&#39;re less affected than the US by the recent massive waves of layoffs. Probably because we have less insane payrolls than the US and more solid social models.</p>
<p>While American giants painfully refocus, it&#39;s our moment in Europe to catch up. These new technologies, more accessible and efficient, let us move faster with fewer resources. Maybe it&#39;s finally time to create real European tech alternatives—more sober and pragmatic.</p>
<p>On that note, you can go back to normal activities.</p>
]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Coding 10x faster: what's the real benefit?]]></title>
            <link>https://eventuallymaking.io/p/coding-10x-faster-what-s-the-real-benefit</link>
            <guid>https://eventuallymaking.io/p/coding-10x-faster-what-s-the-real-benefit</guid>
            <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
            <description><![CDATA[Developers who save a ton of time thanks to AI: what do you do with it? Let's explore that.]]></description>
            <content:encoded><![CDATA[<p>I saw a Reddit post the other day: &quot;<a href="https://www.reddit.com/r/developpeurs/comments/1qcogyb/pour_les_devs_qui_gagnent_bcp_de_temps_gr%C3%A2ce_%C3%A0/">Developers who save a ton of time thanks to AI: what do you do with it?</a>&quot; (in french)</p>
<p>It got me thinking. I have an answer from my own experience, which I&#39;ll share with you. But I&#39;m well aware my situation is peculiar. So I decided to dig deeper, and I realized something: the real question isn&#39;t whether you&#39;re getting faster. It&#39;s: what does that actually change for you?</p>
<p>Do you work less? More? Differently?</p>
<p>What&#39;s the impact in a large corporation? What about freelancers?</p>
<p>Essentially: ++<strong>if</strong>++ someone gains time, what&#39;s it actually worth to them?</p>
<h2>Is That Time Gain Even Real?</h2>
<p>First, let me be thorough and put things in perspective. A <a href="https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/">recent study from METR</a> (Model Evaluation &amp; Threat Research) shows that this time gain might not be as straightforward as we think.</p>
<p>The study found that experienced developers working on legacy codebases were actually 20% slower with AI, largely due to code review cycles.</p>
<p>Take it with a grain of salt—the sample size was only 16 people. And context matters: we&#39;re talking about expert developers working on large, complex codebases.</p>
<p>I won&#39;t dwell on this study because I can find others saying the opposite. But I thought it was intellectually honest to mention it, to balance the narrative and add some perspective.</p>
<p>The point isn&#39;t to assume that AI definitely makes us faster. I don&#39;t want to get into that debate. Instead, let&#39;s strip away the AI label entirely and just consider a hypothesis:</p>
<p><em>What if someone could produce code 20-30% faster? Or even 10x faster? What happens then? If software production becomes cheaper, what&#39;s the impact on the developer profession? What can you actually do with that gained time?</em></p>
<p>This isn&#39;t a silly hypothesis. The profession has changed radically since the days of physically wiring computers to program them. We&#39;ve constantly improved productivity. And our successors probably won&#39;t work the way we do.</p>
<h2>An Opportunity for Product Builders</h2>
<p>I&#39;m an outlier, so my answer doesn&#39;t apply to most people.</p>
<p>I work with one co-founder on a recently launched product. I have no productivity quotas, no salary pressure, no one to report to.</p>
<p>I control my own time. If I finish a task in an hour instead of a week, I can just stop working and do something else. I&#39;m not obligated to pad my hours or hit some end-of-day checkpoint.</p>
<p>Of course, I still have pressure—the product needs to be good and adopted. I track new users monthly, revenue growth, and customer feedback via email. But for my situation, extra time is genuinely useful.</p>
<p>I can spend more time responding to emails thoughtfully. I can do deeper analysis of my market and user feedback.</p>
<p>In short, I see it as an opportunity.</p>
<p>Before, as a &quot;technical founder,&quot; I spent all my time coding and lived heads-down, with no bandwidth to think strategically about the product long-term. Gaining time lets me rebalance.</p>
<p>I love coding. But coding was eating up brain cycles I needed for strategy.</p>
<p>That&#39;s no longer the case.</p>
<p>I can spend more time on the &quot;why&quot; instead of just the &quot;how.&quot;</p>
<h2>Time to Improve, Not Just Expand</h2>
<p>Time has always been scarce in software and startups. When I gain time, I spend it on other product work: improving user documentation, strengthening test infrastructure to prevent future problems.</p>
<p>I tackle bugs I see in the logs, or UI quirks I&#39;d noticed but pushed off indefinitely.</p>
<p>You know the feeling—that infinite Jira backlog filled with small improvement tickets. Those famous &quot;we&#39;ll do it later&quot; items that exist mostly to make us feel better, or to satisfy the support person who asked about them.</p>
<p>&quot;Look, it&#39;s on our TODO list. Yeah, it&#39;ll take 15 years to get to, but it&#39;s there…&quot;</p>
<p>That doesn&#39;t exist for me anymore. Small issues like that pile up by the dozens, and the product steadily improves.</p>
<p>Using the financial analogy of technical debt: once code costs less, you pay down the debt continuously, which reduces the interest burden.</p>
<h2>Time to Learn</h2>
<p>Since I spend less time coding, I&#39;ve had much more time to think deeply about problems. And I&#39;ve invested in education.</p>
<p>Before, time pressure forced shortcuts. Recently, I&#39;ve documented and written about <a href="https://eventuallymaking.io/p/is-platform-moderation-doomed-to-fail">content moderation on platforms</a>, dug into SSL certificate systems, explored proof-of-work captcha mechanisms, studied <a href="https://eventuallymaking.io/p/purchasing-power-parity-ppp">purchasing power parity</a>.</p>
<p>And here&#39;s the surprising part: I&#39;ve just stepped away from the keyboard.</p>
<p>Often in my typical day, I spend time away from the screen. I&#39;ve improved my broth technique for ramen. I&#39;ve done home repairs and started building furniture.</p>
<p>Paradoxically, that time helps me build better products.</p>
<p>Ever notice you solve complex problems in the shower?</p>
<p>Letting your mind wander is creative fuel.</p>
<p>It <a href="https://eventuallymaking.io/p/accepting-boredom">took me a while to accept it</a>, but giving your brain rest—letting it incubate ideas and wander while you do something else—is excellent for problem-solving.</p>
<p>Of course, I know my situation is specific. I can&#39;t imagine starting a woodworking session in the middle of an open office surrounded by developers. But for me, gaining time on code means a holistic rebalancing of my days and, paradoxically, better-quality output.</p>
<p>Because it was never just about coding—it was also about thinking long-term, which is easier when you have time for it.</p>
<p>Clearly, though, it&#39;s different in a more traditional context. So I did some research on what others are saying.</p>
<h2>Productivity and Burnout: The Real Cost</h2>
<p>One of the first insights comes from a <a href="https://hbr.org/2026/02/ai-doesnt-reduce-work-it-intensifies-it">Harvard Business Review study</a>. Increased productivity doesn&#39;t lead to reduced working hours—it leads to intensification.</p>
<p>Work becomes more intense for several reasons:</p>
<p><strong>AI removes cognitive breaks.</strong> Since AI makes it faster to start a task, you lose the natural pause that exists at the beginning of each project when you&#39;re figuring out the approach.</p>
<p><strong>AI blurs job boundaries.</strong> You feel capable of doing frontend, design, ops, backend, mobile. Your scope explodes for a single person.</p>
<p><strong>Frequent gratification drives endless continuation.</strong> If you complete 10 tickets a day and each is quick, why not one more? One quick prompt before closing the laptop?</p>
<p>But this intensification comes at a real cost: fatigue, burnout, mistakes (because tired people miss things).</p>
<p>I found <a href="https://steve-yegge.medium.com/the-ai-vampire-eda6e4f07163">an article that compares AI to a vampire</a> draining our energy.</p>
<p>The idea is simple: since AI handles all the simple, repetitive tasks that used to serve as cognitive breaks, we&#39;re left essentially doing high-level work and critical decisions.</p>
<p>But humans can&#39;t make critical decisions nonstop for 8 hours a day. It&#39;s exhausting.</p>
<p>That&#39;s why I personally either step away from my screen for part of the day or do more recreational activities at the computer: writing an article (which explains why I write more now), or learning something new. The article recommends finding a new balance.</p>
<p>I&#39;m not sure how sincere the article is, but this seems <a href="https://github.blog/ai-and-ml/generative-ai/how-developers-spend-the-time-they-save-thanks-to-ai-coding-tools/">to be GitHub's approach</a>. They used the time gain not to drastically increase output but for other kinds of work: collaboration, reflection.</p>
<h2>Doing More ≠ Doing Better</h2>
<p>There&#39;s a hard limit to how many new features users can absorb daily anyway.</p>
<p>Just because you can ship 10x more features doesn&#39;t mean it benefits users.</p>
<p>This is Tesler&#39;s Law, also known as the <a href="https://en.wikipedia.org/wiki/Law_of_conservation_of_complexity">Law of Conservation of Complexity</a>. Every system has an irreducible level of complexity. If you reduce it in one place—say, developers moving faster—it appears elsewhere: users now have to adapt to software that evolves too quickly.</p>
<p>You also risk &quot;feature fatigue,&quot; where software becomes bloated and overwhelming. Being forced to make choices is often healthy.</p>
<p>Essentially, speeding up benefits no one, and it&#39;s preferable that productivity gains show up as better-thought features or increased work on &quot;invisible&quot; quality.</p>
<h2>When Productivity Creates Boredom</h2>
<p>There&#39;s another scenario worth mentioning. Many people work at organizations where going faster changes absolutely nothing, because the company is fighting its own inertia more than any product challenge.</p>
<p>I worked at a large corporation once. I remember a project in 2003 where coding really wasn&#39;t the issue.</p>
<p>I&#39;d come from a more dynamic job. I was used to a certain pace. Here, I was given a program to write. I finished it in 2 days. I went back to my manager. He said we&#39;d discuss it again in 3 weeks. In a year, I shipped almost nothing. It was probably the worst year of my career.</p>
<p>Mornings brought people asking who wanted to attend meetings about various topics. I couldn&#39;t understand why everyone kept going.</p>
<p>But then I got it. It was to fill the day.</p>
<p>If I&#39;d spent 1 hour instead of 2 days on my work, I&#39;d just have been bored longer.</p>
<p>I knew burnout existed. But there I almost experienced burnout&#39;s opposite: complete stagnation. Eventually, I educated myself on the side in areas I cared about. I made that time count.</p>
<p>But I won&#39;t lie—I was incredibly relieved when that project ended.</p>
<p>The point: in some places, coding faster changes nothing. Coffee breaks just get longer.</p>
<h2>Freelancers: From Time to Value</h2>
<p>Now there&#39;s a population I have real questions about.</p>
<p>Let&#39;s say code costs collapse. What happens to people billing by the hour?</p>
<p>You could imagine a chunk of them won&#39;t exactly broadcast that they finished a job faster, since that means losing money.</p>
<p>Can that hold long-term, especially for a freelancer working on-site at the client, visible to everyone? In big companies, maybe. But it&#39;ll never work in an organization whose developers are also using the same tools to move faster.</p>
<p>That&#39;s where I wonder if fixed-price or outcome-based billing might become more attractive than hourly rates.</p>
<p>Usually, I advise against results-based contracts, especially for younger freelancers, because it&#39;s hard to contract properly, set boundaries, and accurately estimate work beforehand.</p>
<p>But if AI made development faster and more predictable, fixed-price work could regain appeal.</p>
<p>It wouldn&#39;t be about billing time. It would be about billing value.</p>
<p>I&#39;d have no problem charging a fixed amount for valuable work, even if it took only 1-2 days.</p>
<p>I&#39;ve worked 25 years to deliver that result in 2 days. Clients pay for your experience and your ability to use tools. Speed is irrelevant.</p>
<p>In a worst-case scenario, I might lower prices slightly, but the risk I take on also gets priced into a fixed contract.</p>
<p>That said, I&#39;m not sure this logic holds forever. Competitors as good as me might take on more clients to offset losses, driving per-contract prices down.</p>
<p><a href="https://2727coworking.com/articles/ai-impact-freelancers">I came across an article on this</a>. It concluded that expert freelancers will survive, but demand will shrink. Especially since their clients will also start coding if the cost drops low enough.</p>
<p>But one takeaway stuck with me: AI won&#39;t replace the freelancer. The freelancer using AI will replace the one who doesn&#39;t. That&#39;s probably the most important lesson.</p>
<h2>Conclusion</h2>
<p>Again, the question wasn&#39;t whether AI makes us faster. The real question I wanted to explore was: what do you do with the time you gain?</p>
<p>The answer depends on your context.</p>
<p>If you&#39;re at an organization paralyzed by inertia, moving faster changes nothing—you&#39;ll just get bored sooner. If you&#39;re product-focused with the freedom to manage your own time, it&#39;s an incredible opportunity to step back and think strategically. If you&#39;re a freelancer, maybe it&#39;s time to renegotiate.</p>
<p>But here&#39;s the critical constraint: productivity only matters if it creates value. Shipping 10x more features might actually hurt your users. Gaining time is great, but it&#39;s only valuable if you know what to do with it.</p>
<p>Bottom line: there&#39;s no one-size-fits-all answer. But you might just gain the time needed to figure out what your answer is.</p>
]]></content:encoded>
        </item>
    </channel>
</rss>