3 pontos por GN⁺ 2025-11-29 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2025-11-29
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

    • Na maioria dos apps, o gargalo mais difícil do que o técnico é conseguir usuários
    • Eu hospedo meu blog pessoal no droplet mais barato da DigitalOcean e uso SQLite
      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
    • Mas é difícil usar SQLite para operações financeiras por causa da ausência do tipo decimal
      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

    • Gosto muito da frase no FAQ: “se você não tem tempo nem para ler a documentação e vai depender só de ferramentas de IA, não use Pocketbase”
    • Também penso assim. Já expandi com JS e funcionou muito bem
      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
    • Fico curioso para saber que tipo de app de produção vocês estão rodando com Pocketbase
  • 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

    • Quero hospedar em um Raspberry Pi 5 e queria saber quais são os requisitos de desempenho e se há alguma limitação peculiar em comparação com o Supabase
    • Não sei o que é Lagrange. Não parece ser um projeto relacionado a LLM ou grafo de conhecimento
  • 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

    • Queria entender especificamente o que ele faz
      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
    • Pelos exemplos da homepage, me lembrou o Parse
  • 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

    • A integração GIS do Django é excelente; queria saber como é no Pocketbase
      E também se ele suporta PostgreSQL ou se é exclusivo para SQLite
    • Também queria saber quão fácil é a migração a partir de um backend existente baseado em SQLite
    • Também usei em um projeto pessoal, mas os LLMs vivem confundindo a interação com Pocketbase
      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

    • Existe uma página de comparação do TrailBase
    • Gostei do fato de eles não omitirem os comandos curl nos exemplos, então passei a simpatizar com o Trailbase
    • O Pocketbase é baseado em SQLite, mas não suportava colunas NULLABLE, e isso era inconveniente
      Por isso migrei para o Trailbase
    • O Trailbase consegue executar JS nos endpoints
      Ou seja, também pode hospedar o app inteiro
      Link do guia
    • Vendo isso, o lado do Pocketbase pode até parecer mais atraente
  • 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

    • Também gosto de SQLite. Estou usando replicação contínua com litestream; queria saber se você usa SQLite rsync
    • Queria saber se você já usou a API de backup online do SQLite. Parece melhor evitar acesso bruto ao arquivo
    • Queria entender qual é a diferença entre o sqlrsync e o litestream