Los listados de las librerías son ruidosos. El back end en Python de Hiki los convierte en un catálogo que los lectores pueden filtrar y buscar.
Cada día, Google Cloud Scheduler pone en marcha los scrapers de Hiki. Están construidos sobre aiohttp, con limitación de peticiones y backoff exponencial, y leen las estanterías de varias librerías: nombres, disponibilidad e imágenes. La detección de cambios señala las novedades y los títulos que vuelven a estar en stock, para que los lectores no se pierdan ninguna actualización.
El nombre de producto en bruto que da una librería suele ser ruidoso e inconsistente. El pipeline de enriquecimiento de Hiki orquesta varias API para encontrar el manga que hay detrás. AniList es la fuente principal de puntuaciones, géneros, etiquetas, sinopsis y portadas. Shikimori traduce los títulos de los nombres de producto escritos en cirílico, y Jikan y Kitsu sirven de respaldo para los casos límite. El pipeline genera variantes de cada título, maneja caracteres cirílicos y latinos, y resuelve incluso los nombres más destrozados hasta su entrada canónica de manga. Las librerías no indican géneros, así que este paso es lo que hace que Hiki se pueda filtrar: los 21 géneros y las más de 100 etiquetas por los que filtran los lectores vienen de AniList.
La API es FastAPI con MongoDB asíncrono a través del driver Motor. MongoDB guarda el catálogo como documentos flexibles con índices compuestos. El front end en Next.js lee de esta API y renderiza el catálogo en todos los idiomas disponibles.
El back end funciona en Google Cloud Run, junto al front end, y Cloud Build lo despliega con cada push a main. Delante tiene Cloud Armor, con restricciones geográficas y una lista de rastreadores permitidos.