ERNESTO—SOFTWARE.
EN ES
01.06 Trabajos Hackathon · guía de ciudad Storyblok Hackathon 2025
← Trabajos

Brewbook

Guía de ciudad full stack hecha con Next.js 15, Storyblok y Algolia. Búsqueda con sinónimos, tolerancia a errores de tipeo y filtros compuestos. Backend orientado a servicios con inyección de dependencias.

Brewbook
Fig. 01. Brewbook Next.js 15 · React 19 · TypeScript · Storyblok · Algolia · Leaflet

La ficha

Rubro
Hackathon · guía de ciudad
Dónde
Storyblok Hackathon 2025
Hecho con
Next.js 15 · React 19 · TypeScript · Storyblok · Algolia · Leaflet
Resultado
Proyecto de hackathon
Estado
Entregado

I Cómo se construyó

Next.js 15 App Router integrado con el editor visual de Storyblok
Fig. 02.
01

Next.js 15 App Router integrado con el editor visual de Storyblok

Arquitectura headless: Storyblok maneja el contenido y Algolia la búsqueda. Los componentes se mapean a bloques de Storyblok (hero, cafe, event, card_grid), lo que permite edición visual sin perder el tipado en React.

React InstantSearch con resultados en tiempo real
Fig. 03.
02

React InstantSearch con resultados en tiempo real

Búsqueda con Algolia, con sinónimos configurados (quiet↔calm↔peaceful, wifi↔internet↔wireless) y tolerancia a errores de tipeo. React InstantSearch filtra al instante, con scroll infinito de 6 resultados por página.

Filtros por facetas con atributos compuestos
Fig. 04.
03

Filtros por facetas con atributos compuestos

Búsqueda por facetas sobre noise_level, price_range, wifi, power_outlets y más. El filtro "Work-Friendly" muestra el filtrado compuesto: junta WiFi y tomacorrientes en un solo botón.

Rutas dinámicas con texto enriquecido de Storyblok
Fig. 05.
04

Rutas dinámicas con texto enriquecido de Storyblok

Las páginas de detalle usan rutas dinámicas de Next.js (/cafe/[slug]) con llamadas a Storyblok desde el servidor. El texto enriquecido se extrae de estructuras anidadas y se renderiza con el renderer oficial.

Geolocalización con mapas de Leaflet
Fig. 06.
05

Geolocalización con mapas de Leaflet

Cada lugar incluye datos _geoloc sincronizados a Algolia. React Leaflet dibuja los mapas en las páginas de detalle. El modelo de datos soporta cafés y eventos con la misma búsqueda pero distinto renderizado.

Tubería de datos orientada a servicios
Fig. 07.
06

Tubería de datos orientada a servicios

El backend sigue principios SOLID con StoryblokService, AlgoliaService, RecordNormalizer y SeedingOrchestrator. Python siembra Storyblok, Node.js sincroniza a Algolia con upserts idempotentes, seguros de correr otra vez sin duplicar.

Empecemos a hablar

Con gusto se lo explico pantalla por pantalla, en el orden en que se construyó.