Un archivo visual para encontrar openings y endings de anime.
Rápido, estático y actualizado automáticamente.
Siwö transforma el índice público de AniTousen en una experiencia de búsqueda inspirada en revistas musicales japonesas. Permite recorrer más de 600 series publicadas entre 1999 y 2026 sin base de datos ni servidor de aplicación.
El catálogo se genera durante el build, se enriquece con metadatos de AniList y Kitsu y se publica como un sitio completamente estático en GitHub Pages.
La identidad de Siwö nace de un collage de paneles manga, pósteres editoriales y escenas musicales en blanco y negro. La interfaz reutiliza estas piezas como recortes, texturas e interludios para conservar la sensación de una revista impresa.
![]() |
![]() |
![]() |
| HERO CHARACTER | PROFILE PANEL | EXPRESSION PANEL |
![]() |
![]() |
![]() |
| LOOK BACK | GOODBYE ERI | BAND INTERLUDE |
Selección de las piezas utilizadas para construir el lenguaje visual del sitio.
| Característica | Detalle | |
|---|---|---|
01 |
Búsqueda instantánea | Encuentra una serie por título mientras escribes. |
02 |
Filtros combinables | Filtra el catálogo por temporada y año. |
03 |
Fichas completas | Portada, sinopsis, géneros, estudio, puntuación y enlaces relacionados. |
04 |
URLs compartibles | La búsqueda, los filtros, la página y la ficha abierta quedan reflejados en la URL. |
05 |
Diseño responsive | Interfaz manga-editorial adaptada a escritorio y móvil. |
06 |
Actualización automática | GitHub Actions reconstruye el índice diariamente y con cada push a main. |
AniTousen
│
│ ZIP del repositorio
▼
scripts/build-index.js ─── AniList / Kitsu
│
│ catálogo enriquecido
▼
public/data.json
│
▼
Astro + React ─── build estático ─── GitHub Pages
El generador es tolerante a fallos. Si AniList o Kitsu no responden, conserva la información básica de AniTousen; si no puede actualizar el ZIP, reutiliza el último data.json válido.
Requisitos: Node.js 22.12 o superior y npm.
git clone https://github.com/Kokeeu/anitousen-search.git
cd anitousen-search
npm install
npm run build-index
npx astro dev --backgroundLa aplicación estará disponible en http://localhost:4321.
Para administrar el servidor en segundo plano:
npx astro dev status
npx astro dev logs
npx astro dev stopnpm run buildEl resultado se genera en dist/. Para crear rápidamente el índice básico sin consultar proveedores de metadatos:
npm run build-index -- --skip-metadataEl proceso de generación acepta estas variables de entorno:
| Variable | Valor predeterminado | Uso |
|---|---|---|
METADATA_CACHE_TTL_DAYS |
14 |
Vigencia de los metadatos almacenados en caché. |
API_REQUEST_TIMEOUT_MS |
15000 |
Tiempo máximo de cada petición. |
API_DELAY_MS |
2100 |
Pausa entre consultas para respetar límites externos. |
API_MAX_RETRIES |
2 |
Reintentos por petición fallida. |
SKIP_METADATA |
0 |
Usa 1 para omitir AniList y Kitsu. |
ANITOUSEN_ZIP_URL |
Repositorio oficial | Permite usar otra fuente compatible. |
DESIGN.md— identidad visual, componentes, responsive y accesibilidad.AGENTS.md— instrucciones de desarrollo y validación para agentes.siwo-project— skill reutilizable para mantener el proyecto sin perder su dirección técnica o visual.
anitousen-search/
├── .github/workflows/deploy.yml # Build y despliegue automático
├── public/ # Imágenes y catálogo generado
├── scripts/build-index.js # Pipeline de datos
└── src/
├── components/ # Buscador, fichas y elementos visuales
├── layouts/ # Metadatos y estructura del documento
├── pages/ # Rutas de Astro
└── styles/ # Sistema visual manga-editorial
El workflow de GitHub Actions:
- Restaura la caché del catálogo.
- Instala las dependencias.
- Regenera el índice y construye el sitio.
- Publica
dist/en GitHub Pages. - Guarda el catálogo actualizado para la siguiente ejecución.
Para usarlo en un fork, selecciona GitHub Actions como fuente en Settings → Pages y ajusta site en astro.config.mjs.
- AniTousen — índice y enlaces del catálogo.
- AniList — metadatos enriquecidos.
- Kitsu — proveedor alternativo de metadatos.
- Astro — generación del sitio estático.
Important
Este proyecto no almacena archivos de audio. Organiza información y enlaces publicados por fuentes externas; cada sitio conserva la responsabilidad sobre su contenido.





