// Dev Notes

Il mio Blog

Articoli tecnici su sviluppo web, Firebase, PWA e intelligenza artificiale applicata al mondo reale.

📘
Complete guide
Firebase guide: RTDB, Firestore, Auth, Storage and pricing
The reference map for every Firebase decision, with links to real examples from production projects.
Firestore Vector Search Netlify Functions

Portare le chat di un CRM esterno dentro Firestore per la ricerca AI: vector search, webhook e un bundling testardo

Come ho collegato le conversazioni di un CRM esterno a Firestore per la ricerca AI: vector search, webhook in tempo reale, un cursore che non avanzava, e un "Cannot find package firebase-admin" tornato tre volte prima di arrendersi.

11 min →
API pubbliche CORS Netlify Functions

Quando un'API pubblica smette di funzionare: CORS, un dataset NASA abbandonato e un proxy Netlify Function

Cosa ho imparato integrando tre API pubbliche gratuite in una pagina: un blocco CORS silenzioso, un dataset NASA ufficialmente abbandonato, e un proxy Netlify Function che da solo non bastava.

9 min →
Machine Learning ONNX Runtime Web Worker

Rimuovere lo sfondo da una foto nel browser, senza upload: licenze IA, modelli ONNX e un thread bloccato

Come ho costruito un tool di rimozione sfondo che gira interamente nel browser: la trappola della licenza AGPL, la scelta di un modello IA con licenza commercial-safe, la pulizia della matte alpha, i limiti reali di un modello specializzato e un bug che bloccava l'intera pagina durante il calcolo.

11 min →
Gemini API PDF.js Netlify Functions

Riassumere un PDF con l'IA per meno di un centesimo: PDF.js, Gemini Flash-Lite e una Netlify Function

Come ho aggiunto un tool di riassunto PDF con IA al sito: estrazione testo lato client con PDF.js, Gemini Flash-Lite via Netlify Function, rate limiting su Firestore, e il problema reale delle nuove Auth Key di Google che rompono l'autenticazione via query param.

10 min →
JavaScript Firebase PWA

PanelControl: un gestionale da 65 file, in JavaScript vanilla e senza framework

Come ho progettato e mantengo da solo PanelControl, un gestionale aziendale multi-ruolo in JavaScript vanilla su Firebase: un rendering engine fatto in casa con guardia sull'interazione utente, la migrazione dai listener on('value') a listener realtime granulari per tagliare 40-60 MB/giorno di banda, autenticazione con Custom Token e un pattern di permessi non distruttivo.

12 min →
JavaScript PWA Game AI

Burraco online gratis, da zero: regole, jolly e un'IA a tre livelli in JavaScript vanilla

Come ho costruito un burraco online gratuito giocabile subito contro il computer, senza registrazione: validazione di tris e scale con i jolly, gestione del pozzetto come regola dipendente dalla storia delle calate, e un'intelligenza artificiale a tre livelli di difficoltà governata da euristiche, senza machine learning. Tutto in JavaScript vanilla, senza framework né build step.

9 min →
PDF.js pdf-lib Canvas API

Un rettangolo nero su un PDF non è redazione, il testo sotto resta lì: come ho costruito un editor che lo rimuove davvero

Editor PDF completo lato browser — riordino pagine, annotazioni, firma, filigrana — con un occhio di riguardo alla redazione: perché un blackout visivo lascia il testo estraibile sotto, e come l'ho risolto rasterizzando solo le pagine toccate con PDF.js, tenendo vettoriali tutte le altre e ricomponendo il documento con pdf-lib. Zero upload, tutto in memoria del browser.

12 min →
Firebase Security Netlify Functions

Una password Firebase in chiaro autenticava chiunque visitasse il sito: come l'ho tolta senza disconnettere nessuno

Un pannello interno Firebase autenticava automaticamente chiunque aprisse il sito con una credenziale condivisa hardcoded, a prescindere dal login mostrato in interfaccia. Come l'ho sostituita con identità reali per operatore via Netlify Function, Custom Token con claim per ruolo e Regole RTDB deny-by-default, in 5 fasi senza mai disconnettere il team — con due bug veri lungo il percorso.

14 min →
Canvas API PWA Web Audio API

Un Breakout in PWA, da zero: canvas, audio sintetizzato e power-up in un solo file HTML

Come ho costruito un gioco Breakout installabile come PWA partendo da zero: canvas API vanilla, manifest e service worker, 15 livelli disegnati a mano, effetti sonori generati via Web Audio API senza file esterni, particelle, screen shake e 4 power-up bilanciati per probabilità di drop.

11 min →
Gmail API OAuth2 Netlify Functions

Via Tidio, dentro Gmail API: la casella email condivisa senza mai vedere la password

Come ho ricreato dentro un pannello interno la stessa esperienza di Tidio — leggere e rispondere a una casella email condivisa senza dare agli operatori la password reale — con Gmail API, OAuth2 lato server, Netlify Functions, RTDB e FCM. Con i bug veri: un import mancante, un commento che si chiude da solo, e un secret sbagliato di un carattere.

10 min →
Firebase Google Cloud Pricing

Spark vs Blaze: la guida ai prezzi Firebase che avrei voluto leggere prima

Spark vs Blaze spiegato senza il gergo di marketing: cosa include davvero il piano gratuito, come funziona il pay-as-you-go di Blaze, tabella prezzi per Firestore/Hosting/Storage/Auth, e la novità 2026 su Cloud Storage che richiede sempre Blaze.

9 min →
Firebase Netlify Functions Realtime Database Firestore

Chi è online sul sito, senza Tidio: presenza live e storico visitatori con Firebase RTDB e Firestore

Come ho costruito, per un sito WordPress esterno, un sistema di presenza live e storico visitatori senza usare Tidio: Firebase Realtime Database con onDisconnect, storico su Firestore con geolocalizzazione IP, e un bug CORS che in realtà era un crash sulla risposta 204.

11 min →
myPOS Netlify Functions Node.js RSA

Integrazione myPOS IPC in un checkout Netlify: firma RSA, Error Code 25 e i tranelli della documentazione

Come ho integrato myPOS IPC v1.4 in un checkout Netlify/Firebase: chiave RSA 1024-bit rifiutata da OpenSSL 3, mutual TLS incompatibile, l'algoritmo di firma corretto e l'Error Code 25 causato da un dominio .netlify.app non whitelistato.

12 min →
Firebase Security Cloud Functions Vanilla JS

Audit sicurezza Firebase PWA: XSS da innerHTML, credenziali hardcoded e Cloud Function con custom token

Come ho rimosso tre superfici di attacco da un gestionale Firebase vanilla JS: XSS via innerHTML risolto con escapeHtml ed escapeJsAttr, password Firebase in chiaro sostituita da signInWithCustomToken via Cloud Function, chiave HMAC ruotata e migrata su Secret Manager.

13 min →
Netlify Functions SOAP Firebase VPS

Etichette di spedizione automatiche: API SOAP MBE, il muro del WAF e il proxy VPS

Come ho automatizzato la generazione etichette MBE da un pannello ordini Netlify/Firebase: limite 4KB sulle env var di AWS Lambda, blocco WAF su tutti gli IP cloud mascherato da documentazione SOAP obsoleta, e la soluzione finale con un proxy Node.js su VPS dedicato.

11 min →
Netlify Functions JavaScript Firebase pdf-lib

Firma elettronica con OTP: audit trail Firestore, hash PDF e certificato con pdf-lib

Come ho costruito un sistema di conferma presa visione documenti con OTP email, hash SHA-256 del PDF via crypto.subtle, audit trail su Firestore e certificato generato con pdf-lib. Con i problemi reali: CORS su Firebase Storage, limite 4KB env var Netlify e popup blocker su window.open().

12 min →
Gemini API JavaScript AI Firebase

Assistente AI nel gestionale: Gemini API + system prompt dinamico da Firebase

Come ho integrato un pannello di chat AI in un gestionale vanilla JS: fetch alla Gemini API, system prompt costruito dai dati live Firebase (ordini, operatori, bonus), base di conoscenza aziendale statica e gestione del versioning rapido dei modelli Gemini.

8 min →
Firebase JavaScript PBKDF2 E-commerce

E-commerce custom su Firebase: catalogo, ordini atomici e admin panel

Varianti tariffarie per prodotto, admin panel protetto da PBKDF2 con Web Crypto API senza password nel codice, ordini numerati con transazione atomica anti-race-condition e CSP su Netlify con sottodomini dinamici Firebase.

10 min →
Firebase RTDB Storage Admin UI

Catalogo file dinamico nella PWA: Firebase RTDB + Storage + modal admin

Come ho sostituito un catalogo hardcoded con Firebase Realtime DB e Cloud Storage — modal di gestione visibile solo ad alcuni utenti, race condition asincrona risolta e Service Worker cache versioning.

9 min →
JavaScript Web Crypto API HMAC-SHA256 Sicurezza

Token firmato tra due PWA su Firebase diversi

Come ho passato l'identità dell'utente da PanelControl a un sito di onboarding su un Firebase separato — senza backend, usando HMAC-SHA256 con la Web Crypto API nativa del browser e un URL firmato con scadenza a 5 minuti.

8 min →
Firebase JavaScript Admin Debug

Sezione PayPOS nell'Admin: RTDB, chiavi sbagliate e il bug dell'ID dinamico

Come ho integrato una tabella lead PayPOS nel pannello Admin leggendo Firebase RTDB — tre bug in sequenza: nodo sbagliato, chiavi di mapping errate e un ID dinamico con setTimeout che mostrava silenziosamente solo metà dei record.

7 min →
Firebase JavaScript Firestore UI / UX

Centro notifiche personale su PWA: Firebase, Firestore e il drawer a categorie

Come ho costruito uno storico notifiche personale per ogni operatore — sei categorie filtrabili, 90 giorni di storico, Firestore per ferie/permessi e RTDB per chat e calendario. Con il problema del bootstrap al restore sessione.

10 min →
Firebase PWA Push Notifications Debug

Calendario condiviso su PWA: Firebase, push e il bug del restore sessione

Come ho costruito un calendario condiviso con notifiche push FCM e suono affidabile — e il bug nascosto nel flusso di auto-login che impediva a metà del team di ricevere qualsiasi avviso.

9 min →
Firebase JavaScript UI / UX

Guida app interattiva con hotspot su screenshot

Come ho costruito una guida interna per navigare gli screenshot di un'app come se fosse il telefono reale — editor visuale di hotspot, macchina a stati, Firebase Storage auth-aware e glow blu pulsante.

7 min →
Firebase Cloudinary JavaScript

Invio documenti in una chat Firebase + Cloudinary

Come ho aggiunto il supporto PDF, Word ed Excel in una chat web già funzionante con immagini e vocali — upload raw, bubble personalizzata e preview in lista.

5 min →

// Snippets & Guides

⚖️ Firebase RTDB vs Firestore: when to use which Practical comparison based on real production use. Structure, queries, costs, scalability. Guida → PWA Checklist 2025 Interactive PWA checklist: manifest, service worker, HTTPS, offline, push, SEO. Guida → 🔑 Firebase Custom Token Auth Role claims, a Netlify Function, and deny-by-default Rules in 5 phases. Guida → 📧 Gmail API + OAuth2 Shared mailbox without ever handling the real password. Guida → ✍️ OTP e Firma Elettronica Verification pattern with hashing, timing-safe checks and audit trail. Guida → 🔐 HMAC-SHA256 con Web Crypto API Sign and verify payloads with no dependencies. Zero external libraries. Snippet → Firebase RTDB: once vs on One-time read vs real-time listener: differences, when to use which, SDK v9. Snippet → 🔍 Firestore: query composta + indice Query with multiple where() and orderBy(): when a composite index is needed and how to create it. Snippet → ☁️ Cloudinary Upload Raw Upload PDFs and binary files to Cloudinary with no backend, using an unsigned preset. Snippet → 🔔 FCM Push Multipiattaforma FCM payload with guaranteed sound on web, Android and iOS. Snippet → 🗂️ Notifiche Multi-Categoria Firestore + RTDB in the same notification drawer, split by category. Snippet → 🤖 Gemini API Multi-turn Multi-turn conversation and dynamic system prompt from Firebase. Snippet → 🔢 OTP via Email Timing-safe OTP generation and verification in a Netlify Function. Snippet → 🧾 Hash SHA-256 PDF Compute a PDF hash in the browser for audit trail, with no file upload. Snippet → 🚀 PWA Firebase Vanilla Boilerplate Open source Firebase + Netlify template. Clone and deploy in 5 minutes. GitHub →

// Prossimamente

🔥

Firebase in produzione

Patterns, ottimizzazioni e lezioni imparate costruendo applicazioni reali su Firebase — dal Realtime Database a Firestore.

📱

PWA: da zero a installabile

Come trasformare un sito web in una Progressive Web App, con Service Worker, manifest e offline-first strategy.

🤖

AI integrata nel web

Integrare Gemini AI e altri LLM nelle applicazioni web: chatbot, generazione contenuti e automazioni pratiche.

Netlify Functions

Serverless senza server: come usare le Netlify Functions per backend leggeri, webhook e integrazioni API sicure.

🛒

E-commerce fai-da-te

Costruire piattaforme e-commerce senza framework pesanti: pagamenti, gestione ordini e spedizioni con API esterne.

🔍

SEO tecnico per sviluppatori

Schema.org, sitemap, Core Web Vitals e tutto quello che uno sviluppatore deve sapere per posizionarsi su Google.

Hai una domanda o vuoi approfondire un argomento?

Scrivimi ← Torna al sito