¿Qué hace freemium-video-funnel?
Demostración de un producto de video freemium: trabajos de renderizado asíncrono con sondeo, reserva/confirmación/reembolso de créditos y un embudo de registro rastreado en PostHog.
Resumen
Este proyecto implementa un producto de video con un modelo de negocio freemium, donde los usuarios pueden registrarse, obtener créditos gratuitos y consumirlos para renderizar videos. Si se quedan sin créditos, pueden comprar más. Todo el proceso está rastreado con PostHog para analizar el embudo de conversión.
Características principales
- Renderizado asíncrono: Los trabajos de renderizado se ejecutan en segundo plano y el frontend consulta (sondea) el estado periódicamente.
- Gestión de créditos: Sistema de reserva, confirmación y reembolso de créditos para evitar cobros dobles o pérdidas.
- Embudo de registro: Cada paso del registro (visita, registro, uso de crédito, compra) se rastrea en PostHog.
Tecnologías utilizadas
- Backend: Python con Flask y SQLAlchemy.
- Frontend: HTML, CSS y JavaScript (sin framework).
- Base de datos: SQLite (para desarrollo).
- Analítica: PostHog (self-hosted o cloud).
Configuración
-
Clona el repositorio:
git clone https://github.com/busrakoyuncu/freemium-video-funnel.git cd freemium-video-funnel -
Instala las dependencias:
pip install -r requirements.txt -
Configura las variables de entorno:
POSTHOG_API_KEY: Tu clave de API de PostHog.POSTHOG_HOST: La URL de tu instancia de PostHog (por defectohttps://app.posthog.com).SECRET_KEY: Clave secreta para Flask.
-
Inicia la aplicación:
python app.py
Uso
- Abre
http://localhost:5000en tu navegador. - Regístrate con un correo electrónico.
- Recibirás créditos gratuitos para probar el renderizado.
- Solicita un renderizado de video.
- Observa cómo se consume un crédito y el estado del trabajo cambia de "pendiente" a "completado".
- Cuando los créditos se acaben, se te pedirá que compres más.
API Endpoints
POST /register: Registra un nuevo usuario.POST /login: Inicia sesión.GET /credits: Obtiene el saldo de créditos del usuario.POST /render: Solicita un renderizado (consume un crédito si está disponible).GET /render/<id>: Obtiene el estado del trabajo de renderizado.POST /purchase: Compra créditos adicionales.
Captura de datos en PostHog
Cada evento significativo se envía a PostHog con propiedades como user_id, action, credits_remaining, etc. Puedes crear un embudo en PostHog con los siguientes pasos:
- Usuario visita la página.
- Usuario se registra.
- Usuario utiliza un crédito.
- Usuario completa un renderizado.
- Usuario compra créditos.
Licencia
MIT