<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts on Matthew Mellor</title>
    <link>https://matthew.mellor.earth/posts/</link>
    <description>Recent content in Posts on Matthew Mellor</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <copyright>© 2026 Matthew Mellor · Built by [MakersRidge](https://makersridge.com)</copyright>
    <lastBuildDate>Wed, 01 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://matthew.mellor.earth/posts/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Self-Hosted Supabase in One Command</title>
      <link>https://matthew.mellor.earth/posts/self-hosted-supabase/</link>
      <pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate>
      
      <guid>https://matthew.mellor.earth/posts/self-hosted-supabase/</guid>
      <description>&lt;p&gt;Self-hosted Supabase is powerful. Twelve interconnected services, each with their own configuration, version pinning, and orchestration requirements. PostgreSQL with Supabase extensions, Kong as the API gateway, GoTrue for auth, PostgREST for the REST API, realtime for WebSockets, storage, image proxy, the management studio — the list goes on.&lt;/p&gt;&#xA;&lt;p&gt;Run &lt;code&gt;docker-compose up&lt;/code&gt; and you get a working stack, sure. But getting it production-ready — TLS, domain configuration, backup retention, SMTP for auth emails — that&amp;rsquo;s dozens of manual steps that are easy to get wrong once but painful to repeat.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>Why DevRail?</title>
      <link>https://matthew.mellor.earth/posts/why-devrail/</link>
      <pubDate>Fri, 13 Mar 2026 00:00:00 +0000</pubDate>
      
      <guid>https://matthew.mellor.earth/posts/why-devrail/</guid>
      <description>&lt;p&gt;Your agents don&amp;rsquo;t read your conventions. They skip your linters, ignore your formatters, and commit code that fails CI. I&amp;rsquo;ve lived this frustration — watching an AI rewrite half my codebase and then push code that fails on the simplest lint check.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Why DevRail?&lt;/strong&gt; Because every team eventually builds its own tooling stack. Linters, formatters, security scanners, test runners — installed differently on every developer&amp;rsquo;s machine, pinned to different versions in CI, and completely invisible to the AI agent that just rewrote half your codebase.&lt;/p&gt;</description>
      
    </item>
    
  </channel>
</rss>
