Portafolio

Lo que ya está construido y funcionando

Dos plataformas SaaS entregadas y un proyecto propio, cada uno con la captura de su pantalla real. Lo que ves es la interfaz, no una maqueta.

Portada de la tienda en línea de Posdata Bakery con el titular «Cada pastel se hornea para una fecha que importa» y los botones de catálogo y cotización.

Posdata Bakery

SaaS · Pastelería por encargo · 2026

Plataforma SaaS de venta y operación para una pastelería que trabaja por encargo.

El cliente elige del catálogo o pide un pastel a la medida, y la plataforma lo lleva de la cotización al pago y al seguimiento por folio. Detrás, el mismo SaaS opera el mostrador: punto de venta, corte de caja, inventario, compras y reportes.

  • Cotización de pasteles personalizados con anticipo del 30 %
  • Pagos con Mercado Pago, PayPal, transferencia y efectivo
  • Seguimiento del pedido por folio, sin necesidad de cuenta
  • Punto de venta con corte de caja e inventario descontado por receta
TypeScriptReact 19Node.jsExpressMySQLMercado Pago
Pantalla «Mis Mensajes» del Mensajero Web de Confidentia: tabla de plantillas de SMS con nombre, texto, fecha y acciones de detalle, edición y borrado.

Confidentia · Mensajero Web

SaaS · Servicios financieros · 2025

Plataforma SaaS de envío masivo de SMS a partir de un archivo CSV.

El operador sube el CSV de destinatarios, lo revisa en pantalla antes de disparar nada y elige una plantilla con variables que se sustituyen por fila. El envío sale por Twilio y cada resultado queda registrado, así que un envío fallido se ve en la misma pantalla y no en el buzón del cliente. Opera como SaaS privado dentro de la intranet de Confidentia, sin exposición a internet.

  • Carga de CSV con vista previa antes del envío
  • Plantillas reutilizables con variables por destinatario
  • Envío masivo por Twilio con resultado registrado uno por uno
  • Acceso por cuenta, con la biblioteca de mensajes separada por usuario
.NET 8ASP.NET Core MVCEntity Framework CoreMySQLTwilio
Tablero del CRM con sesión de administradora: tarjetas de pipeline abierto, ganado en el mes y tasa de cierre, gráficas de embudo por etapa e ingresos de seis meses, y la tabla de tratos abiertos.

CRM

Proyecto personal · SaaS de ventas · 2026

CRM SaaS multiempresa: contactos, empresas, embudo de tratos y tareas, con acceso por roles.

Cada alta crea una organización con sus datos aislados del resto. Adentro hay tres roles con permisos de verdad: el administrador gestiona al equipo, el gerente edita todo y el vendedor sólo modifica los registros que le pertenecen. El tablero resume el embudo por etapa, lo ganado en el mes y las tareas próximas; los tratos avanzan por un pizarrón de etapas y cada contacto y empresa carga su historial de actividades.

  • Multiempresa desde el diseño: cada organización ve únicamente sus propios datos
  • Tres roles con permisos reales — el vendedor sólo edita los registros que son suyos
  • Tablero de KPIs con embudo por etapa e ingresos de los últimos seis meses
  • Pizarrón de tratos por etapa, con actividades y tareas ligadas a cada registro
React 18ViteNode.jsExpressMariaDBJWT
Portada del informe de chess-history: bloque de etiquetas PGN con 55,168 partidas registradas y el titular «Ten years of blitz, downloaded legally».

chess-history

Proyecto personal · Ingeniería de datos · 2026

Archivo local de 55,168 partidas de Chess.com, sincronizado por la API oficial y consultable sin internet.

La app descarga el historial completo de partidas por la API pública de Chess.com — sin scraping ni contraseña — y lo guarda dos veces: los metadatos en SQLite para consultar, y las jugadas en archivos PGN estándar que cualquier programa de ajedrez puede leer. Una interfaz local permite buscar, filtrar y reproducir cualquier partida. El enlace abre el informe completo, con gráficas de rating y las verificaciones que se corrieron.

  • Sincronización completa de 93 archivos mensuales en unos dos minutos; repetirla toma 1.3 s
  • Cliente respetuoso de la API: revalidación por ETag, backoff exponencial, una petición a la vez
  • Doble almacenamiento deliberado: SQLite para consultas y PGN estándar como formato de salida
  • Verificado: 60 partidas reproducidas jugada a jugada contra la posición final que registró Chess.com
Node.jsSQLitePGNAPI de Chess.comchess.js

Por qué estas capturas y no un catálogo largo

Cada imagen salió de correr el proyecto y fotografiar la pantalla, no de un render ni de una plantilla comprada. Los dos SaaS son los que puedo mostrar completos: el trabajo corporativo en Intel, IBM, CEMEX y Ternium vive en la página de casos, donde lo que se publica son las cifras y no las pantallas, porque esas interfaces no son mías para publicarlas.

El rango es a propósito. Un SaaS de venta al público con punto de venta, inventario y pagos, y un SaaS privado que corre en la intranet de una financiera no cuestan lo mismo ni tardan lo mismo, y los dos salen de aquí. En el diagnóstico definimos cuál de los dos extremos necesita tu operación.

La tercera tarjeta es un proyecto mío, no de un cliente, y está aquí porque muestra el trabajo que una captura no alcanza a enseñar: sincronizar diez años de datos por una API sin abusar de ella, verificar que lo descargado es correcto y dejarlo en un formato que sobrevive a la aplicación. Es la misma disciplina que aplico a la cobranza, al inventario o a la facturación de tu empresa.

El tuyo empieza con una medición

Cinco días, $18,000 MXN. Si no encuentro al menos 40 horas al mes automatizables, te devuelvo lo que pagaste.

Agenda tu llamada de 30 minutos

O revisa primero los paquetes con precio publicado →