<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: tsushanth</title>
    <description>The latest articles on DEV Community by tsushanth (@tsushanth).</description>
    <link>https://dev.to/tsushanth</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4017913%2F76af6e8f-98fc-4bc3-aef6-cef462078ba1.png</url>
      <title>DEV Community: tsushanth</title>
      <link>https://dev.to/tsushanth</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tsushanth"/>
    <language>en</language>
    <item>
      <title>Why your Supabase bill is actually $110/mo — and what to do about it</title>
      <dc:creator>tsushanth</dc:creator>
      <pubDate>Mon, 06 Jul 2026 14:04:27 +0000</pubDate>
      <link>https://dev.to/tsushanth/why-your-supabase-bill-is-actually-110mo-and-what-to-do-about-it-3m22</link>
      <guid>https://dev.to/tsushanth/why-your-supabase-bill-is-actually-110mo-and-what-to-do-about-it-3m22</guid>
      <description>&lt;p&gt;Supabase advertises a $25/mo Pro plan. That number is real. It is also misleading.&lt;/p&gt;

&lt;p&gt;Here is what a production-ready Supabase setup actually costs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pro plan: $25/mo&lt;/li&gt;
&lt;li&gt;Compute upgrade (Micro is too weak for real traffic; Small at minimum, often Medium): $15–$60/mo&lt;/li&gt;
&lt;li&gt;Egress: $0.09/GB after 250 GB included&lt;/li&gt;
&lt;li&gt;Auth MAUs: free up to 100k, then $0.00325 per user — at 500k users that is $1,300/mo just for authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Realistic baseline for a production app with modest traffic: $110–120/mo before any user growth.&lt;/p&gt;

&lt;p&gt;I spent a week going through Supabase GitHub issues, HN threads, and Trustpilot reviews to understand what paying customers actually complain about. Here is what I found.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Connection limits hit in production, not dev
&lt;/h2&gt;

&lt;p&gt;Every Supabase compute tier caps Postgres connections. Small = ~60 total. Serverless runtimes (Vercel, Cloudflare Workers) spawn a new connection per request. You will hit this wall. The fix is upgrading compute — another pricing jump.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. RLS has a well-known foot-gun
&lt;/h2&gt;

&lt;p&gt;A security scan found over 10% of analyzed Supabase apps had tables fully readable via the public anon key. The root cause: RLS is opt-in with no safety net, and Supabase's SQL editor runs as a Postgres superuser, silently bypassing your policies. Bugs that work in dev fail silently in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Support on the $25 plan is basically Discord
&lt;/h2&gt;

&lt;p&gt;Pro plan users have no SLA. The $599/mo Team plan is the first tier with a guaranteed response time.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. The auth MAU wall
&lt;/h2&gt;

&lt;p&gt;The most common reason teams leave Supabase: the auth pricing. At $0.00325 per MAU above 100k, a 500k-user app pays $1,300/mo just for authentication. The fix everyone reaches for: replace Supabase Auth with Clerk or Better Auth, keep the Postgres.&lt;/p&gt;

&lt;p&gt;Which raises a question — if you're bringing your own auth anyway, why pay for the full Supabase bundle?&lt;/p&gt;




&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;I built Basely — just the Postgres part, done right.&lt;/p&gt;

&lt;p&gt;Schema-per-tenant on a shared cluster. Each project gets an isolated Postgres schema and a scoped role. No anon key. No shared superuser. No RLS foot-guns. Provisioning takes under a second.&lt;/p&gt;

&lt;p&gt;Pricing: $15/mo flat for 10 projects. No egress fees. No MAU meter. No compute tier jumps.&lt;/p&gt;

&lt;p&gt;What I focused on because of the research above:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Daily backups included&lt;/strong&gt; — pg_dump per project, gzipped, downloadable from the dashboard. Not theater. Just a working backup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connection limits visible in the dashboard&lt;/strong&gt; — color-coded bar per project. No surprises.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;basely migrate supabase&lt;/code&gt;&lt;/strong&gt; — one command to dump your Supabase schema and restore it into a Basely project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP-native&lt;/strong&gt; — Claude and Cursor can create projects, run migrations, and generate TypeScript types with no human steps.&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
bash
npx @basely-cli/cli migrate supabase \
  --from "postgres://postgres:[password]@db.[ref].supabase.co:5432/postgres"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>postgres</category>
      <category>supabase</category>
      <category>webdev</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
