Blog
Feature
10 de febrero de 20268 min

Suscripciones RevenueCat: 16 casos límite y noches en vela

Cuando decidí monetizar TAMSIV, sabía que necesitaba un sistema de suscripciones sólido. Tres niveles: Free, Pro y Team. RevenueCat se impuso: ellos gestionan la complejidad de las tiendas por usted. Bueno, en teoría.

La arquitectura de los niveles

El plan Free da acceso a las funciones básicas con límites diarios. El Pro desbloquea todo: generación de imágenes IA, STT en la nube de Deepgram, notas ilimitadas. El Team añade la capa colaborativa: grupos jerárquicos de 6 niveles, asignaciones, listas de verificación.

En cuanto al código, un archivo config/planLimits.ts centraliza todas las puertas de funciones. Cada función verifica el plan activo antes de ejecutarse.

Los 16 casos límite de cambios de plan

Un usuario puede actualizar, degradar, cambiar de período (mensual → anual) o combinar ambos. Cada combinación tiene un comportamiento diferente. Una actualización entra en vigor inmediatamente con prorrateo. Una degradación se pospone hasta el final del período.

Conté 16 casos distintos. Para cada uno: momento de activación, posible prorrateo, actualización de las puertas de funciones en tiempo real, visualización correcta. Tres días de pruebas para cubrirlo todo.

IVA, sin IVA y obligaciones legales francesas

En Francia, los precios se muestran con IVA incluido para los consumidores. Las tiendas proporcionan precios localizados, pero hay que asegurarse de que la visualización cumpla con la legislación. Mención "Precio con IVA incluido", enlace a las CGV, información sobre el derecho de desistimiento.

El PurchaseService

Todo pasa por un singleton PurchaseService que inicializa RevenueCat, escucha los cambios de estado y expone el plan activo a través de un hook. El servicio gestiona la restauración de compras y la sincronización con Supabase. Cuando un usuario actualiza, las nuevas funciones se desbloquean instantáneamente.