Il backend è la parte di un’applicazione che funziona dietro le quinte, sul server, e che si occupa di gestire dati, logica di business, autenticazione e autorizzazione, API, comunicazione con il frontend (sito Web, app mobile, app desktop) e integrazione con altri sistemi. PocketBase è un backend open source leggero e “auto-ospitabile“, scritto in Go, pensato per sviluppatori e startup che vogliono creare applicazioni moderne senza la complessità di configurare server o database esterni.
PocketBase include database, autenticazione, gestione file e API realtime, il tutto in un singolo eseguibile. Una soluzione che si dimostra quindi ideale per prototipi, MVP (Minimum Viable Product, prima versione essenziale di un prodotto o servizio digitale), applicazioni Web, mobile o desktop leggere, o per progetti dove si vuole il pieno controllo dei dati senza dipendere dal cloud.

Come funziona PocketBase
Avviando l’eseguibile di PocketBase, si attiva immediatamente l’intero backend dell’applicazione in un unico processo. Viene aperta la porta HTTP predefinita e parte il server Web interno, che non necessita di componenti esterni come Apache, Nginx o Node.js.
Contestualmente PocketBase verifica la presenza del database SQLite: se il file esiste lo carica, altrimenti lo crea e inizializza la struttura interna necessaria per utenti, sessioni, collezioni e configurazioni.
Una volta attivato il database, PocketBase ricostruisce l’intero modello dati leggendo tutte le collezioni, i campi, le relazioni e le regole di accesso, rendendo immediatamente disponibile l’intera struttura logica dell’applicazione. Il motore realtime basato su WebSocket consente l’aggiornamento istantaneo dei dati sui client collegati, senza alcuna configurazione aggiuntiva.
Allo stesso tempo vengono esposte automaticamente tutte le API REST già pronte per essere utilizzate da frontend Web, applicazioni mobili, desktop o script automatizzati, comprese quelle per l’autenticazione, la gestione utenti e il caricamento file. Infine, PocketBase rende disponibile l’interfaccia di amministrazione accessibile via browser, dalla quale è possibile gestire collezioni, dati, utenti e permessi.
Guida pratica: iniziare a usare PocketBase da zero
Per prima cosa, si può far riferimento al sito ufficiale o al repository GitHub del progetto, scaricando la versione dell’eseguibile per il sistema operativo in uso (Windows, macOS, Linux).
Come spiegato in precedenza, non serve installare nulla: PocketBase è un singolo file eseguibile da estrarre e avviare da una cartella locale (i.e. \pocketbase). Da una finestra del terminale, basta portarsi all’interno di questa directory quindi digitare quanto segue:
./pocketbase serve
Si dovrebbe aprire immediatamente il browser predefinito con la richiesta di creazione di un account amministrativo locale (il server Web di PocketBase risponde all’indirizzo 127.0.0.1:8090).
Una volta completata la registrazione, la dashboard di PocketBase consente di creare collezioni, gestire utenti, definire permessi e vedere i dati in tempo reale.
Creare la prima collezione di dati
Per iniziare a sperimentare, si può ad esempio creare una collezione chiamata ad esempio “note“. Cliccando su New collection, si possono assegnare un nome interno e uno visibile, per poi procedere con l’aggiunta dei campi necessari.
Come si vede nell’immagine, abbiamo aggiunto un campo di testo titolo, un campo contenuto (testo lungo, Rich editor) e una relazione (Relation) autore collegata con la tabella users.
Dopo aver salvato la collezione, PocketBase aggiorna automaticamente il database SQLite e genera le API per gestire tutte le informazioni.
Provare le API REST con un client HTTP
PocketBase rende immediatamente disponibili le API REST della collezione. È possibile ad esempio provarle con l’utilizzo del comando curl da terminale, con strumenti come Postman o Insomnia, con estensioni del browser (i.e. REST Client).

Ad esempio, per elencare tutti i record della collezione, si può usare l’istruzione che segue:
curl http://127.0.0.1:8090/api/collections/note/records
Se si ricevesse l’errore “Only super users can perform this action” significa che la collezione non permette l’accesso pubblico per la lettura dei record. PocketBase, per impostazione predefinita, blocca tutte le API per gli utenti non autenticati, a meno che non si intervenga sulla scheda API Rules della collezione.

Per creare una nota (senza autenticazione, se le regole della collezione lo permettono):
curl -X POST http://127.0.0.1:8090/api/collections/note/records \
-F "titolo=Prima nota" \
-F "contenuto=Questo è un test"
Si vedrà apparire subito la risposta JSON con l’ID del nuovo record.
Monitorare le collezioni in tempo reale con WebSocket
PocketBase supporta WebSocket nativi: è possibile verificare in tempo reale tutto ciò che accade su una collezione. Un modo semplice per iniziare è usare il client JavaScript ufficiale.
Basta creare una cartella frontend-test/ e un file index.html, inserendo al suo interno quanto segue:
<script src="https://unpkg.com/pocketbase/dist/pocketbase.umd.js"></script>
<script>
const pb = new PocketBase("http://127.0.0.1:8090");
pb.collection("notes").subscribe("*", (event) => {
console.log("Aggiornamento realtime:", event);
});
</script>
Aprendo il file HTML con il browser quindi creando o aggiornato le note nella dashboard, si vedranno gli eventi comparire in console in tempo reale.
Tutti i possibili utilizzi di PocketBase sono riassunti nella documentazione ufficiale.
Note finali
Uno dei vantaggi di PocketBase è la sua semplicità: è possibile fare esperimenti senza paura e senza quindi alcun rischio di sbagliare.
Per ricominciare da zero, basta eliminare la cartella pb_data/ quindi riavviare l’eseguibile: PocketBase ricostruirà un database nuovo e “pulito”. Per arrestare PocketBase, è sufficiente premere CTRL+C nella finestra del terminale da cui si è avviata l’applicazione.
Con pochi passaggi si è subito operativi: PocketBase fornisce un backend completo in pochi secondi, permettendoti di concentrarti su ciò che conta: sperimentare funzioni, costruire un frontend, provare API, testare logiche e realizzare prototipi senza ricorrere a infrastrutture complesse.