Sources

1577 sources collected

# What I don't like about Supabase ... There's so much to love about Supabase - it's very easy to get started, and it has most of the things you need from auth to storing vectors. We hear about all these great things all the time. But just like any other platform it has its own gotchas and nuances that could be annoying to some. We barely hear about these and I thought let me be that bad guy! ## Migrations Migrations in Supabase are great until they are not. It works well for adding new tables, columns, or modifications. But, when you start adding DB functions, it becomes a pain. Unlike table changes, functions are something you will iterate over many times. For each iteration, you will end up creating a new migration file and you will end up piling up a ton of them! You could squash your migrations later, but creating a new migration file for every little change is a bad developer experience. When I discussed this with my colleague Pruthvi, the hack he suggested was to use the Supabase interface to iterate over your function and create migration when ready! Another nuance I encountered was, that my DB migration files were part of the frontend repo. Traditionally, you want to run db migrations along with backend deployment. This design choice is probably because most Supabase projects use only Supabase as their backend, thanks to their edge functions. Hence it probably makes sense in most cases to run DB migrations when you are running a frontend deployment pipeline, as frontend code is the only direct dependency for migrations. But if your application is complex and needs more compute power than what edge functions can offer, you end up having a backend hosted on AWS or something similar. In my case, I had my backend powered by AWS Lambda functions. In this case, you will end up with a dilemma of where to run migrations! ## Unknown Limits After a few weeks of development of my app, my auth randomly stopped working! After digging, I found out I had hit a limit on the number of emails that could be sent per hour, which was 3! Because of this Auth email confirmations were not going through. I was completely unaware of this limit until it stopped working. It was buried under some setting which I hadn't gone to at all until this point. It would have been better to have this as a "note" or something in the Auth documentation. It broke the flow of my app development, instead of testing my features, I was now thrown into figuring out how to setup custom SMTP unexpectedly. … ## Compute Having only edge functions as compute is very limiting. Most apps need compute more powerful than this. I often find myself pairing Supabase with AWS Serverless stack to compensate for the lack of compute on Supabase. If I had an option to run full-runtime functions (like AWS Lambda) on Supabase, most of my use cases could be contained within Supabase. ## Hidden Costs Point in Time Recovery (PITR) is a very important feature for me in a production database. I have overcome two catastrophic incidents during early years of being CTO thanks to this feature. It allows you to recover database to a “point in time”, meaning if something bad happend at 5:15PM you can restore the database to the point as is at 5:14. This feature in Supabase costs whopping $100 a month, irrespective of size of your database! I’m ok to pay for this but single price irrespective of size seems unfair! Would have liked it if it was tiered or was based on how far can you go back! For example, NeonDB has PITR in their free plan but allows you to go back only 24hours, which I can live with!

9/13/2024Updated 4/5/2026

Only friction points: advanced Postgres features like triggers and custom aggregations require raw SQL knowledge. The Realtime setup needs manual channel subscriptions which isn’t immediately obvious. And the Storage API permissions model took us 2 attempts to get right for public/private file handling. But honestly, **these are minor compared to the overall smoothness**. … What’s missing: no built-in analytics dashboard (you need external tools), no native queue system (requires custom implementation with pg_cron or external service), and advanced caching requires manual Redis setup. The backup system on Team plan retains only 14 days – we’d prefer configurable retention. And while the platform handles millions of requests, true high-scale scenarios (10M+ users) require architecture planning. … What’s missing: no live chat even on Enterprise plans, which feels outdated in 2026. No phone support at any tier. Complex Postgres issues sometimes get bounced to “this is a database question, not a Supabase question”, which technically makes sense but can leave you stuck. The knowledge base could use more troubleshooting guides for edge cases. … ### ➕ Pros / ➖ Cons ✅ **Exceptional documentation** with multi-framework examples and videos ✅ **Active Discord community** with team members responding regularly ✅ **GitHub issues triaged fast** with transparent feature roadmap ✅ **Weekly platform updates** show strong commitment to stability ❌ **No live chat** even on Enterprise plans feels outdated ❌ **Email response times** (24-48h) slower than competitors

11/20/2025Updated 3/31/2026

### Firebase’s problems at scale 1. **Lock-in is real** - Firebase isn’t just a tool. It’s an ecosystem. - Your backend logic lives in Cloud Functions, your data in Firestore or Realtime DB, your auth rules in a custom DSL. - Migrating *anything* becomes painful. **2. Querying Firestore gets weird fast** - No joins. Limited where clauses. You start doing gymnastics with data duplication and client-side merging. - Performance suffers — and so does your sanity. **3. Debugging is painful** - Ever tried debugging a Firebase rule mismatch at 2 a.m.? Good luck. - Logs are spread across tools. Testing access control becomes trial-and-error. ### Supabase’s problems at scale 1. **You own the ops (even if they hide it)** - Sure, Supabase is “hosted,” but you’re closer to the DB. - Bad queries = bad performance. - You’ll need to think like a backend dev eventually (indexes, auth layers, rate limits). **2. DevEx gaps still exist** - The dashboard UI and auth workflows aren’t as frictionless as Firebase. - Docs are good, but edge cases can take digging. - Community is smaller (but growing fast).

8/28/2025Updated 4/6/2026

Picture this: you're three weeks into building your startup's MVP when you realize Firebase's pricing could bankrupt you if your app actually takes off. The vendor lock-in starts feeling like a noose, and you're desperately searching for an alternative that won't force you to rewrite everything from scratch. ... … ### The Honest Limitations **Ecosystem Immaturity Hurts** Finding solutions to edge cases often means digging through GitHub issues instead of Stack Overflow answers. Third-party integrations are limited, and community resources pale compared to Firebase's extensive documentation and tutorials. **Offline Support is Practically Non-Existent** If your app needs robust offline functionality, Supabase will disappoint. There's no native offline sync, no conflict resolution, and no local caching mechanisms. You'll need to build this yourself or look elsewhere. **Platform Stability Concerns** I've experienced unexpected downtime and breaking changes in minor updates. The platform feels less battle-tested than mature alternatives, which can be nerve-wracking for production applications. **Limited Serverless Functions** Edge Functions work but lack the sophistication and ecosystem of AWS Lambda or Vercel Functions. Complex backend logic often requires external services. ### Who Should (and Shouldn't) Use Supabase **Perfect for:** Small to medium teams building web-first applications who value SQL databases and open-source flexibility. ... **Avoid if:** You need robust offline support, have complex serverless requirements, or require enterprise-grade stability guarantees. Large teams might struggle with the limited ecosystem. **Deal-breakers:** Mobile-first apps requiring offline sync, applications with complex business logic requiring extensive serverless functions, or projects demanding 99.99% uptime SLAs. **Team size considerations:** Solo developers and small teams (2-5 people) benefit most from Supabase's simplicity. Larger teams might find the ecosystem limitations frustrating and prefer more mature platforms despite higher costs. … ### Hidden Costs and Limitations Watch out for bandwidth overages beyond included limits—additional bandwidth costs $0.09/GB. The free tier's 7-day project pause can disrupt development workflows. Database compute scaling isn't automatic; you'll need manual intervention for traffic spikes.

6/28/2025Updated 4/3/2026

I actually migrated an existing Firebase project to Supabase mid-development. I've dealt with their support team at 2 AM when things broke. I've hit their rate limits, wrestled with their CLI, and spent hours debugging RLS policies that seemed straightforward in theory. This isn't a surface-level exploration based on documentation—it's a battle-tested assessment from someone who's actually shipped production code using this platform. … ### The Honest Limitations **Ecosystem Immaturity Hurts** Finding solutions to edge cases often means digging through GitHub issues instead of Stack Overflow answers. Third-party integrations are limited, and community resources pale compared to Firebase's extensive documentation and tutorials. **Offline Support is Practically Non-Existent** If your app needs robust offline functionality, Supabase will disappoint. There's no native offline sync, no conflict resolution, and no local caching mechanisms. You'll need to build this yourself or look elsewhere. **Platform Stability Concerns** I've experienced unexpected downtime and breaking changes in minor updates. The platform feels less battle-tested than mature alternatives, which can be nerve-wracking for production applications. **Limited Serverless Functions** Edge Functions work but lack the sophistication and ecosystem of AWS Lambda or Vercel Functions. Complex backend logic often requires external services. ### Who Should (and Shouldn't) Use Supabase **Perfect for:** Small to medium teams building web-first applications who value SQL databases and open-source flexibility. Ideal for MVPs, internal tools, and projects where real-time features are crucial. **Avoid if:** You need robust offline support, have complex serverless requirements, or require enterprise-grade stability guarantees. Large teams might struggle with the limited ecosystem. **Deal-breakers:** Mobile-first apps requiring offline sync, applications with complex business logic requiring extensive serverless functions, or projects demanding 99.99% uptime SLAs. **Team size considerations:** Solo developers and small teams (2-5 people) benefit most from Supabase's simplicity. Larger teams might find the ecosystem limitations frustrating and prefer more mature platforms despite higher costs.

6/28/2025Updated 3/9/2026

Users find the **setup ease** of Supabase remarkable, enabling quick and hassle-free database configuration for projects. (5 mentions) Users praise the **user-friendly interface** of Supabase, easing the development process and enhancing the overall experience. (5 mentions) Users find Supabase to have **beginner unfriendliness** due to its complexity and limited community support for novices. (2 mentions) Users find Supabase **expensive** as premium features are limited, making it less accessible for newcomers and exploration. (2 mentions) Users find Supabase to have **high complexity**, especially for novice coders needing more user-friendly tools and documentation. (2 mentions) Users note the **insufficient guidance** from Supabase, making it challenging for beginners to utilize the platform effectively. (2 mentions) Users experience **learning difficulty** with Supabase due to its complexity and the need for better documentation. (2 mentions) … ### 5 Cons or Disadvantages of Supabase ##### 1. Beginner Unfriendliness Users find Supabase to have **beginner unfriendliness** due to its complexity and limited community support for novices. See Related User Reviews DW Dee W. ... "Great Data Storage, But Support Needs Improvement for Beginners" What do you dislike about Supabase? The main issue is that the system and its support are not very reliable for novice coders. AS Abdullah S. Small-Business (50 or fewer emp.) ... Some aspects feel complex, which might be due to the intricate nature of the projec ##### 2. Expensive Users find Supabase **expensive** as premium features are limited, making it less accessible for newcomers and exploration. See Related User Reviews VP Vallabh P. Enterprise (> 1000 emp.) ... ##### 3. High Complexity Users find Supabase to have **high complexity**, especially for novice coders needing more user-friendly tools and documentation. See Related User Reviews DW Dee W. Small-Business (50 or fewer emp.) 5.0/5 "Great Data Storage, But Support Needs Improvement for Beginners" What do you dislike about Supabase? The main issue is that the system and its support are not very reliable for novice coders. AS Abdullah S. Small-Business (50 or fewer emp.) 4.5/5 ... ##### 4. Insufficient Guidance Users note the **insufficient guidance** from Supabase, making it challenging for beginners to utilize the platform effectively. See Related User Reviews DW Dee W. Small-Business (50 or fewer emp.) 5.0/5 ... The main issue is that the system and its support are not very reliable for novice coders. AS Abdullah S. ... ##### 5. Learning Difficulty Users experience **learning difficulty** with Supabase due to its complexity and the need for better documentation. See Related User Reviews DW Dee W. Small-Business (50 or fewer emp.) 5.0/5 ... The main issue is that the system and its support are not very reliable for novice coders. AS ... Some aspects feel complex, which might be due to the intricate nature of the projects themselves. Additionally, since Supabase is relatively new, the community is still small, which I'd like to see grow faster. This growth should be accompanied by extensive documentation to make usage straightforward for everyone. Review collected by and hosted on G2.com.

3/26/2026Updated 4/2/2026

Discover the challenges of using Superbase for web development, from writing complex Postgres SQL to the struggle of managing TypeScript and Postgres syntax. Explore alternative solutions to improve team workflow and code readability. ... One of the primary challenges with Supabase arises when integrating it deeply into TypeScript projects. My initial attraction to Supabase was its seamless client-library integration for straightforward operations. For example, inserting a record using the Supabase client in TypeScript is quite intuitive: ``` const { data, error } = await supabase .from('table') .insert([{ column: 'value' }]); ``` This snippet demonstrates a simple insert operation, which most developers can easily follow. However, complications arise when the requirements go beyond basic CRUD operations. ### The Complexity of Advanced Operations When more complex database interactions are required, such as inserting records into multiple tables within a single function, the limitations become evident. Executing multiple insert operations sequentially can lead to performance bottlenecks due to the necessity of making multiple round trips to the server. To circumvent this, developers often resort to creating RPC (Remote Procedure Call) functions. This necessitates writing Postgres functions, which introduces a new layer of complexity. ### Transitioning Between TypeScript and SQL The need to write SQL within Supabase's environment, often switching from a TypeScript editor to Supabase Studio, disrupts the development workflow. The following example illustrates how an RPC function must be created in SQL, not TypeScript: ``` CREATE OR REPLACE FUNCTION insert_into_multiple_tables() RETURNS void LANGUAGE plpgsql AS $$ BEGIN INSERT INTO table1 (column) VALUES ('value1'); INSERT INTO table2 (column) VALUES ('value2'); END; $$; ``` This function resides outside the main codebase, making it harder to trace the full application logic, especially when working within a team. The transition between TypeScript and SQL creates a fragmented development process, complicating debugging and maintenance. ### Team Workflow and Readability Issues Working within a team exacerbates these issues. Team members are not only required to be proficient in TypeScript but also in SQL, particularly the specialized SQL dialect used by Postgres. This dual knowledge requirement can be a significant obstacle for teams whose primary expertise lies in TypeScript. The implementation details of database interactions become obscured, residing in the depths of SQL functions rather than in the more familiar TypeScript codebase. This lack of transparency can lead to confusion and inefficiencies. ### Effective Use of Policies Another pain point is managing row-level security policies. Understanding whether an insert operation complies with these policies often requires diving into the Supabase dashboard, which can distance developers from the core TypeScript code. Managing these policies via the dashboard is not as intuitive as having them within the main codebase, thus complicating access control management. ### The Search for Alternatives Given these challenges, some developers resort to using two client libraries, one for basic operations and another for more complex transaction management. Libraries like Drizzle or Kysely offer alternatives, albeit at the cost of increasing the project’s complexity by including multiple libraries. ### Reflections on Supabase Despite these challenges, I initially enjoyed the learning curve associated with writing raw SQL queries and delving into Postgres’ capabilities. This experience has been enriching; however, it is not sustainable for a team environment. The tool's steep learning curve for new team members and the fragmented workflow have overshadowed the benefits. … ### Conclusion While Supabase offers a robust platform with significant capabilities, its current implementation poses challenges that cannot be overlooked, particularly in team settings. The necessity to jump between TypeScript and SQL environments, along with the additional management of security policies and RPC functions, can disrupt the development workflow and obscure the codebase's transparency. These issues have led me to reconsider my use of Supabase, seeking alternative solutions that better align with my development philosophy and team dynamics.

11/7/2024Updated 7/19/2025

{ts:112} they're moving in the right direction but initially it was sort of pitched as you have this client side SDK and you {ts:119} can communicate with your database directly on the front end and then the way that's secured is with row level {ts:124} security which is basically just a bunch of policies that define whether or not a user can successfully make a SQL query … {ts:150} going through and saying okay you can only read your own stuff we secure that one table that way and then we can go {ts:156} ahead and just read it from our front end we don't have to worry about spinning up a server on the back end it {ts:161} just works and the problem with this is that real applications and real databases are never that simple the {ts:167} project that I tried to use this architecture on was block and right now I think we have something like 20 tables {ts:174} and that's tame compared to most real applications all of those tables have tons of stuff on them they are a lot of {ts:180} very complicated relationships in there because we need to get all of the events working we need to link those to people … {ts:205} when you want to deal with stuff like relations and owners and all these different things it just gets so {ts:210} unwieldy and it's so easy to just let one little thing slip through and then your entire app falls apart it just {ts:216} isn't feasible and if you want even more proof that these direct access databases of service things are not a good idea go

1/30/2025Updated 3/14/2026

### Cons of Using Stripe **Limited Availability**: As of 2025, Stripe does not operate in every country. For businesses located in regions outside Stripe’s coverage, finding a suitable alternative may be necessary. **Complexity for Non-Technical Users**: While Stripe excels for developers, its advanced features can be overwhelming for non-technical users. Some simpler, out-of-the-box solutions might be better suited for those who lack coding expertise. **Account Holds and Payment Delays**: There have been instances where accounts are held or frozen due to compliance investigations or perceived risks, which could interrupt cash flow for businesses. **Dispute Resolution**: Chargebacks can be a hassle. While Stripe provides tools for managing disputes, navigating the process can be cumbersome for businesses not accustomed to dealing with them.

1/9/2025Updated 10/25/2025

But now, they can get a first pass from a friendly bot, and it’s all within their existing Slack workflow, so there’s no need for them to learn a new tool or switch contexts. So in this example, the billing profile API review has missed quite a few required fields. It isn’t following the required format for object strings. So now, newer API designers joining Stripe can take this information and ensure their API review passes a first round of automated reviews before sending it to a human.

Updated 3/4/2026

**Why Businesses Start Rethinking Stripe** **1. Stripe is Becoming Too Expensive** When you first started with Stripe, you likely appreciated its transparent pricing and the absence of upfront software or hardware costs. However, as your sales volume increases, those flat per-transaction fees can begin to eat into your margins. For businesses processing large volumes or higher-value transactions, Stripe’s pricing structure may no longer be sustainable—especially when compared with providers offering custom rates or bundled services. **2. You Can’t Negotiate Better Rates with Stripe** Some businesses try to reduce Stripe costs by negotiating fees. While Stripe does offer volume discounts to select merchants, many report limited flexibility. In some cases, you may be asked to take on additional risk (such as increased liability for chargebacks) in exchange for reduced rates—a trade-off that may not be viable for smaller teams. **3. Your Payment Volumes Are Growing** Increased sales should be cause for celebration—but they can also introduce complexity. Businesses often find that Stripe’s flat-rate pricing and add-on costs make scaling more expensive than anticipated. As you grow, you may also encounter more advanced needs, such as automated tax handling, more granular revenue reporting, or better currency conversion—all of which can be difficult to manage with Stripe alone. **4. You Need More Than Stripe Billing Offers** Stripe offers basic tools for subscriptions and recurring billing, but scaling these features often requires heavy developer involvement. If you're expanding internationally or adding more complex billing models (like usage-based or tiered pricing), you may find Stripe’s functionality restrictive. Additionally, handling multiple currencies, foreign payment methods and localised checkouts may require custom development work—something smaller businesses may struggle to maintain. **5. Your Developers Are Spending Too Much Time on Payments** Stripe’s developer-first approach is great for building custom solutions, but that can become a problem when your internal teams are bogged down maintaining integrations, handling bugs, and managing tax compliance instead of focusing on core product improvements. If your engineers are constantly pulled away from product development to manage backend monetisation or Stripe-related issues, that’s a red flag. A more complete solution could save time and improve team productivity. … If you’re in a sector that Stripe now considers high-risk, it’s crucial to move to a provider with more accommodating policies—before it affects your ability to process payments. **8. You're Ready to Reduce Operational Costs** Stripe's plug-and-play model can seem cost-effective at first. However, as you add tools for analytics, billing, tax compliance, fraud prevention and localisation, costs can quickly spiral. Switching to a provider that offers these services as part of a bundled or flat-rate package could reduce your overall spend—especially when you factor in the cost of internal development and maintenance. **9. Limited Customer Support and Account Management** Stripe’s support model is largely self-service or email/chat-based. While that works for developers or smaller teams, growing businesses often need more hands-on support—especially during scaling, product launches, or when troubleshooting complex issues like failed payments or account holds. … - New businesses - High-ticket transactions - Industries Stripe flags as high-risk If your cash flow is crucial (and whose isn’t?), being subject to automatic flagging and frozen payouts can be a major operational risk. **11. Inflexibility Around Local Payment Preferences** Stripe is well-optimised for card payments, Apple Pay, and Google Pay, but in certain regions—especially in Europe, Asia and South America—local payment methods dominate: … **14. No Native Multi-Merchant or Marketplace Support** If you’re operating a multi-vendor marketplace, platform, or on-demand service, Stripe Connect is one option—but it often requires significant developer time to implement and maintain. You may find Stripe limiting or overly complex compared to solutions built specifically for marketplaces. **What to Do When Stripe Is No Longer a Fit** … To ensure your payment infrastructure aligns with your business strategy, here’s a quick checklist: ||| |--|--| |High fees eating into profit|Custom pricing or flat-rate models| |Struggling with tax/VAT compliance|All-in-one or MoR style platforms| |Complex subscriptions or B2B billing|Platforms with advanced billing tools| |Limited payment methods for international markets|Providers with localised payment support| |Developer overload maintaining Stripe|All-in-one platforms with less integration overhead| |No clear customer support pathway|Providers with dedicated account managers| It’s easy to put off switching payment providers—especially when your existing setup "just works." But the signs of outgrowing Stripe can be subtle at first: increasing costs, mounting development overhead, and missed opportunities for international growth.

9/1/2025Updated 10/5/2025

I'm very unhappy with their support, which is automated by bots and I've gone around in circles with such a bot. Unfortunately their support plans are between a rock and a hard place. It's either[1]: … Then this year we had to go through all that again to migrate from the Charges/Sources model to the PaymentIntent model. This was a pain as the popular payment method in our own country was still very much in beta for the PaymentIntent flow. Documentation was all over the place and customer service often did not know answers to implementation questions (though I must say, they always followed up eventually with some good pointers). … It's really non-intuitive because it means you have to set webhook endpoints using Stripe's API because only then the API version is configurable, but it also makes deploying Stripe API changes kind of complicated because you need to create multiple webhook endpoints in parallel to not throw exceptions due to your code expecting webhooks with different properties based on API differences. … Additionally, when using subscriptions with Connect, you have to specify the application fee as a percentage, which is painful for us because we want to charge a flat rate, so we have to fudge it with some math using hardcoded values to properly take into account coupons and Stripe's fees and we end up having to round to the nearest penny. It's just an unnecessarily messy headache. One-time payments are pretty easy with Stripe, the rest seems bolted on. switch11 on Dec 19, 2020 1) Their customer service has been good. However, I've never had to use it for anything serious 2) Their API is awesome 3) Their level of complexity is slowly increasing. This is something very dangerous for them and they need to look into it. Their biggest advantage is/was - super simple to set up everything 4) Like many others, not happy that costs are slowly increasing. 5) Perhaps I'm the only person who falls into the camp that Stripe doing things like Atlas and Stripe Capital is somewhat unnecessary and takes away from their focus on Payments 6) Don't really understand why they are doing the whole Platform of Platforms thing i.e. Stripe customers can now offer stuff like Bank Accounts to their customers Seems like adding needless risks and complexity 7) Anyways, I miss having Stripe be really simple and really focused on one thing. Hope they can at least be like Apple and Microsoft where they keep laser sharp focus on their money makers/core competencies and have dedicated teams and the best people on it and they don't shift over their best people to pie in the sky stuff like Platform of Platforms

12/17/2020Updated 9/18/2024