Intorno agli anni 10 del 21esimo secolo è nato un nuovo concetto: quello del Baas ovvero del backend as a service con l’obiettivo di semplificare e accelerare lo sviluppo di applicazioni mobili e web fornendo una serie di servizi backend preconfigurati e pronti all’uso come la gestione utenti e le operazioni di CRUD si di un database.
Sicuramente uno dei più famosi di cui avete sentito parlare è Firebase di Google ma forse non siete a conoscenza del suo gemello open source Supabase, scopriamolo insieme!
Benvenuti a OpenDev Explorer, la mia rubrica dedicata all’esplorazione del mondo Open Source che strizza un occchio alla developer experience. Io sono Riccardo (aka TheZal) e oggi vi parlerò di Supabase, ovvero il migliore (a mio modesto parere) backend-as-a-service sul mercato!
Panoramica generale
Supabase è una piattaforma open-source progettata per semplificare la creazione e la gestione di applicazioni backend costruita sulla base di PostgreSQL. Supabase offre un’alternativa a Firebase, combinando funzionalità di database, autenticazione, storage e API in tempo reale.
Con la sua interfaccia intuitiva e la facilità d’uso, Supabase consente agli sviluppatori di configurare un backend scalabile in pochi minuti senza doversi preoccupare dell’infrastruttura sottostante e le sue funzionalità includono il supporto per le query SQL, una potente autenticazione con provider multipli, e una gestione dei file integrata.
Manuale di istruzioni
Installazione
Supabase, essendo open-source, implementa la possibilità di utilizzarlo hostandolo direttamente in una macchina locale. Ufficialmente sono supportati l’utilizzo di Docker e di BYO Cloud ma la community ha fornito alcuni plugin per l’utilizzo con altri provider come Kubernetes, Terraform e AWS.
L’installazione consigliata (tramite docker) è semplice da fare e può essere eseguita usando questi comandi:
# Scarica il codice dal repository
git clone --depth 1 https://github.com/supabase/supabase
# Entra nella cartella del progetto dedicata a docker
cd supabase/docker
# Crea un file .env partendo dall'esempio
cp .env.example .env
# Scarica l'immagine più recente
docker compose pull
# Fai partire il servizio in modalità detached
docker compose up -d
Code language: PHP (php)
Una volta fatto ciò sarà possibile accedere alla dashboard di Supabase all’indirizzo http://localhost:8000
e iniziare a configurare il proprio backend.
Utilizzo
Supabase offre un’interfaccia RESTful per interagire con il proprio backend e per utilizzarla è necessario creare un account e un progetto. Una volta fatto ciò sarà possibile creare un database e iniziare a configurare le tabelle e le relazioni. Le credenziali di default di Supabase sono supabase
come username e this_password_is_insecure_and_should_be_updated
come password
Supabase espone diverse API tutte servite dallo stesso api-gateway alla porta 8000 tra cui:
- REST:
http://<your-ip>:8000/rest/v1/
- Auth:
http://<your-domain>:8000/auth/v1/
- Storage:
http://<your-domain>:8000/storage/v1/
- Realtime:
http://<your-domain>:8000/realtime/v1/
La developer experience
La developer experience offerta da Supabase è eccezionalmente curata anche grazie alla sua interfaccia utente, pensata per facilitare ogni fase del ciclo di sviluppo. La documentazione dettagliata e le guide passo-passo permettono agli sviluppatori di iniziare rapidamente, con esempi pratici e tutorial che coprono i casi d’uso più comuni. Supabase fornisce SDK per diverse piattaforme e linguaggi, inclusi JavaScript, Python, Flutter, C# e Swift permettendo una facile integrazione con progetti esistenti. L’interfaccia utente è intuitiva e reattiva, consentendo la gestione delle risorse, la configurazione delle regole di sicurezza e l’analisi delle statistiche di utilizzo con pochi clic.
Un altro aspetto distintivo è la capacità di eseguire query SQL direttamente dal dashboard, offrendo una visione immediata dei dati e delle operazioni che è possibile effettuare. Inoltre, le funzionalità di autenticazione e autorizzazione sono semplici da implementare, con supporto per provider esterni come Google, GitHub e molti altri, permettendo una gestione sicura e scalabile degli utenti. La possibilità di testare in tempo reale le modifiche al database e alle API consente agli sviluppatori di iterare rapidamente, riducendo il tempo necessario per passare dall’idea al prodotto finito. In sintesi, Supabase rende l’esperienza di sviluppo non solo efficiente ma anche piacevole, consentendo agli sviluppatori di concentrarsi su ciò che sanno fare meglio: costruire grandi applicazioni.
L’extra mile
Supabase si distingue per una serie di caratteristiche che lo rendono unico e altamente competitivo. Innanzitutto, l’integrazione nativa con PostgreSQL non solo offre un database potente e versatile ma consente anche di sfruttare funzionalità avanzate come le viste materializzate e i trigger, mentre l’architettura open-source garantisce trasparenza e flessibilità, permettendo agli sviluppatori di personalizzare e contribuire al progetto.
Inoltre, le API in tempo reale sono un vero punto di forza, facilitando la creazione di applicazioni interattive e reattive senza bisogno di configurazioni complesse, e il supporto per la gestione dei file direttamente tramite l’interfaccia di Supabase rende l’archiviazione e il recupero di dati multimediali semplice e integrato.
La piattaforma offre anche un sistema di autenticazione robusto con supporto per provider multipli e l’integrazione di regole di sicurezza basate su politiche Row Level Security (RLS), aumentando notevolmente la sicurezza delle applicazioni.
Il team di Supabase non si limita a fornire strumenti, ma offre anche un supporto attivo attraverso una community vibrante e risorse educative di alta qualità, garantendo che gli sviluppatori possano superare qualsiasi sfida e sfruttare al massimo le potenzialità della piattaforma.
Il confronto con lo status quo
La differenza più grande tra Supabase e il suo diretto competitor Firebase è quella che riguarda il database sotto al cofano. Supabase essendo basato su PostgreSQL, offre una flessibilità e una potenza superiori rispetto al modello NoSQL di Firebase, consentendo l’uso di SQL per query complesse senza dover imparare un nuovo linguaggio. Inoltre, la natura open-source di Supabase permette è un punto in più a favore mentre Firebase, pur offrendo una robusta infrastruttura gestita, rimane un sistema chiuso.
Un altro punto a favore di Supabase è data dal fatto che la parte real-time è integrata direttamente con PostgreSQL, garantendo una maggiore coerenza e controllo sui dati rispetto a Firebase.
Tiriamo le somme!
Supabase, grazie quindi alle sue potenzialità e funzionalità, si colloca tra i più popolari backend-as-a-service, offrendo un’esperienza di sviluppo facile da imparare in poco tempo. La sua natura open-source e la sua integrazione con PostgreSQL lo rendono una scelta ideale per sviluppatori che cercano un backend scalabile, flessibile e sicuro. Con una community attiva e un team di sviluppo dedicato, Supabase è destinato a diventare uno dei principali player nel settore del backend as a service, offrendo una soluzione completa e innovativa per la creazione di applicazioni web e mobili.
E voi darete una chance a Supabase per il vostro prossimo progetto?