- PocketBase é um backend open source de arquivo único que inclui banco de dados, autenticação, armazenamento de arquivos e painel administrativo
- Banco de dados interno de alto desempenho com construtor de schema, validação de dados, assinaturas em tempo real e API REST
- Simplifica a gestão de usuários com login por e-mail/senha e login OAuth2 (Google, Facebook, GitHub, GitLab)
- Armazena arquivos com segurança em ambiente local ou em armazenamento S3, com possibilidade de associar mídia a registros do banco de dados e gerar thumbnails automaticamente
- Pode ser usado como aplicativo autônomo ou como framework extensível em Go·JavaScript, útil para construir backends leves e personalizados
Visão geral do PocketBase
- O PocketBase é uma plataforma backend open source que funciona como um único arquivo executável
- Integra banco de dados, autenticação, armazenamento de arquivos e painel administrativo em um único pacote
- Estrutura pronta para ser executada rapidamente sem necessidade de configuração de servidor separada
Recursos de banco de dados
- Inclui banco de dados interno com suporte a construtor de schema, validação de dados, assinatura em tempo real e API REST
- Oferece detecção de alterações e assinatura de dados em tempo real
- Permite consultar, criar, editar e excluir dados facilmente por meio da API REST
Autenticação de usuários
- Suporte para login com e-mail e senha para gerenciamento de usuários do app
- Autenticação OAuth2 para cadastro e login com contas do Google, Facebook, GitHub e GitLab
Armazenamento de arquivos
- Arquivos podem ser armazenados com segurança em ambiente local ou armazenamento S3
- É possível anexar arquivos de mídia aos registros do banco de dados
- Oferece geração automática de thumbnails no upload
Escalabilidade e suporte a desenvolvimento
- O PocketBase pode ser usado como aplicação autônoma ou como framework extensível via hooks de Go e JavaScript
- Desenvolvedores podem adicionar sua própria lógica para implementar um backend customizado
Exemplo de SDK em JavaScript
- Através do SDK JavaScript é possível interagir com o servidor PocketBase
- O exemplo de código mostra listagem de registros da coleção
example, consulta/remoção/criação de registros individuais, assinatura em tempo real e cancelamento de assinatura
- Métodos disponíveis:
pb.collection('example').getList(), getOne(), create(), delete(), subscribe()
1 comentários
Opiniões no Hacker News
Dizer que “SQLite não escala” na maioria das vezes é uma ilusão de otimização prematura
Na prática, é raro bater no limite de contenção do WAL, e a simplicidade de um binário único é muito melhor do que a complexidade de sistemas distribuídos
Hoje em dia até projetos pequenos já ligam por padrão um cluster de banco de dados e cache Redis, mas o Pocketbase mostra que, em 99% dos apps CRUD, o gargalo não é o banco, e sim a latência de rede e o tempo de administração do desenvolvedor
Testei com benchmark em Rust CLI e o desempenho foi melhor do que MySQL ou Postgres na mesma máquina
Para projetos desse porte, SQLite é ideal
Fica trabalhoso porque todo o cálculo precisa ser tratado na aplicação
Quando vejo Pocketbase, dou upvote na hora
Uso em vários apps de produção e tem sido muito estável
Às vezes aparecem mudanças que quebram algo, mas no geral é excelente e também escala bem
Quando falta alguma funcionalidade, pode ser meio chato, mas um desenvolvedor experiente consegue resolver sem problemas
Só me preocupa a manutenção futura, já que o desenvolvedor está sozinho
Ainda assim, é uma escolha muito boa quando você precisa separar frontend e backend
Uso Pocketbase com frequência em projetos pessoais e ferramentas internas
Junto com PocketPages, dá para usar roteamento baseado em arquivos e templates com facilidade
Graças ao recurso de migração automática de banco de dados, dá para incluir mudanças de schema no controle de versão
Cheguei até a conectar um servidor do protocolo Gemini para navegar no meu grafo de conhecimento pessoal com o Lagrange
Pocketbase é um servidor backend configurável por GUI
Dá para criar um backend funcional quase sem código, então é adequado para protótipos, MVPs e apps simples
Esse conceito foi popularizado pelo Firebase
Os backends que eu escrevo precisam de centenas ou milhares de linhas de código, então quero saber como isso substitui isso
Tenho curiosidade sobre o alcance dos apps que dá para fazer com esse tipo de ferramenta
Usei Pocketbase em um side project e fiquei realmente impressionado
Trabalho com Django há muito tempo, e em projetos pequenos e médios o Pocketbase combina muito mais do que construir um backend tradicional do zero
Se tiver perguntas, respondo com prazer
E também se ele suporta PostgreSQL ou se é exclusivo para SQLite
Então criei uma Claude Skill e queria saber se alguém teve experiência parecida
Trailbase é uma versão do mesmo conceito implementada em Rust
Por isso migrei para o Trailbase
Ou seja, também pode hospedar o app inteiro
Link do guia
Estou usando Pocketbase como camada de autenticação de um side project
Está em produção em kavla.dev, e o sistema de hooks é excelente
Graças à documentação de hooks de eventos em Go, também foi fácil implementar automação de infraestrutura
Montei um MVP rapidamente com SQLite e DuckDB, mas depois me arrependi na fase de backup e produção
Acho que teria sido mais tranquilo começar com Supabase desde o início
Eu criei o OpenSOHO com Pocketbase, e isso me economizou muito tempo de desenvolvimento
Fiz algumas pequenas modificações para reutilizar o backend, mas não foi difícil
Só de olhar as capturas de tela já dá para ver imediatamente os traços do Pocketbase
Link do GitHub
Fiquei preocupado com backup do SQLite no Pocketbase, então criei eu mesmo a ferramenta sqlrsync.com, que consegue fazer backup com sqlite3_rsync mesmo enquanto está em execução
O MVP já está funcionando e, por ser baseado em Cloudflare Durable Objects, é rápido e estável
Feedback é bem-vindo