Conheça o PocketBase: um BaaS Alternativo ao Firebase
Conheça o PocketBase: um BaaS Alternativo ao Firebase
Uma alternativa Open Source ao Firebase, Supabase, e outros serviços BaaS (Backend as a Service)
Olá, neste artigo daremos uma olhada no PocketBase, um BaaS (Backend as a Service) alternativo ao Firebase, Supabase e outros serviços. Que roda somente com hospedagem própria (self-hosting).
O que exatamente é o PocketBase
Como mencionado acima, PocketBase é um serviço de backend similar ao FIrebase, contando com um ambiente com diversas ferramentas para facilitar e agilizar o desenvolvimento do seu projeto, abstraindo boa parte do backend.
A principal diferença é que o PocketBase não oferece hospedagem, você precisa fazer a hospedagem do serviço em algum serviço de hospedagem.
Quais ferramentas possui?
O PocketBase conta com algumas ferramentas/funções para uso:
-
Banco de Dados
-
Authenticator (Gerenciamento de Usuários)
-
Storage (Armazenamento de arquivos)
-
Dashboard
Banco de dados
O banco de dados disponibilizado pelo PocketBase é o SQLite, um banco de dados relacional como PostgreSQL ou MySQL, que você pode usar usando a API fornecida.
A sintaxe da API é bem parecida com a do Firestore, como no exemplo abaixo, usado para buscar um registro da coleção “exemplo”:
const record = await pb.collection('exemplo').getOne('ID_REGISTRO');
E como todos os recursos, você pode visualizar e gerenciar os dados através da Dashboard:
Authenticator
O PocketBase também disponibiliza recursos para gerenciamento dos usuários da sua aplicação.
O PocketBase armazena os dados dos usuários em uma tabela do banco de dados, que você pode editar conforme as suas necessidades. E utiliza tokens JWT para a segurança e encriptação dos usuários.
O PocketBase também tem a opção de utilizar login com outros serviços, como Google ou Github.
Código para realizar login com usuário e senha:
const authData = await pb.collection('users').authWithPassword('USUARIO_OU_EMAIL', 'SENHA');
Storage
Um recurso muito legal do PocketBase é o storage, para armazenamento de arquivos.
Por padrão, o storage armazena os arquivos na máquina em que está rodando (como mencionado, o PocketBase precisa ser hospedado individualmente). Mas você tem a opção de utilizar o Amazon S3 caso deseje um storage dedicado.
Os arquivos são vinculados às tabelas do banco de dados, um mesmo campo de arquivo pode conter mais de um arquivo, ou conter nenhum arquivo.
Dashboard Administrativo
Como mostrado em algumas funções acima, o PocketBase conta com uma Dashboard para visualização e gerenciamento dos dados, configurações do serviço, etc. Você pode acessar uma demo online da dashboard aqui.
Custos
Como mencionado, o PocketBase não conta com a hospedagem do serviço, ou seja, você precisa rodar ele localmente (para testes ou experimentos), ou utilizar algum serviço de hospedagem, e o seu custo sai justamente desta hospedagem.
Você pode gerar um único executável e executar o serviço normalmente numa máquina reservada, ou pode gerar um arquivo docker e rodar em um container.
Ambas as opções têm diversos serviços disponíveis para isso.
Segundo o PocketBase, uma VPS com 2vCPU e 4 GB de RAM consegue suportar 10.000 ou mais conexões simultâneas e persistentes (média de R50 a R80 reais no Brasil, ou US5 a US10 dólares em servidores internacionais).
Você também pode hospedar gratuitamente para projetos menores usando o fly.io.
Siga esta documentação para fazer o deploy do seu PocketBase.
Conclusão
PocketBase é uma alternativa muito interessante aos concorrentes, principalmente caso você tenha o requisito de usar um servidor próprio ou do cliente.
Também é uma boa opção para projetos próprios ou com demandas específicas que tornariam o custo atraente por não ser cobrado por uso, como o Firebase.
Além é claro de para projetos de portfólio, uma vez que é muito simples rodar localmente para testar e visualizar o projeto.
É isso, muito obrigado por ler até aqui. Sinta-se à vontade para opinar, dar sugestões ou fazer perguntas nos comentários. :)