Saltar al contenido
Inicio — Juan Torres

Centro de control

Utilidades

ProfesionalDía
Nyan CatEl cielo de Nyan, en píxeles
Nyan ⇄ EclipseCursor

Pista: en su cielo hay una estrella que no se deja atrapar.

KirbySe abre al vencer al rey Dedede

Pista: en el juego de la estrella, Kirby también vuela.

Todo: cursor contextual, imágenes con inercia, flores con física y sonido ambiental.

CV
jstorres.xora@gmail.com

Proyectos

Proyecto · App para el criadero de mi familia · 2026

Criaderos Hermanos Torres

Una app para el celular de mi papá que reemplaza el cuaderno del criadero: quién es hijo de quién, cada camada, las fotos de crecimiento y lo que toca vacunar.

La app del criadero abierta en un navegador de escritorio.
Ficha de un gallo: placa, edad, sexo, plumaje, cresta, padre y madre.

Ficha

Mi parte
Todo: la idea, el diseño, el código y las pruebas con mi papá.
Con quién
Proyecto personal
Cuándo
2026
Hoy
Hecha para mi papá · funciona sin internet

El cuaderno

En el criadero todo se anotaba en un cuaderno: quién es hijo de quién, qué salió de cada cruza, qué vacuna toca. Una hoja perdida era una historia perdida.

Para quién

Para mi papá, en su celular, a pie de corral y con la señal que haya. No iba a crear una cuenta ni a recordar una contraseña, así que la app no tiene ninguna de las dos: todo se guarda en el teléfono.

  • Una sola columna, botones grandes y cuatro secciones abajo.
  • Las palabras del oficio: placa, color de placa, cresta, padrillo, madrilla, camada.
  • Funciona sin internet y se instala como una app más.
  • Se puede hacer zoom con dos dedos: el original lo bloqueaba y lo arreglé.

La app

Inicio

Inicio

La ficha

La ficha

Cómo fue creciendo

Cómo fue creciendo

Una camada entera

Una camada entera

Lo que toca

Lo que toca

El árbol

Lo que el cuaderno nunca pudo hacer. Como el padre ya no es un texto sino un vínculo a otro registro, la app arma el árbol sola: recorre la familia hacia arriba y hacia abajo, la ordena por generaciones y acomoda cada fila para que las líneas se crucen lo menos posible.

Tres generaciones

Tres generaciones

Tocar un gallo resalta su familia

Tocar un gallo resalta su familia

Descendencia

Descendencia

De la libreta a la app

  1. 20 jun 2026

    Un prototipo en Claude

    Un formulario en React con cuatro pestañas. El árbol eran cajas para escribir a los abuelos a mano.

  2. 20 jun 2026

    Una plantilla para imprimir

    El mismo cuaderno en A4, con líneas en blanco, por si la app no convencía.

  3. 19–23 jul 2026

    La app, desde cero

    Sin frameworks. El cambio de fondo: el padre deja de ser un texto y pasa a ser un vínculo, y con eso salen el árbol, la descendencia y las edades.

  4. oct 2026

    Revisión y GitHub

    Una prueba de punta a punta, nueve correcciones y el código publicado en GitHub.

Por qué así

  1. Sin servidor y sin cuentas

    Todo vive en IndexedDB, en el teléfono. Cero costo y cero datos de la familia en internet.

  2. Primero sin señal

    El service worker trae la versión nueva cuando hay red y usa la guardada cuando no. Las actualizaciones llegan solas, sin pedirle a nadie que borre nada.

  3. Fotos livianas

    Se reducen en el propio celular a 900 px y JPEG al 72 %: una foto típica queda en unos 10 KB y el respaldo lo lleva todo.

  4. El respaldo como plan B

    Si los datos solo existen en un teléfono, el respaldo es la única salida: un archivo con fecha que se manda por WhatsApp.

  5. Que el árbol no mienta

    Placa única, nadie puede ser su propio padre ni elegir a un descendiente como padre, y no se borra un gallo que tiene crías.

Con qué

Lenguajes

  • HTML
  • CSS
  • JavaScript

Sin frameworks ni build: lo que está en la carpeta es lo que se sirve.

Plataforma web

  • IndexedDB
  • Service Worker
  • Web App Manifest
  • Web Share API
  • Canvas

Guardar en el teléfono, abrir sin señal, instalarla como app, mandar el respaldo por WhatsApp y comprimir fotos.

Infraestructura

  • Netlify

Netlify Drop para tener un enlace HTTPS e instalarla en su celular.

IA

  • Claude

El primer prototipo fue un artefacto de Claude; después, desarrollo y pruebas asistidos.

La revisión

comprobaciones de la prueba de punta a punta
15/28 → 30/30
lo que pesaban las ilustraciones
2,4 MB → 187 KB
una foto típica, ya comprimida
≈10 KB
líneas propias, sin dependencias
~2850

La revisé en octubre de 2026 con ayuda de IA para escribir la prueba; cada corrección está en su propio commit.

Lo que no salió

La primera versión podía borrarlo todo: «Reemplazar todo» con un respaldo dañado dejaba el celular con cero gallos. No lo vi hasta escribir la prueba. Ahora el borrado y la escritura van en una sola transacción y el archivo se revisa antes de tocar nada.

  • Las fechas salían en hora UTC: desde las siete de la noche, una foto se guardaba con la fecha de mañana.
  • No sincroniza entre teléfonos: hoy el respaldo se pasa a mano.
  • Nunca tuvo dominio propio. Vivió en un enlace temporal de Netlify Drop.

Tres temas

Claro

Claro

Cálido

Cálido

Oscuro

Oscuro

Qué me llevé

  • Diseñar para una persona concreta simplifica todo: cada duda se resolvía preguntando qué haría mi papá en el corral.
  • Un modelo de datos bien pensado vale más que diez pantallas: el árbol salió de cambiar un texto por un vínculo.
  • Si los datos viven en un solo lugar, el respaldo no es un extra: es la función más importante.