Introdução
Sou principalmente um desenvolvedor indie de iOS, mas tenho pensado em criar alguns apps multiplataforma. Tentei o Firebase, mas fiquei com um pé atrás porque li uma história ruim sobre usuários recebendo contas absurdas usando o Firebase. Ainda assim, até hoje, o Google não permite que você defina um limite de orçamento. Então, comecei a procurar uma alternativa ao Firebase, ou melhor dizendo, um serviço de banco de dados multiplataforma fácil de usar?
Cheguei ao Appwrite e ao Supabase. Depois de testar os dois com meu nível iniciante de experiência em backend, aqui está a minha perspectiva.
TL;DR:
Se você faz self-hosting e não precisa armazenar dados relacionais, use o Appwrite. Se não se importa em pagar, quer algo sem complicação e um desenvolvimento robusto a longo prazo usando a versão em nuvem, use o Supabase. E vou explicar o porquê.
Principal diferença entre Supabase VS Appwrite
Tecnologia de banco de dados
O Appwrite usa NoSQL e o Supabase usa PostgresSQL.
Se você conhece o Firebase, vai se sentir em casa com o Appwrite. Mas se você quer um banco de dados relacional, Supabase.
Preços na nuvem
Em março de 2025, ambos os serviços oferecem um plano gratuito com limites. Por exemplo, 1-2 projetos, largura de banda limitada e a quantidade de usuários simultâneos, etc. Você pode conferir os preços mais recentes nos links acima. Atualmente, além do plano gratuito, o Supabase começa em US$ 25/mês, e o Appwrite começa em US$ 15/mês.
Interface do usuário
Appwrite
- Menos itens no painel, visão geral mais limpa.
Supabase
- Mais opções, mas parece um pouco complicado.
Self-hosting
Ambos são fáceis de implantar. No entanto, a versão self-host do Supabase é bastante limitada, e é uma versão reduzida da versão em nuvem. Diferente do Appwrite, onde você tem tudo na versão self-host. Aqui estão alguns problemas que encontrei ao fazer self-hosting do Supabase:
-
A versão self-host do Supabase permite apenas um projeto por instância; é diferente da versão em nuvem que você usa pela plataforma deles, onde você pode criar vários projetos.
-
Eu estava tentando encontrar e modificar o redirecionamento de URL para autenticação, mas o botão não está no menu como está na versão em nuvem. Então visitei o servidor em nuvem, fui até a página, copiei o link e alterei para apontar para a minha instância. Aí consegui ver as opções, mas não conseguia modificá-las. Acho que é um dos limites da versão reduzida.
-
A documentação é voltada principalmente para a versão em nuvem, e não se aplica bem à versão self-host. Isso porque certas configurações e opções estão faltando.
O Appwrite, por outro lado, eu consegui rodar muito rapidamente. E achei a documentação fácil de seguir.
Sincronização offline
Se o seu app não se limita a um site, provavelmente em algum momento você vai precisar gerenciar sincronização offline. Nesse aspecto, o Supabase é mais fácil de gerenciar, pois existem bibliotecas e serviços de terceiros que você pode usar. Opções como Powersync e Brick são comuns. Com o Appwrite, você precisará escrever sua própria lógica de sincronização, já que não encontrei nenhuma biblioteca fácil de usar para gerenciar sincronização offline.
Nota final
Estou usando o Appwrite self-hosted no momento porque:
- Uma instância, vários projetos - posso brincar com muitos projetos sem me preocupar com limites e contas
- Totalmente completo - Sem diferença para a versão em nuvem (acho? Pelo menos não encontrei nada que precisasse que não estivesse lá)
- Documentação fácil de seguir
- O Supabase parece te empurrar para o plano em nuvem reduzindo muitos recursos, e eu não gosto disso
- Testando NoSQL - Tenho projetos usando a versão em nuvem do Supabase e é bom. Mas eventualmente vou precisar de uma alternativa self-host, e no momento o Appwrite parece oferecer uma proposta melhor.
Se você não se importa em pagar, o Supabase é ótimo. Se você quer colocar a mão na massa ou se familiarizar mais com NoSQL, fazer self-hosting do Appwrite é divertido o suficiente.
Referência:
Este post do reddit enquanto eu pesquisava.