App a medida · 2026
Gestión de clientes y tareas
Asesoría laboral, fiscal y contable. Las capturas son de la interfaz real de la aplicación funcionando con datos inventados: ningún cliente, compañero, tarea ni cifra de los que aparecen es real.
Sustituye un Excel de 84 hojas por una aplicación interna: ficha, seguimiento y cuaderno por cliente, tareas que se crean hablando, cambios en tiempo real y un historial que nadie puede reescribir.
- React
- Node.js
- SQLite
- Express
- Tailwind CSS
- Vite
El problema
El equipo llevaba años trabajando sobre un único Excel compartido de 84 hojas: una maestra y una por cliente. Funcionaba, pero con tres fallos que el propio equipo señalaba.
Apuntar cuesta, así que se apunta tarde
Abrir el Excel, buscar la pestaña del cliente y escribir. Muchas tareas se apuntaban a final del día, o no se apuntaban.
Buscar en el histórico es lento
Saber qué se hizo con un cliente hace ocho meses obligaba a bajar a mano por su pestaña.
Cero trazabilidad
Cualquiera podía cambiar cualquier celda y no quedaba rastro de quién movió qué.
Y una condición de partida dura: el Excel se jubilaba el primer día. Sin convivencia ni vuelta atrás, la aplicación pasaba a ser la única copia de años de trabajo de la asesoría.
El proceso
- Fase 1
Entender
Leer el Excel real: sus columnas, sus colores, los estados que de verdad se usaban y el vocabulario del equipo.
- Fase 2
Importar
Un script repetible que convierte las 84 hojas en datos limpios y avisa de lo que no cuadra: códigos repetidos, hojas huérfanas, nombres dudosos.
- Fase 3
Modelar
Esquema SQLite de 14 tablas: clientes, tareas, responsables, pasos, historial, cuaderno, accesos cifrados, chat…
- Fase 4
Interfaz
Mismos términos, mismas columnas y misma lógica de color que el Excel. Lo nuevo se gana su sitio; no se impone.
- Fase 5
Producción
Servicio de Windows en el servidor de la oficina, HTTPS con Caddy, acceso externo por Cloudflare Tunnel y copia diaria.
Crear una tarea hablando
El problema número uno era que apuntar daba pereza, así que la respuesta es que apuntar cueste menos que no apuntar.
Un micrófono flotante transcribe en directo lo que dices. Un intérprete de reglas local saca de la frase el cliente, el responsable, la fecha límite —«mañana», «el viernes», «el 20 de octubre»— y las marcas de alerta o prioridad, y enseña una confirmación editable antes de guardar.
Usa la Web Speech API del navegador, sin servidor de voz ni claves de API; donde no hay micrófono, se escribe la frase y se interpreta igual. La salida ya tiene la forma del JSON que devolvería un LLM, así que pasar a Whisper y Claude no obliga a tocar la pantalla de confirmación.


El modelo
Cliente, tarea, responsables y pasos, con un historial que solo admite inserciones. La forma es sencilla; lo que no lo es son las reglas que la recorren, que salen de cómo trabaja de verdad el despacho.


Varias personas, en igualdad
No hay un dueño con ayudantes: en el despacho, una parte del trabajo es de uno y otra de otro.
La aceptación es de cada persona
A una misma tarea uno puede decir que sí y otro que no, y la tarea sigue viva con quien la aceptó.
Las repetitivas se contestan una vez
Son varias tareas, una por fecha, pero para quien las recibe es una única decisión.
Se archiva, no se borra
Borrar de verdad es cosa del administrador.
Lo que hace
Mis tareas y panel general
Alertas, temas prioritarios y fuera de plazo, en lista o en calendario mensual.
Ficha y seguimiento
Todos los campos del Excel, con el estado editable en línea y tarjetas en el móvil.
Cuaderno por cliente
Todo el equipo lee y escribe; cada uno solo edita, tacha o fija sus propios apuntes.
Accesos y certificados
Contraseñas de las webs de cada cliente cifradas, y certificados digitales con semáforo de caducidad.
Tiempo real y avisos
Los cambios de un compañero aparecen al momento, y las notificaciones push llegan con el navegador cerrado.
Chat y tres roles
Chat interno uno a uno, y trabajador, jefe y administrador con los permisos aplicados en el servidor.
En el móvil
Quien sale a ver a un cliente se lleva la aplicación en el bolsillo. En el móvil, los contadores se apilan, el calendario reduce cada tarea a un punto de color y las tablas pasan a tarjetas.
Las reglas que complican el problema
Una lista de tareas de manual se hace en una tarde. Estas reglas son las que la convierten en algo en lo que una asesoría puede confiar su única copia.
Permisos estrechos, trazabilidad ancha
Casi todo lo edita cualquiera, pero el estado de una tarea solo lo cambia quien la lleva. Cada cambio queda en un historial que nadie puede editar ni borrar, ni el administrador.
Privacidad incluso frente al administrador
No puede leer el chat de otros dos ni reescribir el cuaderno de nadie. Un cuaderno que otro puede reescribir deja de servir como recuerdo.
Las contraseñas no viajan en la copia
Se cifran con AES-256-GCM y la llave vive fuera de la base de datos y fuera de las copias que salen cada noche hacia la nube.
Fechas y dinero, sin sorpresas
Las fechas se calculan en hora local: toISOString() pasa a UTC y en horario de verano devuelve el día anterior. Los importes van en céntimos enteros, porque 0,1 + 0,2 no da 0,3.
Una sola fuente para las repetitivas
El servidor, que crea la siguiente tarea, y el calendario, que dibuja las que aún no existen, comparten módulo. Por separado, el calendario enseñaría un día y la tarea nacería otro.
Copia en caliente
VACUUM INTO copia SQLite de forma consistente aunque haya gente escribiendo en ese momento.
El proyecto en cifras
- 86clientes migrados desde el Excel
- 432tareas reales importadas
- 14tablas en SQLite
- 3roles con permisos en servidor
- 12.000líneas en 26 commits
- 5semanas, de agosto a septiembre
Qué me llevo
El vocabulario del cliente es parte del producto
Mantener los términos, columnas y colores del Excel reduce al mínimo lo que hay que aprender: el equipo ya sabe usarla antes de abrirla.
Modelar lo que pasa de verdad
Pasar de un responsable a varios en igualdad, con aceptación por persona, complicó el modelo. Es como trabaja el despacho.
Menos dependencias, menos problemas
node:sqlite en lugar de un driver nativo evita compilar en el servidor Windows. Un proceso y un puerto se levantan como servicio sin más piezas.
Cuando es la única copia, la copia no es opcional
Integridad, copias diarias y cifrado de secretos se diseñaron desde el principio, no al final.
¿Y en tu caso?
¿Tu equipo sigue trabajando sobre un Excel que nadie se atreve a tocar?
Esto se hizo para una asesoría, pero el patrón —un documento compartido que ha crecido hasta que cuesta más mantenerlo que usarlo— aparece en casi cualquier oficina. Cojo proyectos freelance compatibilizándolos con mi trabajo, y si me lo cuentas te digo con franqueza si te puedo ayudar.
Cuéntame tu caso →




