Esta es una aplicación que permite ir explorando razas de gatos a medida que se conforma un “sendero” interconectado a través de sus características. Te invito a experimentar la app antes de seguir leyendo para no estropear la sorpresa (no te preocupes, tiene un tour para guiarte en el proceso): Ir al sitio web.
El origen de la idea
Antes de crear Petpath, había desarrollado aplicaciones con fetching de datos, pero nada que fuera muy exigente en ese aspecto. Cuando decidí que era momento de hacer algo más llamativo que una simple calculadora para mi portafolio, esto estuvo bastante presente. Quería hacer un proyecto entretenido, que me ayudara a aprender nuevas tecnologías y que, sobre todo, me retara a consumir intensivamente una API. En otras palabras: quería construir una aplicación alrededor de la API más interesante que pudiera encontrar.
Tras una buena exploración, descubrí TheDogAPI (sí, al principio Petpath trataría sobre perros, y la idea me emocionó bastante porque ese es mi tipo de animal), pero más adelante me daría cuenta que TheCatAPI, desarrollada por la misma compañía, era una fuente mucho más rica en recursos que me permitiría armar algo mucho más detallado.
Lo que devolvía la API
TheCatAPI proporcionaba una serie de características para cada raza de gato, puntuadas del 1 al 5. Podías ver entonces que cierta raza tenía “un 5 en adaptabilidad y un 2 en nivel de energía”, mientras que otra tenía “un 4 en afecto y un 3 en inteligencia”. Esto era genial, tenía que construir algo en torno a esas features.
La idea que se me ocurrió fue simple pero tenía potencial: partiendo de una raza random, se podría solicitar más, menos o igual nivel de una determinada feature. La app devolvería una nueva raza que cumpliera con ese requisito mientras mantenía el resto de las características lo más cercanas posible, conformándose así un “camino de razas”. Más adelante, explicaré cómo implementé esta lógica en el BFF mediante un sistema de puntos.
Había tantas features que resultaba complicado crear algo fácil de entender, entonces decidí dividirlas en dos grandes grupos: algunas serían los puntos de exploración (como el nivel de afecto y la adaptabilidad), mientras que otras aparecerían solo como información extra (las necesidades de cuidado, los problemas de salud, etc.). La verdad, no quería desperdiciar nada.
La evolución del diseño
Opté por un diseño vertical, con un fondo oscuro y tarjetas blancas con imágenes de cada raza. Ese aspecto general estuvo claro desde el principio, pero los botones de selección tuvieron bastante iteración hasta que pude lograr un balance entre claridad y minimalismo.
La lógica del BFF
Inicialmente, desarrollé el backend-for-frontend con Python y Django, desplegándolo en Render. Sin embargo, la capa gratuita de Render tenía problemas de rendimiento: la primera llamada tardaba hasta 15 segundos, algo realmente inaceptable. Tras varias vueltas, decidí migrar toda la lógica a JavaScript utilizando la carpeta api de Next.js, y el cambio fue notable.
Un lindo reconocimiento
The API Company, propietaria de las APIs de perros y gatos, suele promocionar muy bien sus productos e incentiva la creación de aplicaciones alrededor de ellos. Por eso, suelen lanzar concursos donde se premia a los mejores proyectos que han utilizado algunas de sus APIs. El año en que lancé la aplicación tuve el honor de ganar el primer puesto.