PokeNext
Proyecto colaborativo de curso donde aporté las funcionalidades de búsqueda: filtrado server-side por tipo y generación de Pokémon vía query params resueltos en Server Components, y un buscador con autocompletado que consume un endpoint propio (/api/pokemon/suggestions) construido para reempaquetar datos de la PokéAPI sin exponer al cliente el detalle de la integración externa. La capa de acceso a datos (lib/pokemon.ts) normaliza las respuestas crudas de la API externa a tipos de dominio propios antes de llegar a los componentes de presentación.
Autocompletado sin backend propio
Cargar todos los nombres de Pokémon (2000+) para el buscador sin penalizar la carga inicial. Solución: un endpoint propio que resuelve la lista completa una sola vez al montar el header, cacheada por Next.js, y filtrada localmente en cliente por nombre o número.
Filtrado resiliente en paralelo
Al filtrar por tipo o generación, cada detalle de Pokémon se resuelve en paralelo con Promise.allSettled, descartando resultados individuales fallidos sin romper el listado completo.