Este es un tutorial sencillo de Pocketbase.io, un programa que nos permite tener un backend creado en minutos. Es basicamente un headless CMS como Strapi o Sanity, asu vez que tambien una alternativa Open Source a Firebas, como si fuera Supabase. Solo que PocketBase es un mucho más simple, y pequeño, ideal para proyectos simples donde queramos alojar nuestra propia solucion Backend as a Service sin tanto problema.

¿Que es PocketBase?

  • PocketBase es un software as a service similar a Firbease pero completamente Open Source desarrollado en Go, pero con el proposito de usarlo con bibliotecas de Javascript. es un open soruce backend as a service usa SQlite como base de datos

subscripciones en tiempo real (similar a Fifebase) administracion de ususarios con un panel de control

Instalación de PocketBase

Descarga el ejectuble de Pocketbase, y ejecuta:

./pocketbase serve

Puedes ver otros comandos con:

pocketbase

o usando el comando:

pocketbase --help

Collections

Las colecciones son donde se guardan los datos. En realidad este es un nombre que el desarrollador le ha dado a las tablas de Sqlite, porque al final esta es la base de datos que usa internamente.

  • Collection es una tabla sql
  • Fields, son las columnas de las tablas
  • Record, es una fila de la tabla

Fields

los fields pueden ser de estos tipos de datos:

text, number, bool, email, url, single or multiple select, files upload, relations,

API Rules

estan son los accesos que pueden tener nuestros endpoints de la API:

Each collection has 5 rules, corresponding to the specific API action:

listRule viewRule createRule updateRule deleteRule

Each rule could be set to:

"locked" - aka. null, which means that the action could be performed only by an authorized admin (this is the default) Empty string - anyone will be able to perform the action (admins, authorized users and guests) Non-empty string - only those Record(s) and users (authorized or not) that satisfies the rule filter expression will be able to perform this action

Unlike Firebase, Pocketbase API Rules acts also as Records filter! Or in other words, you could for example allow listing only the "active" Records of your collection, by using a simple filter expression such as: status = "active" (where "status" is a field defined in your Collection).

The API Rules are ignored when the action is performed by an authorized admin (admins can always access everything)!

RUles filter sintax

Usuarios

Documetancion

API Preview puedes ver una breve descripcion del endpoint

REST API

Client SDK

de momento tan solo hemos utilizado su interfaz de administrador, pero el asunto de todo este backend es usando con aplicaciones cliente, asi que de momento tenemos la opcion de usarlo con aplicaciones de Javascript.

Aunque tambien al parecer daran soporte a aplicaciones de Dart: https://pocketbase.io/docs/client-side-integration

Para Desarrolladores de Go

Como pocketbase esta desarrollado en GO, podemos usarlo como un ejecutable final, que es lo que hemos visto, o tambien podemos extender su API, para adaptarlo a nuestros proyectos, ya que su api es completamente abierta podemos extenderala con código de Go:

https://github.com/pocketbase/pocketbase

Más Recursos