Why I Chose Supabase as BaaS for My Projects
Supabase is a promising platform for developing serverless applications, ideal for indie developers and startups. Learn more!
Join the DZone community and get the full member experience.
Join For FreeHello! My name is Egor, and I'm an indie developer creating useful applications that utilize AI. So far, I’ve released five apps:
- StepAhead (iOS): Helps you beat procrastination by breaking down your tasks into small, manageable steps
- Prompt Forge (iOS): Teaches you how to code with AI
- Space Academy Quiz (iOS/Android): Interesting facts about space in a quiz format
- Feedback Loop: Interview Prep (iOS): To prepare for job interviews (AI product management)
- 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.
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 front end 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.
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 to create 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.
Published at DZone with permission of Egor Dubchenko. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments