If you are looking to build a mobile app, website, tool, or any other application that needs a backend, then you also know the daunting tasks that await. This is probably what brought you to this blog in the first place: looking for a solution to take care of your backend. One of these solutions is a Backend-as-a-Service (BaaS). It provides pre-built backend infrastructure and services to simplify app development, handling server-side tasks like data storage, user management, APIs, server maintenance, security, database management, and more. Two of these solutions are Appwrite and Supabase, and although both are solid options for your BaaS, they’re somewhat different.
This article will give you a rundown of Appwrite and Supabase to understand the feature sets. Then, we’ll provide a quick Appwrite vs Supabase comparison so you can understand how each provider will fit your specific needs.
Appwrite
In 2019, Appwrite started as an open-source project to make software development more accessible and enjoyable. It is a Backend as a Service platform with a vibrant developer community. You can self-host Appwrite on your server or utilize Appwrite Cloud. Appwrite provides a wide range of features, including user authentication, databases, storage, real-time features, and functions. It is known for its flexibility, security, and extensibility, enabling you to implement custom backend logic and build applications tailored to your needs. You can view Appwrite’s source code on GitHub.
Supabase
Supabase positions itself as an alternative to Firebase, which offers a range of tools and services for developing and deploying web and mobile apps. It was founded in 2020 and aims to be a user-friendly, scalable, and secure platform for creating modern applications. Supabase provides features for user authentication, app analytics, databases, real-time, and functions. It supports various platforms like web, Android, and iOS and can easily integrate with other tools and services. You can use their Cloud platform or self-host. You can view Supabase’s source code on GitHub.
Features compared
When looking into a BaaS solution, it is good to understand how the products and features can serve your project’s needs. We compiled a list of similarities and differences between Appwrite and Supabase for you to understand both offerings better.
Authentication
Authentication is the process of verifying a user's identity to ensure that only the appropriate individuals have access to their private data. Different authentication methods include email and passwords, passwordless login via emails and phone numbers, or applications that offer single sign-on (SSO) capabilities. It is usually the initial step in application development for developers. BaaS platforms simplify this process by offering SDKs and APIs.
Similarities:
Both offer robust authentication capabilities, including user registration, login, and passwordless login options.
They both support various authentication methods, such as email and password, social logins (Google, Facebook, etc.), and device authentication.
Role-based access control (RBAC) is available to manage user permissions and restrict access to resources.
Differences:
Appwrite's authentication system allows developers to integrate with any existing external authentication systems through custom token login.
Appwrite provides two user grouping and categorization features: teams and labels, for simpler permissions management.
Supabase offers integration with SAML for enterprise SSO.
Databases
A database is an organized collection of information stored in a way that allows for easy access, retrieval, management, and updating. Databases store and manage large volumes of structured data, supporting activities such as data storage, analysis, and management. They are integral to any application.
Both Appwrite and Supbase provide databases that can be used depending on the needs of your project.
Similarities:
Both provide a user-friendly database interface for creating and managing tables, indexes, and relationships.
They both support relational databases.
Schema migrations are available to manage database changes in a structured manner.
Differences:
Appwrite offers an abstraction layer above MariaDB as part of its API, offering a simpler developer experience for data consumption and user permissions management.
Appwrite offers offset and cursor pagination out-of-the-box to developers, which will have to be manually developed with Supabase.
Supabase's PostgreSQL database provides more flexibility by giving developers direct access to the database but substantially increases the learning curve.
Storage
Storage allows you to manage files in your project. It can store images, videos, documents, and other project files. Storage can be a crucial requirement for any application that operates on binary data (e.g., social media platforms), and here's what Appwrite and Supbase have to offer:
Similarities:
Both provide object storage for storing and managing files, images, and other binary data.
Access control is available to manage files and restrict access.
Differences:
Appwrite offers file previews and thumbnails to enhance user experience.
Appwrite offers an image manipulation API, including functionalities such as manipulating resolution, image reformatting, caching, and compression, in the free tier. Supabase offers image manipulation only in their paid tiers.
Supabase offers a CDN to serve assets via an edge network in their paid tiers.
Functions
Functions are "self-contained" modules of code that accomplish a specific task. BaaS platforms make it easier for you to extend the services by using functions with code snippets.
Similarities:
Both Appwrite and Supabase provide serverless functions for executing code on demand.
They both offer triggers to execute functions on events, such as file uploads or database changes.
Differences:
Appwrite supports functions runtimes across over 10 programming languages, including JavaScript, Python, PHP, and Dart, whereas Supabase officially supports only one programming language, TypeScript.
Appwrite’s functions runtimes have been developed in-house, enabling a more curated developer experience and the ability to develop runtimes more quickly, whereas Supabase uses a 3rd party offering, limiting the pace of development and control over experience.
Appwrite offers a marketplace of function templates that are ready to deploy with a few button clicks, which Supabase does not offer.
Realtime
Real-time, by definition, means "without significant delay.” You can use it to get constant updates on any activities that occur within the application you are building. This can be applied in various ways, such as a chat application. While real-time features can be complex to build, you can use Appwrite and Supabase to achieve them quickly.
Similarities:
Appwrite and Supabase provide real-time data synchronization using WebSockets.
Both of them support broadcasting changes to large audiences.
They both offer client libraries for various programming languages.
Differences:
Appwrite also supports real-time updates across every product (e.g., function executions, file uploads, account creation) whereas Supabase supports real-time updates for database changes only.
Supabase offers state tracking and synchronization across users out of the box.
Messaging
Messaging allows you to implement communications in your application. You can use this to send information and updates directly to users through various methods, such as push notifications, SMS, and email. Currently, Supabase has no direct messaging features, whereas Appwrite does.
Similarities:
You can use real-time features along with databases in both Appwrite and Supabase to create a chat application.
You can use functions in both Appwrite and Supabase to use external providers for SMS and email.
Differences:
Appwrite Messaging features ten different providers to leverage major communications providers for SMS, email, and push notifications. It offers user segregation, message scheduling, and message previews as well. Supabase offers none of these.
Self-hosting
Self-hosting support essentially means a developer can deploy the application on their infrastructure rather than use a managed solution. This allows the developer complete control over their data and more flexibility to tweak how the application works and pick their own hosting solution. Being open-source, both Appwrite and Supabase allow developers to self-host them.
Similarities:
Both Appwrite and Supabase are self-hosted using Docker. They both offer Docker Compose files to deploy different components of the platforms and can be built directly from their GitHub repositories.
Differences:
Appwrite offers a single installation command with a pre-built configuration to simplify the self-hosting process, making it more straightforward and cohesive. Supabase, on the other hand, expects the developer to manually configure each component during the setup process.
Appwrite offers one-click setups for DigitalOcean, Gitpod, and Akamai Compute. Supabase offers the same for DigitalOcean and AWS.
Supabase features community-maintained helm charts to self-host using Kubernetes.
Support
Any developer-first product, regardless of how good and simple it may be, will need a system for support in case its consumers face any issues. Both Appwrite and Supabase have developed support offerings to ensure their consumers can share feedback and get the necessary help.
Similarities:
Both Appwrite and Supabase offer comprehensive documentation and community forums for self-help.
They both provide paid support plans for priority email assistance.
They both have active open-source communities where users can collaborate and share knowledge.
Differences:
The Appwrite community is very active and provides fast and comprehensive support.
Supabase provides a higher tier of support for a higher price.
Conclusion
While Appwrite and Supabase are great Backend-as-a-Service (BaaS) offerings that support numerous SDKs, they differ in engineering approaches. The choice between Appwrite and Supabase hinges on your needs and preferences.
Here’s a table that compares both Appwrite and Supabase:
Feature | Appwrite | Supabase |
Database | Relational (MariaDB) | Relational (PostgreSQL) |
Serverless functions runtimes | 10+ languages supported | Only 1 language officially supported |
Self-hosting / Cloud | Self-hosting and Cloud available | Self-hosting and Cloud available |
Supported programming languages | Supports SDKs in 10 languages JavaScript, Python, PHP, Kotlin, Dart | Supports SDKs in 6 languages |
Pausing of projects | Free projects are not paused ever | Free projects are paused after 1 week of inactivity |
Functions marketplace | Has a marketplace featuring a variety of function templates and integrations such as Discord bots, payments with Stripe, ChatGPT API, etc. | No functions marketplace |
Permissions | A simple-to-use permissions system that is consistent across all Appwrite products | Complex permissions system that needs knowledge of SQL to get started |
Messaging providers | 10 providers covering SMSes, emails, and push notifications | Zero |
Here's a price comparison between Appwrite and Supabase to help you choose the one that best suits your needs:
Feature | Appwrite | Supabase |
Pricing Model | Tiered pricing | Tiered pricing |
Paid Plan | Starts at $15 per month | Starts at $25 per month |
Resources
If you’re looking for an independent comparison of performance, scalability, and ease of use between Appwrite and Supabase, take a look at this in-depth article by Codigee. To learn more about Appwrite or try it yourself, check out the resources below.
Appwrite documentation - Visit Appwrite’s docs to learn how to get started and more about Appwrite’s functionality.
Appwrite Migration API - Find out how to transfer your applications from Supabase to Appwrite in just a few steps.
Appwrite GitHub repo - Explore Appwrite’s code and architecture and see how you can contribute to Appwrite.
Appwrite Discord - Join Appwrite’s Discord server and be part of a vibrant community.
Appwrite YouTube - Visit Appwrite YouTube for hands-on tutorials to help you learn.