Blog
Feature
10 febbraio 20268 min

Abbonamenti RevenueCat: 16 casi limite e notti insonni

Quando ho deciso di monetizzare TAMSIV, sapevo di aver bisogno di un solido sistema di abbonamento. Tre livelli: Free, Pro e Team. RevenueCat si è imposto — gestiscono la complessità degli store per te. Beh, in teoria.

L'architettura dei livelli

Il piano Free dà accesso alle funzioni base con limiti giornalieri. Il Pro sblocca tutto: generazione di immagini AI, STT cloud Deepgram, memo illimitati. Il Team aggiunge il livello collaborativo: gruppi gerarchici su 6 livelli, assegnazioni, checklist.

A livello di codice, un file config/planLimits.ts centralizza tutte le feature gate. Ogni funzionalità verifica il piano attivo prima di essere eseguita.

I 16 casi limite dei cambi di piano

Un utente può effettuare un upgrade, un downgrade, cambiare periodo (mensile → annuale), o combinare i due. Ogni combinazione ha un comportamento diverso. Un upgrade ha effetto immediato con prorata. Un downgrade è differito alla fine del periodo.

Ho contato 16 casi distinti. Per ognuno: momento di attivazione, eventuale prorata, aggiornamento delle feature gate in tempo reale, visualizzazione corretta. Tre giorni di test per coprire tutto.

IVA inclusa, IVA esclusa e obblighi legali italiani

In Italia, i prezzi sono visualizzati IVA inclusa per i consumatori. Gli store forniscono i prezzi localizzati, ma è necessario assicurarsi che la visualizzazione rispetti la legislazione. Menzione "Prezzo IVA inclusa", link alle Condizioni Generali di Vendita, informazioni sul diritto di recesso.

Il PurchaseService

Tutto passa attraverso un singleton PurchaseService che inizializza RevenueCat, ascolta i cambiamenti di stato ed espone il piano attivo tramite un hook. Il servizio gestisce il ripristino degli acquisti e la sincronizzazione con Supabase. Quando un utente effettua un upgrade, le nuove funzionalità si sbloccano istantaneamente.