Inicio

Proyectos

Código real, problemas reales, sin relleno.

Desliza

Quitanza MX

Calcular una liquidación laboral en México implica cruzar la Ley Federal del Trabajo, la Ley del ISR y varios escenarios de salida (despido injustificado, renuncia voluntaria, rescisión por causa del patrón, mutuo acuerdo) que rara vez se explican con claridad. Quitanza MX resuelve eso con un flujo guiado en 3 pasos, salario y frecuencia de pago, fechas de empleo y motivo de salida, aplicando automáticamente indemnización constitucional, finiquito, prima de antigüedad y retenciones de ISR según la ley vigente para 2026. Construida con Next.js, React, TypeScript y Tailwind CSS, incluye una configuración avanzada de prestaciones para ajustar aguinaldo y prima vacacional por encima del mínimo legal. El cálculo corre en el navegador y el resultado se puede guardar en un historial para comparar distintos escenarios de salida.

Next.jsReactTypeScriptTailwind CSSLucide+3

Sthorme

Sthorme es una plataforma de inteligencia de marketing potenciada por IA que ayuda a empresas, marcas y creadores a entender el rendimiento de sus redes sociales sin perderse en métricas. Integra datos de Instagram, Facebook y otras fuentes en una interfaz conversacional: basta con preguntar en lenguaje natural para identificar las publicaciones con mejor rendimiento, comparar periodos, encontrar los mejores horarios para publicar y recibir recomendaciones para optimizar la estrategia de contenido. El sistema está construido con React, Next.js, TypeScript y Turbopack en el frontend, y Python/FastAPI en el backend, desplegado en Vercel con infraestructura en AWS. La UI combina Tailwind CSS, Shadcn UI, Radix UI, Framer Motion y GSAP para una experiencia rápida y cuidada, mientras integraciones con Meta y Slack automatizan la generación de contenido y la colaboración entre equipos, reduciendo tareas de horas a minutos.

Next.jsReactTypeScriptPythonFastAPI+13

ChambaFlow

Postular en OCC y Computrabajo es repetitivo por diseño: buscar, abrir, leer, hacer clic, volver. ChambaFlow elimina ese ciclo con un bot que se adjunta a tu sesión activa del navegador, sin almacenar ni interceptar credenciales, porque el enfoque correcto fue nunca necesitarlas. La apuesta técnica fue el remote debugging: en lugar de gestionar autenticación (frágil y difícil de mantener), el bot hereda tu sesión ya abierta y opera desde ahí. La configuración completa, keywords, plataformas y filtros, vive en un solo archivo YAML.

PythonGitGitHubSelenium

Pásalo

Pásalo es una plataforma comunitaria diseñada para redistribuir objetos de forma local sin fricción. A diferencia de los modelos tradicionales de clasificados, aquí no existe la compra, la venta ni la negociación: el enfoque está en conectar directamente a personas que tienen algo útil con quienes realmente lo necesitan. El sistema prioriza la inmediatez y la experiencia de usuario: publicar un objeto toma segundos, explorar se adapta a tu ubicación (estado y municipio en México) y la interacción está diseñada para ser clara, rápida y sin ruido. Más que una app de listados, Pásalo busca incentivar una cultura de reutilización, reduciendo desperdicio y fortaleciendo comunidades locales a través de tecnología bien ejecutada.

Next.jsReactTypeScriptPostgreSQLSupabase+10

DescífraMX

La mayoría de los mexicanos ha usado su CURP sin saber qué codifica cada carácter. DescífraMX lo desarma visualmente en tiempo real: fecha de nacimiento, estado, sexo, dígito verificador y palabras inconvenientes, campo por campo, con contexto. Con más de 1,000 consultas registradas y una API REST pública documentada con OpenAPI, la decisión más importante fue la privacidad-by-design: ningún dato sale del navegador. Sin backend, sin logs, sin base de datos.

Next.jsTypeScriptReactTailwind CSSShadcn UI+6

MiInbox

Un cliente de correo es uno de los problemas de estado más exigentes del frontend: mensajes leídos y no leídos, hilos, búsqueda en tiempo real, composición, todo debe sincronizarse sin lag visible y sin re-renders en cascada. MiInbox lo resuelve con Zustand como capa de estado central: un store que mantiene coherencia entre bandejas sin disparar renders innecesarios. El resultado es una interfaz que responde inmediato sin importar cuántos mensajes estén activos en paralelo.

ReactReact RouterTypeScriptv0Vitest+3

GitQuick

La mayoría de los tutoriales de Git enseñan comandos. GitQuick enseña a razonar sobre el historial: qué pasa cuando fusionas dos ramas con conflictos, cuándo un rebase puede destruir el historial compartido y cómo revertir un error sin entrar en pánico. Organizado en bloques lógicos, básicos, ramas, remotos, conflictos, funciona como referencia rápida mientras trabajas, no solo como guía de lectura. Cada comando lleva un ejemplo real, no solo su firma.

HTML5CSS3JavaScriptNetlifyVue+4

Pokédex

Más de 1,000 Pokémon con tipos, estadísticas base, habilidades y sprites, todo servido desde PokéAPI v2. El reto no fue consumir la API sino hacerlo sin degradar la experiencia: caché local para evitar peticiones duplicadas, paginación que no bloquea el render y búsqueda en tiempo real sobre el dataset completo. El resultado es una interfaz que se siente fluida incluso filtrando sobre listas de esta magnitud.

ReactTypeScriptTailwind CSSViteGit+1

Tetris

Tetris parece simple hasta que intentas implementarlo: la detección de colisión es un problema matricial, la rotación de piezas debe respetar los límites del tablero y la velocidad tiene que escalar sin que el juego pierda responsividad. Implementado con JavaScript vanilla y Canvas API, sin ningún framework, porque el punto era resolver el problema, no delegarlo. El resultado es un juego completo con sistema de puntuación, progresión por niveles y controles de teclado fluidos.

JavaScriptHTML5CSS3GitGitHub

Aparecen.mx

Aparecen.mx es una herramienta cívica gratuita diseñada para ayudar a familias, colectivos y ciudadanos en México a generar fichas de búsqueda de personas desaparecidas de forma inmediata. La plataforma automatiza el diseño bajo principios de comunicación de emergencia: alto contraste, jerarquía visual clara y optimización para difusión tanto en redes sociales como en impresión física. La decisión clave del proyecto fue la privacidad: toda la información se procesa directamente en el navegador del usuario (client-side), sin bases de datos, sin almacenamiento y sin transmisión a servidores externos.

Next.jsReactTypeScriptTailwind CSSShadcn UI+8
Quitanza MX
4 escenarios LFTMotivos de salida
100% en el navegadorCálculo
LFT/ISR 2026Actualizado a
Calcular una liquidación laboral en México implica cruzar la Ley Federal del Trabajo, la Ley del ISR y varios escenarios de salida (despido injustificado, renuncia voluntaria, rescisión por causa del patrón, mutuo acuerdo) que rara vez se explican con claridad. Quitanza MX resuelve eso con un flujo guiado en 3 pasos, salario y frecuencia de pago, fechas de empleo y motivo de salida, aplicando automáticamente indemnización constitucional, finiquito, prima de antigüedad y retenciones de ISR según la ley vigente para 2026. Construida con Next.js, React, TypeScript y Tailwind CSS, incluye una configuración avanzada de prestaciones para ajustar aguinaldo y prima vacacional por encima del mínimo legal. El cálculo corre en el navegador y el resultado se puede guardar en un historial para comparar distintos escenarios de salida.
Problema / Contexto

Calcular una liquidación en México exige cruzar la LFT y la LISR a mano: cada motivo de salida (despido, renuncia, rescisión, mutuo acuerdo) cambia por completo lo que corresponde pagar.

Diseño del flujo

Flujo guiado en 3 pasos (salario y frecuencia, fechas de empleo, motivo de salida) con explicación de cada escenario para que el usuario entienda a qué tiene derecho antes de ver el resultado.

Implementación

Next.js, React y TypeScript con Tailwind CSS para la interfaz. El cálculo de indemnización constitucional, finiquito, prima de antigüedad y retenciones de ISR corre en el navegador, con configuración avanzada para ajustar prestaciones por encima del mínimo legal.

Resultados

Calculadora actualizada a la LFT y la LISR vigentes para 2026, con historial guardable para comparar distintos escenarios de salida.

  • Explicar cada motivo de salida antes del cálculo reduce la incertidumbre de no saber a qué tienes derecho.
  • Dividir un cálculo legal en pasos cortos (salario, fechas, motivo) hace manejable algo que normalmente se ve intimidante.
Sthorme
200+Usuarios activos
Conversacional con IAInterfaz
Instagram + FacebookFuentes
Sthorme es una plataforma de inteligencia de marketing potenciada por IA que ayuda a empresas, marcas y creadores a entender el rendimiento de sus redes sociales sin perderse en métricas. Integra datos de Instagram, Facebook y otras fuentes en una interfaz conversacional: basta con preguntar en lenguaje natural para identificar las publicaciones con mejor rendimiento, comparar periodos, encontrar los mejores horarios para publicar y recibir recomendaciones para optimizar la estrategia de contenido. El sistema está construido con React, Next.js, TypeScript y Turbopack en el frontend, y Python/FastAPI en el backend, desplegado en Vercel con infraestructura en AWS. La UI combina Tailwind CSS, Shadcn UI, Radix UI, Framer Motion y GSAP para una experiencia rápida y cuidada, mientras integraciones con Meta y Slack automatizan la generación de contenido y la colaboración entre equipos, reduciendo tareas de horas a minutos.
Problema / Contexto

Entender el rendimiento en redes sociales implica cruzar métricas dispersas de varias plataformas: la mayoría de las herramientas exigen leer dashboards, no responden preguntas directas.

Enfoque conversacional

Interfaz basada en IA que responde en lenguaje natural: el usuario pregunta y Sthorme cruza los datos de Instagram, Facebook y otras fuentes para dar una respuesta clara, no un dashboard más.

Arquitectura del sistema

Frontend en Next.js/TypeScript con Turbopack, microservicios en Python/FastAPI, desplegado en Vercel con infraestructura en AWS. Integraciones con Meta y Slack automatizan generación de contenido y colaboración entre equipos.

Resultados

Producto en producción con más de 200 usuarios activos generando ingresos, reduciendo tareas de análisis que tomaban horas a solo minutos.

  • Una interfaz conversacional reduce la fricción de leer dashboards mucho más que agregar más gráficas.
  • Automatizar tareas repetitivas (generación de contenido, reportes) libera tiempo real para decisiones de estrategia.
ChambaFlow
OCC / ComputrabajoPlataformas
Un archivo YAMLConfiguración
CLI / Menú interactivoUso
Postular en OCC y Computrabajo es repetitivo por diseño: buscar, abrir, leer, hacer clic, volver. ChambaFlow elimina ese ciclo con un bot que se adjunta a tu sesión activa del navegador, sin almacenar ni interceptar credenciales, porque el enfoque correcto fue nunca necesitarlas. La apuesta técnica fue el remote debugging: en lugar de gestionar autenticación (frágil y difícil de mantener), el bot hereda tu sesión ya abierta y opera desde ahí. La configuración completa, keywords, plataformas y filtros, vive en un solo archivo YAML.
Problema / Contexto

Buscar trabajo en OCC y Computrabajo implica un flujo muy repetitivo por diseño.

Enfoque técnico

Remote debugging: el bot se adjunta a tu sesión ya iniciada en el navegador para automatizar los clics.

Resultados

Herramienta operable por consola o CLI, que postula automáticamente respetando tu sesión.

  • El remote debugging es más resiliente que manejar autenticación directamente.
  • Un archivo de configuración YAML puede reemplazar una UI entera.
Pásalo
MVP funcionalProducto
Publicar en segundosInteracción
Sin transaccionesModelo
Pásalo es una plataforma comunitaria diseñada para redistribuir objetos de forma local sin fricción. A diferencia de los modelos tradicionales de clasificados, aquí no existe la compra, la venta ni la negociación: el enfoque está en conectar directamente a personas que tienen algo útil con quienes realmente lo necesitan. El sistema prioriza la inmediatez y la experiencia de usuario: publicar un objeto toma segundos, explorar se adapta a tu ubicación (estado y municipio en México) y la interacción está diseñada para ser clara, rápida y sin ruido. Más que una app de listados, Pásalo busca incentivar una cultura de reutilización, reduciendo desperdicio y fortaleciendo comunidades locales a través de tecnología bien ejecutada.
Definición del problema

Los sistemas de clasificados tradicionales introducen fricción innecesaria (precios, negociación, desconfianza). Se replantea el problema como redistribución directa.

Diseño de la experiencia

Se construye una experiencia enfocada en velocidad y claridad: publicar rápido, explorar por cercanía y reducir decisiones innecesarias.

Desarrollo del sistema

Implementación de un sistema completo con gestión de objetos, perfiles, favoritos persistentes y optimización de imágenes en cliente.

Pulido e interacción

Integración de micro-interacciones y animaciones para elevar la percepción del producto y hacerlo más intuitivo.

  • Reducir opciones (como eliminar precios) puede mejorar significativamente la adopción.
  • La velocidad percibida es tan importante como la velocidad real en productos sociales.
  • Un enfoque hiperlocal cambia completamente el comportamiento del usuario.
  • El diseño visual y las micro-interacciones influyen directamente en la confianza.
DescífraMX
1K+Consultas
Next.js FullstackStack
100% client-sidePrivacidad
La mayoría de los mexicanos ha usado su CURP sin saber qué codifica cada carácter. DescífraMX lo desarma visualmente en tiempo real: fecha de nacimiento, estado, sexo, dígito verificador y palabras inconvenientes, campo por campo, con contexto. Con más de 1,000 consultas registradas y una API REST pública documentada con OpenAPI, la decisión más importante fue la privacidad-by-design: ningún dato sale del navegador. Sin backend, sin logs, sin base de datos.
Problema / Contexto

La mayoría de herramientas de CURP/RFC en línea envían datos a servidores externos, un problema grave para información tan sensible como la identidad fiscal.

Diseño de la solución

Experiencia tipo inspector que desarma el CURP/RFC visualmente carácter a carácter, procesando todo en el navegador del usuario sin enviar ningún dato.

Implementación

Decoder con Next.js y TypeScript: lógica pura de parsing sin backend, API REST pública documentada con OpenAPI, y soporte PWA para instalación offline.

Resultados

Más de 1,000 consultas registradas con cero incidentes de privacidad, porque toda la información nunca salió del navegador del usuario.

  • La privacidad-by-design puede ser un diferenciador clave.
  • Un buen diseño visual ayuda en conceptos legales ambiguos.
MiInbox
50+Mensajes simulados
SPA + ZustandArquitectura
Un cliente de correo es uno de los problemas de estado más exigentes del frontend: mensajes leídos y no leídos, hilos, búsqueda en tiempo real, composición, todo debe sincronizarse sin lag visible y sin re-renders en cascada. MiInbox lo resuelve con Zustand como capa de estado central: un store que mantiene coherencia entre bandejas sin disparar renders innecesarios. El resultado es una interfaz que responde inmediato sin importar cuántos mensajes estén activos en paralelo.
Problema / Contexto

Los clientes de correo con estado fragmentado disparan re-renders en cascada: actualizar una bandeja rompe otra. El reto era mantener coherencia global sin costo de performance.

Arquitectura de estado

Modelado del estado global con Zustand: un store central que sincroniza bandejas, estado de lectura y composición sin disparar renders innecesarios en componentes no relacionados.

Interfaz y navegación

Layout de tres columnas (bandejas, lista de mensajes, detalle) con React Router para navegación sin recarga, búsqueda en tiempo real y composición de mensajes en ventana flotante.

Testing

Suite de pruebas con Vitest sobre el store de Zustand, garantizando que los flujos de lectura, archivado y búsqueda fueran predecibles bajo condiciones concurrentes.

  • Priorizar la claridad de jerarquías en la bandeja de entrada.
  • Zustand simplifica radicalmente los props en interfaces abrumadoras.
GitQuick
20+Comandos
Guía interactivaFormato
La mayoría de los tutoriales de Git enseñan comandos. GitQuick enseña a razonar sobre el historial: qué pasa cuando fusionas dos ramas con conflictos, cuándo un rebase puede destruir el historial compartido y cómo revertir un error sin entrar en pánico. Organizado en bloques lógicos, básicos, ramas, remotos, conflictos, funciona como referencia rápida mientras trabajas, no solo como guía de lectura. Cada comando lleva un ejemplo real, no solo su firma.
Problema / Contexto

Los tutoriales de Git enseñan sintaxis. GitQuick nació para enseñar a razonar sobre el historial: qué destruye un rebase, cuándo un force-push es peligroso, cómo revertir sin entrar en pánico.

Diseño de contenido

Organización en bloques lógicos (básicos, ramas, remotos, conflictos) con ejemplos reales para cada comando, no solo la firma, sino el contexto de cuándo y por qué usarlo.

Implementación

Construido en Vue 3 y Vite para carga inmediata. Vitest para validar que los ejemplos de código son correctos antes de publicar.

  • Los ejemplos en Git son más poderosos que la teoría técnica.
  • La documentación debe pensarse con su propio CMS mental.
Pokédex
1000+Pokémon disponibles
PokéAPI v2Fuente de datos
Tiempo realBúsqueda
Más de 1,000 Pokémon con tipos, estadísticas base, habilidades y sprites, todo servido desde PokéAPI v2. El reto no fue consumir la API sino hacerlo sin degradar la experiencia: caché local para evitar peticiones duplicadas, paginación que no bloquea el render y búsqueda en tiempo real sobre el dataset completo. El resultado es una interfaz que se siente fluida incluso filtrando sobre listas de esta magnitud.
Problema / Contexto

Más de 1,000 entradas en una API pública: el reto no era consumir los datos, sino hacerlo sin penalizar la experiencia, sin bloquear el render, sin peticiones duplicadas y con búsqueda inmediata.

Diseño e integración

Estrategia de caché local en memoria: las peticiones a PokéAPI se almacenan al vuelo, evitando refetch al volver a un Pokémon ya visitado. Paginación con intersección de scroll, no bloqueante.

Implementación

Interfaz con filtros combinados por tipo, búsqueda en tiempo real sobre el dataset completo y vista de detalle con estadísticas base, habilidades y sprites, construida en React + TypeScript con Vite.

  • El caché local reduce drásticamente las peticiones a APIs públicas.
  • Diseñar UI para listas grandes requiere virtualización o paginación desde el inicio.
Tetris
Vanilla JSFramework
Canvas APIRenderizado
Velocidad dinámicaNiveles
Tetris parece simple hasta que intentas implementarlo: la detección de colisión es un problema matricial, la rotación de piezas debe respetar los límites del tablero y la velocidad tiene que escalar sin que el juego pierda responsividad. Implementado con JavaScript vanilla y Canvas API, sin ningún framework, porque el punto era resolver el problema, no delegarlo. El resultado es un juego completo con sistema de puntuación, progresión por niveles y controles de teclado fluidos.
Motivación

Tetris parece simple hasta que intentas implementarlo. Se eligió deliberadamente para resolver un problema clásico desde cero, sin delegar la lógica a un motor ni framework.

Lógica de juego

Detección de colisión matricial: cada pieza es una submatriz sobre el tablero. Rotación con validación de bordes. Limpieza de líneas completas y descenso del tablero en O(n).

Renderizado y progresión

Renderizado con Canvas API: control total sobre cada frame. Sistema de puntuación con multiplicador por líneas simultáneas, niveles de velocidad progresiva y gestión de game-over.

  • Canvas API da control total del renderizado a cambio de mayor complejidad.
  • La lógica de colisión en grillas requiere pensamiento matricial claro.
Aparecen.mx
100% gratuitoCosto
100% client-sidePrivacidad
PNG + PDFOutput
Aparecen.mx es una herramienta cívica gratuita diseñada para ayudar a familias, colectivos y ciudadanos en México a generar fichas de búsqueda de personas desaparecidas de forma inmediata. La plataforma automatiza el diseño bajo principios de comunicación de emergencia: alto contraste, jerarquía visual clara y optimización para difusión tanto en redes sociales como en impresión física. La decisión clave del proyecto fue la privacidad: toda la información se procesa directamente en el navegador del usuario (client-side), sin bases de datos, sin almacenamiento y sin transmisión a servidores externos.
Investigación del problema

Identificación de fricciones en la generación de fichas de búsqueda: tiempos de diseño, dependencia de terceros y falta de estandarización visual.

Diseño de emergencia (Emergency-first)

Sistema visual enfocado en impacto inmediato: tipografía legible, alto contraste, jerarquía clara y optimización para feeds sociales.

Arquitectura privada

Implementación 100% client-side para evitar almacenamiento de datos sensibles, garantizando anonimato y seguridad del usuario.

Generación y exportación

Motor de generación de fichas con exportación dual: PNG optimizado para redes y PDF listo para impresión en tamaño carta.

  • La privacidad no es opcional en productos de alto riesgo, debe ser parte del core.
  • El diseño visual puede influir directamente en la efectividad de la difusión.
  • Reducir fricción en momentos críticos tiene un impacto real en la vida de las personas.
  • Las arquitecturas client-side son clave para productos sensibles sin infraestructura compleja.