¿Qué es PocketBase? Introducción y Primeros Pasos

En esta guía exploraremos a fondo PocketBase, un backend de código abierto que está simplificando la vida de miles de desarrolladores.

Veremos desde su definición técnica hasta su implementación práctica, cubriendo tanto las necesidades de un principiante que busca su primera base de datos, como las de un desarrollador avanzado que necesita una solución ágil y extensible mediante Go o JavaScript.

¿Qué es PocketBase? (Para todos los niveles)

En términos sencillos, PocketBase es un backend en un solo archivo. Es una solución «todo en uno» que combina una base de datos, un sistema de autenticación, almacenamiento de archivos y una API lista para usar.

  • Para el principiante: Imagina que quieres hacer una aplicación y necesitas guardar usuarios y mensajes. Normalmente, tendrías que aprender SQL, configurar un servidor, crear una API y gestionar la seguridad. PocketBase te da todo eso ya hecho en un pequeño programa que descargas y ejecutas.
  • Para el avanzado: PocketBase es un binario escrito en Go que utiliza SQLite (con soporte para suscripciones en tiempo real) como motor embebido. No es solo una base de datos; es un framework extensible que permite inyectar lógica personalizada tanto en Go como en JavaScript.

Características Principales

PocketBase destaca por ofrecer un conjunto de herramientas esenciales bajo el mismo techo:

  1. Base de datos en tiempo real: Utiliza SQLite y permite suscribirse a cambios en los datos de forma nativa.
  2. Gestión de Autenticación: Incluye manejo de usuarios, recuperación de contraseñas y autenticación vía OAuth2 (Google, GitHub, etc.) integrada.
  3. Panel de Administración (Dashboard): Una interfaz web intuitiva para gestionar tus colecciones, ver datos y configurar reglas de acceso sin escribir código.
  4. Almacenamiento de Archivos: Maneja la subida de archivos de forma local o en la nube (compatible con S3).
  5. Extensibilidad: Puedes usarlo como una aplicación independiente o como un framework para construir lógica compleja en Go o JS.

Instalación y Primeros Pasos

La filosofía de PocketBase es la simplicidad extrema. No requiere instaladores pesados ni dependencias externas.

Para usuarios de nivel básico preparare un tutorial de como instalar Coolify un servidor propio y poder instalarlo sin conocimientos avanzados para crear su propias base de datos.

1. Descarga

Debes descargar el ejecutable correspondiente a tu sistema operativo (Linux, Windows o macOS) desde su sitio oficial o GitHub.

2. Ejecución

Una vez extraído el archivo, abre tu terminal en esa carpeta y ejecuta el comando:

./pocketbase serve

3. Configuración Inicial

Al ejecutarlo por primera vez, el servidor se iniciará y verás información importante en tu terminal:

  • Servidor de archivos/API: http://127.0.0.1:8090
  • Panel de administración: http://127.0.0.1:8090/_/

Se generará un enlace automático para que crees tu cuenta de Superusuario (administrador). También puedes crear este usuario manualmente con:

./pocketbase superuser create TU_EMAIL TU_PASSWORD

Estructura de Archivos

Cuando ejecutas PocketBase, se crean automáticamente dos carpetas esenciales:

  • pb_data: Aquí se guarda tu base de datos SQLite y los archivos subidos. Es vital para tu aplicación, pero generalmente no se sube a repositorios de código (se añade al .gitignore).
  • pb_migrations: Contiene archivos de migración (en JavaScript) que reflejan los cambios en tus tablas o colecciones. Estos sí pueden y deben guardarse en tu repositorio.

Ejemplos de Uso: ¿Qué puedes construir?

Gracias a su ligereza, PocketBase es ideal para diversos escenarios:

  • Aplicaciones MVP (Producto Mínimo Viable): Si tienes una idea de negocio, puedes tener el backend listo en una tarde en lugar de semanas.
  • Aplicaciones en tiempo real: Apps de chat, tableros de puntuación deportiva o dashboards de monitoreo que necesiten actualizarse instantáneamente cuando cambien los datos.
  • Blogs o Portafolios: Utilizando la carpeta pb_public, PocketBase puede servir tu contenido estático (HTML/CSS/JS) y gestionar los comentarios o contactos mediante su API.
  • Herramientas Internas: Paneles de control para empresas donde la velocidad de desarrollo es prioridad sobre la escalabilidad masiva.

Aplicaciones y Plataformas Reales que usan PocketBase

  • Presentator: Una plataforma de código abierto para presentaciones y feedback de diseño. De hecho, PocketBase fue creado originalmente por el mismo autor para potenciar esta aplicación.
  • UpSnap: Una herramienta web sencilla para «Wake on LAN» que permite encender dispositivos de forma remota, construida con SvelteKit y PocketBase.
  • Beszel: Un monitor de servidores ligero que incluye estadísticas de Docker y funciones de alerta.
  • ILAMDOCS: Un sistema de gestión para el Centro de Documentación Patrimonial, cuyo código es abierto y utiliza PocketBase para manejar archivos y registros históricos.
  • Interior Render AI: Una plataforma comercial que utiliza PocketBase para gestionar usuarios y procesos de renderizado mediante inteligencia artificial.

Proyectos de Código Abierto (Showcases)

  • TwinSnap: Un juego de cartas multijugador en tiempo real que demuestra la potencia de las suscripciones (WebSockets) de PocketBase.
  • Vimsnake: Un juego en tiempo real desarrollado en WASM donde los comandos de Vim se usan como controles.
  • JustJot: Una aplicación de notas tipo PWA (Progressive Web App) enfocada en el uso exclusivo del teclado.
  • PocketChat: Un sistema de chat completo con Vue 3 que soporta OAuth, notificaciones y compartición de archivos.

Herramientas de Ecosistema

  • PocketBase API Rule Builder: Una herramienta visual para generar reglas de API complejas sin escribir código manualmente.
  • Quickhost: Una plataforma de hosting diseñada específicamente para desplegar instancias de PocketBase de forma rápida.

Ventajas y Desventajas

Ventajas

  • Portabilidad: Todo vive en un solo binario y una carpeta de datos. Mover tu servidor es tan fácil como copiar una carpeta.
  • Facilidad de uso: El panel administrativo ahorra horas de desarrollo de backend.
  • Bajo consumo: Ideal para servidores pequeños o VPS de bajo costo.
  • Moderno: Soporta JavaScript y Go para personalizaciones avanzadas.

Desventajas

  • Fase de desarrollo: Actualmente está en versión v0.37.5. Esto significa que no se garantiza compatibilidad absoluta hacia atrás hasta que llegue a la v1.0.0.
  • No apto para aplicaciones críticas (aún): No se recomienda para sistemas donde el tiempo de inactividad o los errores de migración manual sean inaceptables, a menos que estés dispuesto a revisar los registros de cambios con frecuencia.
  • Escalabilidad vertical: Al usar SQLite, PocketBase escala muy bien verticalmente (mejorando el servidor), pero no está diseñado de forma nativa para escalabilidad horizontal masiva (múltiples servidores de base de datos distribuidos).

PocketBase representa una nueva ola de herramientas «Pocket-sized» que priorizan la experiencia del desarrollador y la rapidez de despliegue.

Es la herramienta perfecta para desarrolladores independientes, agencias que hacen prototipos rápidos y entusiastas que quieren un backend potente sin las complicaciones de la infraestructura tradicional.


Fuentes:

  • Documentación oficial de PocketBase (pocketbase.io/docs/)
  • Repositorio de GitHub y notas de lanzamiento de PocketBase.

Descubre más desde Alejandro Faicán

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Comentarios

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *