PRIMAL · Centro de mando financiero
CRM de finanzas personales + del negocio en un solo lugar. Misma arquitectura que el Content OS / YouTube OS:
HTML estático + Supabase (opcional) + GitHub + Vercel. Sin build, sin Node.
Qué tiene
- Barra de mando: mes y estado de la nube. Todo el CRM es del negocio (no hay ámbito personal).
- (La barra de captura rápida se quitó a pedido de Santiago; los registros entran por los botones de Caja, Growth, Consultoría y Cuotas.)
- Mando: Cash collected del mes (el número grande), Revenue (cerrado en el mes), Gastos y Profit, objetivo del mes, cash disponible + runway, Skyline (12 meses: ingresos oro, gastos carmesí rayado, neto en marfil; clic en un mes lo abre), cascada del mes (ingresos → fijos → variables → ahorro → neto), cuentas, por cobrar, próximos cargos, top categorías.
- Caja: el libro de cada dólar que entró o salió de las cuentas. Feed por día o tabla, filtros, buscador, CSV, botones de cash collected / ingreso / gasto / transferencia.
- Growth: clientes growth partner y closing con tu % del cash collected. Cada tarjeta tiene el botón Vincular CRM (URL + anon key del Supabase del CRM que le hicimos, tabla
pagos, columna usd, con "Probar conexión"): Primal lee sus pagos en vivo, calcula tu parte y se actualiza sola cuando el cliente registra un pago (realtime). También admite cash collected manual. Por cliente: bruto → tu parte devengada → cobrado → pendiente, y "Cobrar saldo" crea el ingreso.
- Consultoría: formato tabla, 100% tuyo. En el formulario del cliente escribís Revenue (contrato) y Cash collected (lo que entró); si subís el cash collected, el pago se registra solo en Caja y como cuota pagada. Nombre, teléfono (abre WhatsApp), email, revenue, cash collected, tipo de cuota, próxima cuota, medio de pago, comprobante y estado.
- Cuotas: todas las cuotas de todos los clientes (pendientes / pagadas / vencidas), con botón cobrar, medio de pago y comprobante (link o archivo hasta 1 MB).
- Toda la empresa (al final de Mando): cash collected de clientes, ingresos devengados por fuente (growth + closing + consultoría + otros), cobrado real, gastos del negocio, margen, ranking por cliente y tabla mes a mes.
- Tareas (26 oct 2026): todo lo que hay que tener listo y para cuándo, por proyecto (webinar de Sebas, mega webinar orgánico de Amelia, webinar de Estiven, Primal). Cada proyecto tiene la fecha de su evento y cada tarea vence N días antes (−) o después (+): si el evento se mueve, se mueven todas (ingeniería inversa del calendario). Pendiente / En progreso / Trabada / Hecho, prioridad P0-P1-P2 (como la planilla de Naza), responsable, entregable y notas. Vista por fecha (vencidas, hoy, mañana, esta semana…) o por etapa. Al crear un proyecto se puede arrancar con la checklist de su tipo (webinar pago u orgánico). En Mando aparece una franja con lo vencido y lo de hoy. La carga inicial está en
tareas-data.js (se aplica una vez por versión, no pisa lo editado).
- Página pública de tareas de clientes (31 oct 2026): https://primal-tareas.vercel.app, de solo lectura, con la misma estética, para compartir con clientes y equipo. Por cliente: proyectos con cuenta regresiva al evento, abiertas / hechas / % del plan, y las tareas agrupadas por fecha (vencidas, hoy, mañana, esta semana…). Filtros por cliente (
#santino, #amelia…) y abiertas / hechas / todas. Lee en vivo el mismo pg_state del CRM a través de la función publico/api/tareas.js (la clave de Supabase vive en las variables de entorno del proyecto Vercel primal-tareas, no en el navegador) y devuelve solo título, etapa, área, responsable, prioridad, estado y fechas: nunca notas, detalle ni links. Qué sale: proyectos no archivados con "Mostrar en la página pública" encendido (los de tipo Interno van apagados por defecto) y tareas sin "No mostrar en la página pública". Ambas casillas están en los modales de proyecto y de tarea; el responsable "Claude" se muestra como "Equipo Primal". En Tareas hay un modo por cliente y el botón Página de clientes ↗.
- Avisos al celular: por ntfy (app gratis, sin cuenta). Tareas → Avisos al celular: canal privado, botón de prueba y vista previa. Un mensaje por grupo: vencidas, hoy, mañana, 3 y 7 días antes. Con Supabase salen solos a las 7:00 (todo) y a las 19:00 (solo lo que sigue abierto hoy o vencido), hora de Costa Rica, por
pg_cron + pg_net (función primal_avisos() en el schema); en modo local se mandan a mano con "Mandar los de hoy".
- App en el celular:
manifest.webmanifest + sw.js + iconos. Desde Safari/Chrome → Compartir → "Agregar a inicio" y abre directo en Tareas.
- Recurrentes: cargos fijos (alquiler, herramientas, salarios…). "Registrar" crea el gasto del mes con un clic.
- Config: wordmark, objetivos mensuales, tipo de cambio CRC, cuentas, categorías, export/import JSON, datos de ejemplo, reset.
Sistema visual
- Negro cálido, oro champán como señal (ingresos, acentos, botón principal), marfil para texto y neto, rojo profundo solo para gastos y saldos negativos. Display: Bodoni Moda itálica; números: Bodoni Moda regular; cuerpo: Manrope; etiquetas y datos auxiliares: IBM Plex Mono. Sin logo por ahora (solo wordmark).
- Logo:
assets/gorila-oro.png (gorila original en oro, fondo transparente) dentro de un escudo SVG. También gorila-blanco.png, favicon.png y el original logo.jpg.
- Paleta del gráfico validada (daltonismo y contraste sobre #050505): oro vs carmesí ΔE 18.8 deutan, 27.4 visión normal.
Reglas de cálculo
- Todo se muestra en USD. Un movimiento en CRC se convierte con el tipo de cambio de Config.
- Saldo de cuenta = saldo inicial + ingresos − gastos ± transferencias.
- Runway = cash del ámbito ÷ promedio de gastos de los últimos 3 meses.
- Fijos = categorías Vivienda, Suscripciones, Servicios, Herramientas, Equipo, Salarios, Seguro, Deuda. Ahorro e Inversión salen de caja pero se muestran aparte.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗