- PocketBase es un backend de código abierto de un solo archivo que incluye base de datos, autenticación, almacenamiento de archivos y panel de administración
- Incluye una base de datos embebida de alto rendimiento con constructor de esquema, validación de datos, suscripción en tiempo real y REST API
- Soporta inicio de sesión con correo electrónico/contraseña y inicio de sesión OAuth2 (Google, Facebook, GitHub, GitLab) para simplificar la gestión de usuarios
- Permite almacenar archivos de forma segura en almacenamiento local o S3, y adjuntar medios a un registro de base de datos con creación automática de miniaturas
- Puede utilizarse como aplicación autónoma o como framework extensible con extensiones de Go y JavaScript, útil para construir backends personalizados y livianos
Resumen de PocketBase
- PocketBase es una plataforma de backend de código abierto que funciona como un único archivo ejecutable
- Integra base de datos, autenticación, almacenamiento de archivos y panel de administración
- Tiene una estructura que permite una puesta en marcha rápida sin configuración de servidor adicional
Funciones de base de datos
- Incluye una base de datos embebida con soporte para constructor de esquema, validación de datos, suscripción en tiempo real y REST API
- Proporciona detección y suscripción a cambios de datos en tiempo real
- Permite consultar, crear, editar y eliminar datos fácilmente mediante la REST API
Autenticación de usuarios
- Soporta la gestión de usuarios de la app y inicio de sesión con correo electrónico/contraseña
- Permite registrarse e iniciar sesión con cuentas de Google, Facebook, GitHub y GitLab a través de autenticación OAuth2
Almacenamiento de archivos
- Puede guardar archivos de forma segura en almacenamiento local o S3
- Es posible adjuntar archivos multimedia a registros de la base de datos
- Proporciona generación automática de miniaturas al subir archivos
Escalabilidad y soporte para desarrolladores
- PocketBase puede utilizarse como una aplicación autónoma o como un framework extensible mediante hooks de Go y JavaScript
- Los desarrolladores pueden agregar su propia lógica para implementar un backend personalizado
Ejemplo de SDK de JavaScript
- Es posible interactuar con el servidor de PocketBase mediante el SDK de JavaScript
- En el código de ejemplo se muestra la consulta de listados de registros de la colección
example, la consulta de un único registro, eliminación y creación, así como suscripción y cancelación de suscripción en tiempo real
- Se brindan métodos como
pb.collection('example').getList(), getOne(), create(), delete(), subscribe()
1 comentarios
Opiniones en Hacker News
Decir que “SQLite no escala” es, en la mayoría de los casos, una ilusión de optimización prematura
En la práctica, rara vez se llega al límite de contención de WAL, y la simplicidad de un binario único me parece muchísimo mejor que la complejidad de un sistema distribuido
Hoy en día hasta a proyectos pequeños les conectan por defecto un clúster de BD y un caché con Redis, pero Pocketbase demuestra que en el 99% de las apps CRUD el cuello de botella no es la BD, sino la latencia de red y el tiempo de administración del desarrollador
Lo probé con benchmarks hechos con un CLI en Rust, y rindió mejor que MySQL o Postgres en la misma máquina
Para proyectos de este tamaño, SQLite es ideal
Tener que manejar todos los cálculos del lado de la aplicación es incómodo
Cuando veo Pocketbase, le doy upvote de inmediato
Lo uso en varias apps de producción y ha sido muy estable
A veces hay cambios que rompen cosas, pero en general es excelente y también escala bien
Cuando falta alguna función puede ponerse algo complicado, pero un desarrollador con experiencia puede resolverlo sin problema
Eso sí, como hay un solo desarrollador, me preocupa el mantenimiento a futuro
Aun así, es una opción muy buena cuando necesitas separar el front y el back
Uso mucho Pocketbase para proyectos personales y herramientas internas
Junto con PocketPages puedes usar fácilmente routing basado en archivos y plantillas
Gracias a la función automática de migraciones de BD, puedes incluir los cambios de esquema dentro del control de versiones
Incluso le conecté un servidor del protocolo Gemini para explorar mi grafo de conocimiento personal con Lagrange
Pocketbase es un servidor backend configurable desde GUI
Puedes crear un backend funcional casi sin código, así que encaja bien para prototipos, MVPs y apps simples
Firebase fue quien popularizó este concepto
Los backends que yo escribo necesitan de cientos a miles de líneas de código; quiero entender cómo reemplaza eso
También me interesa saber cuál es el rango de apps que se pueden construir con una herramienta así
Probé Pocketbase en un side project y de verdad me impresionó
Llevo mucho tiempo trabajando con Django, pero en proyectos pequeños y medianos Pocketbase encaja mucho mejor que construir un backend tradicional desde cero
Si tienen preguntas, con gusto las respondo
Y también quiero saber si soporta PostgreSQL o si es solo para SQLite
Por eso hice una Claude Skill; me pregunto si alguien más ha tenido una experiencia parecida
Trailbase es una implementación de la misma idea, pero en Rust
Por eso me cambié a Trailbase
Es decir, también puede alojar toda la app
Enlace a la guía
Estoy usando Pocketbase como capa de autenticación para un side project
Está en kavla.dev, y el sistema de hooks es excelente
Gracias a la documentación de hooks de eventos en Go, también pude implementar automatización de infraestructura con facilidad
Armé un MVP rápido con SQLite y DuckDB, pero después me arrepentí en la etapa de backups y puesta en producción
Creo que me habría ido más fácil si hubiera empezado con Supabase desde el principio
Yo hice OpenSOHO con Pocketbase, y me ahorró muchísimo tiempo de desarrollo
Le hice unas pequeñas modificaciones para reutilizar el backend, pero no fue difícil
Con solo ver las capturas de pantalla, enseguida se nota la huella de Pocketbase
Enlace a GitHub
Como me preocupaban los backups de SQLite en Pocketbase, hice yo mismo sqlrsync.com, una herramienta para hacer respaldos con sqlite3_rsync incluso mientras está en ejecución
El MVP ya funciona y, al estar basado en Cloudflare Durable Objects, es rápido y estable
Se agradece cualquier feedback