<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Matteo Contrini</title>
    <link>https://matteosonoio.it/posts/</link>
    <description>Recent content in Posts on Matteo Contrini</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <lastBuildDate>Mon, 27 Jul 2026 13:30:00 +0200</lastBuildDate>
    <atom:link href="https://matteosonoio.it/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Docker Swarm is abandoned</title>
      <link>https://matteosonoio.it/docker-swarm/</link>
      <pubDate>Mon, 27 Jul 2026 13:30:00 +0200</pubDate>
      <guid>https://matteosonoio.it/docker-swarm/</guid>
      <description>Docker Swarm is a simple alternative to Kubernetes for container orchestration, but I argue it&amp;rsquo;s no longer usable for real-world workloads.</description>
    </item>
    <item>
      <title>A code bug that most LLMs don&#39;t catch</title>
      <link>https://matteosonoio.it/code-bug-llms/</link>
      <pubDate>Sun, 23 Feb 2025 16:00:47 +0100</pubDate>
      <guid>https://matteosonoio.it/code-bug-llms/</guid>
      <description>A few months ago I spotted a (critical) software bug that could produce loss of data in one of my projects. Suprisingly, most LLMs are unable to detect this bug.</description>
    </item>
    <item>
      <title>Using Snowflakes for database IDs</title>
      <link>https://matteosonoio.it/snowflake/</link>
      <pubDate>Tue, 24 Dec 2024 16:30:10 +0100</pubDate>
      <guid>https://matteosonoio.it/snowflake/</guid>
      <description>A practical example of using Snowflake for database keys without a centralized service, with .NET and Entity Framework Core.</description>
    </item>
    <item>
      <title>Comparison of static website hosting services</title>
      <link>https://matteosonoio.it/static-website-hosting/</link>
      <pubDate>Thu, 29 Aug 2024 14:27:59 +0200</pubDate>
      <guid>https://matteosonoio.it/static-website-hosting/</guid>
      <description>Here&amp;rsquo;s a comparison of Netlify, Vercel, Cloudflare Pages, Render, AWS Amplify, Azure Static Web Apps and their main features.</description>
    </item>
    <item>
      <title>10 reasons why Unpoly may be a better choice than htmx</title>
      <link>https://matteosonoio.it/unpoly/</link>
      <pubDate>Fri, 25 Aug 2023 11:30:00 +0200</pubDate>
      <guid>https://matteosonoio.it/unpoly/</guid>
      <description>htmx and Unpoly are JavaScript libraries that add interactivity to multi-page applications (MPA). Here&amp;rsquo;s why Unpoly might be better choice.</description>
    </item>
    <item>
      <title>On Resend.com</title>
      <link>https://matteosonoio.it/resend/</link>
      <pubDate>Mon, 03 Jul 2023 10:26:59 +0200</pubDate>
      <guid>https://matteosonoio.it/resend/</guid>
      <description>Resend is a new email API for developers. Unfortunately, they&amp;rsquo;re just an Amazon SES wrapper.</description>
    </item>
    <item>
      <title>Using Vite to bundle JS/CSS in ASP.NET Core MVC</title>
      <link>https://matteosonoio.it/aspnet-core-vite/</link>
      <pubDate>Sun, 21 May 2023 22:30:00 +0200</pubDate>
      <guid>https://matteosonoio.it/aspnet-core-vite/</guid>
      <description>Vite is a popular build tool for frontends. Here&amp;rsquo;s how to integrate it in an ASP.NET Core MVC multi-page application.</description>
    </item>
    <item>
      <title>My macOS shell setup</title>
      <link>https://matteosonoio.it/zsh/</link>
      <pubDate>Fri, 28 Apr 2023 17:30:00 +0200</pubDate>
      <guid>https://matteosonoio.it/zsh/</guid>
      <description>Here&amp;rsquo;s my configuration of the terminal and shell I use on macOS, including iTerm2, zsh, powerlevel10k, zaw, etc.</description>
    </item>
    <item>
      <title>Surreal adventures with Cloudflare&#39;s (paid) support</title>
      <link>https://matteosonoio.it/cloudflare-support/</link>
      <pubDate>Sat, 01 Apr 2023 15:30:00 +0200</pubDate>
      <guid>https://matteosonoio.it/cloudflare-support/</guid>
      <description>In my experience, Cloudflare&amp;rsquo;s paid support is unbelievably bad, they seem to miss basic understanding of how their products and features work.</description>
    </item>
    <item>
      <title>Elasticsearch isn&#39;t as scary as it seems</title>
      <link>https://matteosonoio.it/elasticsearch-not-scary-as-it-seems/</link>
      <pubDate>Sun, 26 Feb 2023 19:00:00 +0100</pubDate>
      <guid>https://matteosonoio.it/elasticsearch-not-scary-as-it-seems/</guid>
      <description>After using Elasticsearch for a while, I can say that it&amp;rsquo;s not scary as people think. Here are some thoughts.</description>
    </item>
    <item>
      <title>Working with custom authentication schemes in ASP.NET Core 8.0</title>
      <link>https://matteosonoio.it/aspnet-core-authentication-schemes/</link>
      <pubDate>Thu, 25 Aug 2022 22:00:00 +0200</pubDate>
      <guid>https://matteosonoio.it/aspnet-core-authentication-schemes/</guid>
      <description>How to define custom authentication schemes in ASP.NET Core 8.0, and why they&amp;rsquo;re not enough to actually enforce authentication for your web application.</description>
    </item>
    <item>
      <title>A list of free self-hosted Google Analytics alternatives</title>
      <link>https://matteosonoio.it/google-analytics-alternatives/</link>
      <pubDate>Sat, 20 Aug 2022 21:00:00 +0200</pubDate>
      <guid>https://matteosonoio.it/google-analytics-alternatives/</guid>
      <description>My notes on a few Google Analytics alternatives that can be self-hosted, are open source and free.</description>
    </item>
    <item>
      <title>A minimal Node.js TypeScript setup</title>
      <link>https://matteosonoio.it/minimal-nodejs-typescript-setup/</link>
      <pubDate>Fri, 05 Aug 2022 10:00:00 +0200</pubDate>
      <guid>https://matteosonoio.it/minimal-nodejs-typescript-setup/</guid>
      <description>Confused about how to setup TypeScript with a Node.js backend application? Here&amp;rsquo;s the most minimal setup to make it work.</description>
    </item>
  </channel>
</rss>
