24
41 Comments

⚡ Why I chose Supabase as BaaS for my projects

Hello! My name is Egor, and I'm an indie developer creating useful applications that utilize AI. So far, I’ve released 5 apps:

  1. StepAhead (iOS) — helps you beat procrastination by breaking down your tasks into small, manageable steps
  2. Prompt Forge (iOS) — teaches you how to code with AI
  3. Space Academy Quiz (iOS/Android) — interesting facts about space in a quiz format
  4. Feedback Loop: Interview Prep (iOS) — to prepare for job interviews (AI product management)
  5. Giggle Ohms — Resisting Boredom (iOS/Android) — AI-generated jokes for hardware engineers

You can check them out in the App Store, and I would greatly appreciate your feedback.

Today, I want to share my experience with Supabase — one of the most promising platforms for developing serverless applications that I've had the pleasure of using.

Supabase

Choosing the right backend platform can significantly impact the success of a project. Supabase, positioned as an alternative to Firebase, offers powerful tools for developers who want to focus on the frontend of their applications while leaving backend complexities to the platform. This makes Supabase attractive for indie developers and startups looking to quickly bring their products to market.

BaaS means that when developing a fullstack app, I only work on the client-side, and everything else is provided by Supabase through software development kits (SDKs) and application programming interfaces (APIs). "Everything else" includes an authentication service (including the use of third-party providers), a database (PostgreSQL), file storage, real-time data change reactions, and the server that manages all these components.

imgur.com

Key Advantages of Supabase

One of the key advantages of Supabase is Zero Configuration. Imagine not needing to set up a server, configure NGINX, manage firewalls, or deploy Docker. With Supabase, you simply register an account and are ready to go. No complicated setup, everything happens automatically. This is ideal for developers who want to start creating their applications quickly.
When you work with a traditional server, you have to set up many components: server, firewalls, Docker containers, SSH connections, and more. With Supabase, all these tasks are reduced to a single click. This significantly reduces the time and effort needed to launch a project.

Another advantage is the built-in support for PostgreSQL with a user-friendly administrative panel. In the Supabase dashboard, I can manage the database, create tables, configure migrations, and even make automatic backups. All this is available through an intuitive user interface. PostgreSQL is one of the most powerful and flexible database management systems, and its integration into Supabase makes data handling even more effective.

Additionally, Supabase offers a simple and reliable authorization mechanism. The platform supports all major authorization methods, such as email and password, OAuth providers (Google, Apple, etc.), and the ability to reset passwords via email. This means that authorization works on all platforms — from mobile to web. All you need to do is enable authorization in the settings, and it will work "out of the box."

I particularly like the Postgres Realtime feature. It allows you to subscribe to database changes and receive updates in real time. For instance, you can subscribe to changes in a table and get notifications whenever data is modified. This opens up vast possibilities for creating interactive and dynamic applications. You don't need to implement complex logic with web sockets or other technologies; everything works "out of the box."

Another powerful feature of Supabase is serverless functions, which run on Deno. Deno is a modern runtime for JavaScript and TypeScript that ensures high security and ease of use. Thanks to this, I can quickly develop and deploy server functions that run in the cloud. This allows for the creation of powerful server-side logic without the need to manage infrastructure.

Supabase CLI

Supabase provides a convenient command-line interface (CLI) that allows for quick deployment and management of projects. Using the command line, I can perform all necessary actions, from creating new projects to deploying them. For example, simply executing supabase deploy deploys changes to the project. This significantly speeds up the development process and eliminates the need for complex pipelines and scripts.

Limitations of Supabase

Of course, Supabase has its limitations. One such limitation is the lack of support for custom domains. This means that your project will be accessible at a domain like yourproject.supabase.com, which may be a drawback for some projects that require the use of their own domain.

Another issue I encountered is the automatic shutdown of the backend when there is no activity. For example, my project faced a situation where there were no database queries for a week, and Supabase automatically stopped the backend. To reactivate the project, I had to go to the administrative panel and manually restart it.

Comparison with Cloudflare

For comparison, I also use Cloudflare for some projects. Cloudflare has its advantages, such as support for custom domains and powerful serverless functions. However, Cloudflare does not have as convenient an interface for managing databases as Supabase. Cloudflare uses SQLite, which may be less preferable compared to PostgreSQL for large and complex projects.

Both Supabase and Cloudflare are actively evolving and integrating new technologies, including artificial intelligence. This opens up new opportunities for developers creating innovative solutions. For instance, Supabase recently announced new services for working with AI, which allows for even greater functionality of the platform.

Ultimately, Supabase is a powerful tool for any developer aiming for efficiency and speed in launching their projects. With Zero Configuration, PostgreSQL support, convenient authorization, and real-time database updates, Supabase becomes an indispensable helper.

on May 29, 2024
  1. 3

    Thanks for sharing your experience!

  2. 3

    I'm trying to decide between Supabase and Firebase. Could you share why you choose one over the other

    1. 1

      Both are great. I think it depends on what you need to do, most notably you should look for DB data structure. Firestore could be a nightmare for tabular data while great for things like chats and so on. (But they recently released a new Postgres feature...)

    2. 1

      If your app doesn't need much querying, you can pick firebase. Else, it will be a nightmare. I initially thought there won't be any querying in my project earlier but as the project grows, I was screwed left and right for choosing firestore :|

      1. 1

        What issues have you had with running queries? I have been using Firebase and Firestore for a while and haven't had any issues. Just curious if there is anything I need to be watching out for.

        1. 2

          Need to hack a lot for querying. First and foremost I was hit by the indices I need to make. Need to create lots of combinations to index them before querying.
          As the project proceeded, I had to use more query params and for each query param added, I need to construct the indices for all possible combinations. Also lack of normal query operators was a big problem that time.

    3. 1

      I have been using Firebase for a couple of years, and I absolutely love it. Supabase just doesn't seem to have as much support and documentation and resources as Firebase does yet. That's huge for me when picking technologies for my stack. How easy is it going to be for me to look stuff up and learn when I'm building a feature or how quickly can I get help when things break?

      I'm going to try out Supabase for one of my next small projects to compare though. I got the Shipfast nextjs boilerplate, and it has supabase support built in.

    4. 0

      This comment was deleted a year ago.

  3. 1

    Do you a pro there?It was good post

  4. 1

    Great post! Supabase really does seem like an awesome choice for BaaS. The ease of setup and the fact that it's open-source make it super appealing. Plus, it's got that cool "Firebase but with SQL" vibe going on. It's interesting to hear how it's working out for your projects. Thanks for sharing your experience!

  5. 1

    I chose Supabase as BaaS for my projects due to its robust real-time capabilities, seamless integration, and developer-friendly features. Similarly, the best hair salons in Pittsburgh are chosen for their exceptional service, cutting-edge techniques, and customer satisfaction, ensuring top-quality results.

  6. 1

    insightful! thanks for sharing

  7. 1

    I'm pretty new to backend as a service, services. If you set up your project on Supabase and at some point want to move your infrastructure to a different service is that possible or are you basically committed to Supabase for life?

    1. 1

      Not the OP, but also using Supabase. Yes, this is possible, and it's the main selling point of Supabase.

      Supabase is effectively just Postgres. There is no vendor lock-in like with Firebase, since the database isn't proprietary.

  8. 1

    Hi I am nikhil my free fire ID headshot to set kaise hoga

  9. 1

    Thanks for the post!

    What is the scale at which you are using Supabase currently?
    How do you compare workers with supabase functions?

  10. 1

    Trying out Supabase from Mongo and the overall MERN stack...seems reasonable nice

  11. 1

    "In my experience working with various Backend-as-a-Service (BaaS) solutions, including Firebase for large-scale projects and Supabase and Appwrite for others, the primary driver for migrating away from Firebase has been the desire for self-hosting capabilities using Docker images. While Firebase offers a comprehensive suite of features, including the functionalities you mentioned (e.g., push notifications), self-hosting with another BaaS requires additional integrations with third-party services like Firebase or Twilio for OTP verification. Firebase conveniently streamlines these aspects, but with self-hosting, the focus shifts to code optimization for optimal performance."

  12. 1

    Can I deploy a custom backend service in Python or Java on Superbase?

    1. 1

      No, Supabase runs on Deno and supports JavaScript. If you prefer Python, check out Cloudflare Workers.

  13. 1

    Supabase simplifies backend development for fullstack applications, offering Zero Configuration setup and built-in support for PostgreSQL. Its intuitive dashboard enables efficient management of database tasks, making it ideal for indie developers and startups seeking rapid deployment.

  14. 1

    i used several baas such as firebase for major projects and supabase and appwrite, for me the only reason that push me to move from firebase to another baas is making it self hosted using docker image. al the points you mentioned provided by firebase. in additional to that for example push notification in case of self hosting you need to integrate third party such as firebase, same note about otp you will use some service as twilio, so those notes are already done with firebase, the only thing you really need to worry is making sure that is code is very optomized to get the best deal.

    1. 1

      Yes, Firebase is very similar to Supabase. Btw, you can use Supabase to send push notifications, but it's not as convenient as with Firebase.

      1. 1

        yes, i spent a lot of time reading and deeping in dive inside this topic, supabase or appwrite is sertain points you need to add thirdparty or just left something to you to worry about in opposite on firebase which let you focus on dev style and making sure your code is perfect and performance friendly before going to production

  15. 1

    Did you evaluate other no code backend options? We’re using Xano for joinorderly.com and loving it

  16. 1

    I've been playing with Supabase too but if I understand correctly, when you are on a paid plan they do not pause your project if it isn't used. They only do this for free projects running on their platform. So to me this isn't a con - if you're actually launching a "real" project and not a hobby side project, your back end isn't going to get shut down after a week.

    1. 1

      As a serial indie hacker, I found one more limitation of the free tier plan - you can create only 2 projects.

    2. 1

      It's only on free tier yes.
      Also you get an email from them a day or so before they "pause" the project, so not too bad imo.

    3. 1

      Against shutdown, setup an hourly automated request call towards your Api just to keep alive. I know it is a bit hacky. Also, I think 25 USD for SQL realtime DB is not much!

  17. 1

    Thanks for sharing your experience, Egor! It's excellent to hear how Supabase simplifies backend improvement and speeds up assignment launches. Your insights on its points and obstacles are absolutely helpful. I look forward to checking out your apps and seeing more of your work!

  18. 1

    Hi Egor,

    I'm building a product that goes one step further to get things done a bit faster. Supabase is on our radar for implementation as well.

    https://app.january.sh - I'd love to chat!

  19. 1

    Hi Egor,

    Thank you for sharing your experience with Supabase! Your detailed insights are incredibly helpful, especially for indie developers like myself who are always on the lookout for efficient BaaS solutions.

    I appreciate how you broke down the advantages of Supabase, particularly the Zero Configuration setup. It’s impressive how much time and effort it can save, which is crucial when you’re trying to get a project off the ground quickly. The integration with PostgreSQL and the ease of managing databases through the Supabase dashboard is a huge plus. I’ve always found PostgreSQL to be robust and flexible, so knowing that Supabase offers a seamless experience with it is reassuring.

    The real-time feature is something I’m particularly excited about. The ability to subscribe to database changes and receive updates in real time without implementing complex web socket logic is a game-changer for creating dynamic applications. Your example of subscribing to table changes really highlighted its potential.

    One point you mentioned about the automatic shutdown due to inactivity caught my attention. While it’s understandable from a resource management perspective, it could be a significant inconvenience for projects that might have sporadic usage. Do you have any tips on how to manage or mitigate this issue?

    Also, I’m curious about your comparison with Cloudflare. I’ve been considering using Cloudflare Workers for serverless functions, but the lack of a robust database management interface like Supabase’s is a bit of a drawback. How do you usually decide which platform to use for a particular project?

    1. 1

      The real-time feature is something I’m particularly excited about. The ability to subscribe to database changes and receive updates in real time without implementing complex web socket logic is a game-changer for creating dynamic applications. Your example of subscribing to table changes really highlighted its potential.

      Totally agree.

      I’ve been considering using Cloudflare Workers for serverless functions, but the lack of a robust database management interface like Supabase’s is a bit of a drawback.

      There’s nothing more robust than a simple SQLite file 🙂. Cloudflare has a UI to work with SQLite, and you can find some GUI clients for your OS. Check out TablePlus if you're on macOS.

    2. 1

      Hello @hustler94, I'm not the OP but wanted to chime in regarding your point about Cloudflare's DB offering. Depending on what you need for your project it could be a bit incomplete to only look at the SQLlite db they offer (i.e. D1).

      I'm sure that you're aware but if not Cloudflare does offer more options than just the one mentioned in the post above for persisting data.

      Personally I've had really good experience with KV, Durable objects and Hyperdrive.

      • KV give you a very lean and fast key-value store.
      • Durable objects especially useful in scenarios of collaboration/shared usage of object.
      • Hyperdrive in some cases where you might need to interface with an already existing external DBs. Anecdotally in a very weird edge case I had to use it to connect to Supabase in order to go around some timeout limitation.

      That said there is usually no project where I would not consider Supabase as foundational layer given everything it brings especially when relational db is a requirement. Both solutions actually work nicely together and you can capitalize on what each does best.

  20. 1

    Your exploration of Supabase is like expertly cracking open an egg to reveal its richness and versatility! From its seamless Zero Configuration setup to its robust PostgreSQL support and real-time database updates, Supabase seems to offer a plethora of benefits for developers seeking efficiency and speed in their projects. Despite encountering a few limitations like the absence of custom domains and automatic shutdowns during inactivity, your comparison with Cloudflare highlights Supabase's unique advantages, particularly its user-friendly database management interface. As both platforms continue to evolve and integrate new technologies, the future appears eggciting for developers seeking innovative solutions. Thanks for sharing your insights and eggspertise!

  21. 1

    I chose Supabase as my Backend-as-a-Service (BaaS) for its seamless integration with my projects, robust features like real-time databases and authentication, and the flexibility to scale as my projects grow.

  22. 1

    Supabase is literally the easiest way for one to get started with their backend. I don't understand the bashing it gets except for the pricing.

    1. 2

      Totally agreed with you and I would add even with the pricing in the picture. Their free tier is more than enough to cover a lot of use cases and reasonably sized projects.
      And when the need to upscale comes if $20/month is out of budget the road is going to be long and bumpy. People even have the option to go down the self-hosted route and bypass any cost assuming they own some hardware.

  23. 1

    Hi Egor,

    Thanks for sharing your experience with Supabase! The Zero Configuration and PostgreSQL support are particularly appealing. Have you tried integrating Supabase with any AI features in your apps? I'd love to hear about your experience with that.

    Thanks!

    1. 1

      No, I usually use direct methods to work with AI providers through their public APIs.

  24. 1

    Thanks for this detailed post. I also use Supabase for my projects although I use an additional backend layer for my lack of TypeScript knowledge.
    As a note, What you wrote as minuses in your text does not exist in the paid version as far as I know.

  25. 1

    This comment was deleted a year ago.

  26. 1

    This comment was deleted a year ago.

Trending on Indie Hackers
From Ideas to a Content Factory: The Rise of SuperMaker AI User Avatar 28 comments Why Early-Stage Founders Should Consider Skipping Prior Art Searches for Their Patent Applications User Avatar 21 comments I spent $0 on marketing and got 1,200 website visitors - Here's my exact playbook User Avatar 20 comments Codenhack Beta — Full Access + Referral User Avatar 19 comments I built eSIMKitStore — helping travelers stay online with instant QR-based eSIMs 🌍 User Avatar 18 comments Day 6 - Slow days as a solo founder User Avatar 12 comments